formatSubStatusChangeText 格式化状态变更文本
(oldStatus, newStatus *serverStatus)
| 215 | |
| 216 | // formatSubStatusChangeText 格式化状态变更文本 |
| 217 | func formatSubStatusChangeText(oldStatus, newStatus *serverStatus) string { |
| 218 | var msgBuilder strings.Builder |
| 219 | if oldStatus == nil || newStatus == nil { |
| 220 | return "" |
| 221 | } |
| 222 | // 变更通知 |
| 223 | msgBuilder.WriteString("[Minecraft服务器状态变更通知]\n") |
| 224 | // 地址 |
| 225 | msgBuilder.WriteString(fmt.Sprintf("服务器地址: %v\n", oldStatus.ServerAddr)) |
| 226 | // 描述 |
| 227 | if oldStatus.Description != newStatus.Description { |
| 228 | msgBuilder.WriteString("\n-----[描述变更]-----\n") |
| 229 | msgBuilder.WriteString(fmt.Sprintf("[旧]\n%v\n", oldStatus.Description)) |
| 230 | msgBuilder.WriteString(fmt.Sprintf("[新]\n%v\n", newStatus.Description)) |
| 231 | } |
| 232 | // 版本 |
| 233 | if oldStatus.Version != newStatus.Version { |
| 234 | msgBuilder.WriteString("\n-----[版本变更]-----\n") |
| 235 | msgBuilder.WriteString(fmt.Sprintf("[旧]\n%v\n", oldStatus.Version)) |
| 236 | msgBuilder.WriteString(fmt.Sprintf("[新]\n%v\n", newStatus.Version)) |
| 237 | } |
| 238 | // 状态由不可达变为可达,反之 |
| 239 | if oldStatus.PingDelay == pingDelayUnreachable && newStatus.PingDelay != pingDelayUnreachable { |
| 240 | msgBuilder.WriteString("\n-----[Ping延迟]-----\n") |
| 241 | msgBuilder.WriteString("[旧]\n超时\n") |
| 242 | msgBuilder.WriteString(fmt.Sprintf("[新]\n%v毫秒\n", newStatus.PingDelay)) |
| 243 | } |
| 244 | if oldStatus.PingDelay != pingDelayUnreachable && newStatus.PingDelay == pingDelayUnreachable { |
| 245 | msgBuilder.WriteString("\n-----[Ping延迟]-----\n") |
| 246 | msgBuilder.WriteString(fmt.Sprintf("[旧]\n%v毫秒\n", oldStatus.PingDelay)) |
| 247 | msgBuilder.WriteString("[新]\n超时\n") |
| 248 | } |
| 249 | return msgBuilder.String() |
| 250 | } |
| 251 | |
| 252 | // Biz Model End |
| 253 | // ==================== |
no test coverage detected