/// <summary> /// Handle server output, raise all events that should be raised /// </summary> /// <param name="text">output text to handle</param> /// <param name="server">the server that should handle the output</param> public static void HandleOutput(IMinecraftServer server, string text) { RaiseOutputReceivedEvent(text); OutputParseResult result = server.ParseOutput(text); RaiseOutputParsedEvent(text, result); switch (result.Type) { case MessageType.Info: RaiseInfoMessageReceivedEvent(text, result); break; case MessageType.Warning: RaiseWarningMessageReceivedEvent(text, result); break; case MessageType.Severe: RaiseSevereMessageReceivedEvent(text, result); break; case MessageType.JavaStackTrace: RaiseJavaStackStraceMessageReceivedEvent(text, result); break; case MessageType.JavaStatus: RaiseJavaStatusMessageReceivedEvent(text, result); break; case MessageType.PlayerJoin: RaisePlayerJoinEvent(text, result, result.Action); break; case MessageType.PlayerLeave: RaisePlayerLeaveEvent(text, result, result.Action); break; case MessageType.PlayerKick: RaisePlayerKickEvent(text, result, result.Action); break; case MessageType.PlayerBan: RaisePlayerBanEvent(text, result, result.Action); break; case MessageType.PlayerIpBan: RaisePlayerIpBanEvent(text, result, result.Action); break; case MessageType.PlayerList: PlayerListReceived(text, result, new Dictionary <string, string>()); break; default: RaiseUnknownMessageReceivedEvent(text, result); break; } }
private static void RaiseJavaStatusMessageReceivedEvent(string text, OutputParseResult outputParseResult) { OutputParsedEventHandler handler = JavaStatusMessageReceived; if (handler != null) { handler(text, outputParseResult); } }
private static void RaiseOutputParsedEvent(string text, OutputParseResult outputParseResult) { OutputParsedEventHandler handler = OutputParsed; if (handler != null) { handler(text, outputParseResult); } }
private static void RaisePlayerIpBanEvent(string text, OutputParseResult outputParseResult, IPlayerAction playerAction) { PlayerEventHandler handler = PlayerIpBan; if (handler != null) { handler(text, outputParseResult, playerAction); } }