/// <summary> /// Handles messages sent from the clients /// </summary> /// <param name="e"></param> /// <param name="connection"></param> private void OnMessage(MessageEventArgs e, WebSocketContext connection) { if (covalence == null) { Interface.Oxide.LogError("[Rcon] Failed to process command, Covalence is null"); return; } RemoteMessage message = RemoteMessage.GetMessage(e.Data); if (message == null) { Interface.Oxide.LogError("[Rcon] Failed to process command, RemoteMessage is null"); return; } if (string.IsNullOrEmpty(message.Message)) { Interface.Oxide.LogError("[Rcon] Failed to process command, RemoteMessage.Text is not set"); return; } string[] fullCommand = CommandLine.Split(message.Message); string command = fullCommand[0].ToLower(); string[] args = fullCommand.Skip(1).ToArray(); if (Interface.CallHook("OnRconCommand", connection.UserEndPoint, command, args) != null) { return; } covalence.Server.Command(command, args); }
private void OnMessage(MessageEventArgs e, WebSocketContext connection) { if (this.covalence == null) { Interface.Oxide.LogError("[Rcon] Failed to process command, Covalence is null", Array.Empty <object>()); return; } RemoteMessage message = RemoteMessage.GetMessage(e.Data); if (message == null) { Interface.Oxide.LogError("[Rcon] Failed to process command, RemoteMessage is null", Array.Empty <object>()); return; } if (string.IsNullOrEmpty(message.Message)) { Interface.Oxide.LogError("[Rcon] Failed to process command, RemoteMessage.Text is not set", Array.Empty <object>()); return; } string[] strArrays = CommandLine.Split(message.Message); string lower = strArrays[0].ToLower(); string[] array = strArrays.Skip <string>(1).ToArray <string>(); if (Interface.CallHook("OnRconCommand", connection.UserEndPoint, lower, array) != null) { return; } this.covalence.Server.Command(lower, array); }
/// <summary> /// Handles messages sent from the clients /// </summary> /// <param name="e"></param> private void OnMessage(MessageEventArgs e) { var message = RemoteMessage.GetMessage(e.Data); if (message == null || covalence == null) { return; // TODO: Return/show why } switch (message.Type.ToLower()) { case "command": var commands = message.Message.Split(' '); covalence.Server.Command(commands[0], commands.Length > 1 ? commands.Skip(1).ToArray() : null); break; case "chat": covalence.Server.Broadcast($"{config.ChatPrefix}: {message.Message}"); break; case "players": var format = "ID: {0};NAME: {1};IP: {2};HP: {3}/{4};PING: {5};LANG: {6}"; var list = string.Empty; foreach (var player in covalence.Players.Connected) { list += string.Format(format, player.Id, player.Name, player.Address, player.Health, player.MaxHealth, player.Ping, player.Language.TwoLetterISOLanguageName); } SendMessage(RemoteMessage.CreateMessage(list)); break; default: SendMessage(RemoteMessage.CreateMessage("Unknown command")); break; } }
/// <summary> /// Handles messages sent from the clients /// </summary> /// <param name="e"></param> private void OnMessage(MessageEventArgs e) { var message = RemoteMessage.GetMessage(e.Data); if (message == null || covalence == null) { return; // TODO: Return/show why } switch (message.Type.ToLower()) { case "command": var commands = message.Message.Split(' '); try { if (commands.Count() > 1) { covalence.Server.Command(commands[0]); } else { covalence.Server.Command(commands[0], commands.Skip(1).ToArray()); } } catch { Interface.Oxide.LogError("[Rcon] Failed to run command {0} - Command might not exist", commands[0]); } break; case "chat": covalence.Server.Broadcast($"{config.ChatPrefix}: {message.Message}"); break; case "players": SendMessage(RemoteMessage.CreateMessage(GetPlayerList(), 0, "players")); break; default: SendMessage(RemoteMessage.CreateMessage("Unknown command")); break; } }
/// <summary> /// Handles messages sent from the clients /// </summary> /// <param name="e"></param> private void OnMessage(MessageEventArgs e) { var message = RemoteMessage.GetMessage(e.Data); if (message == null || covalence == null) { return; // TODO: Return/show why } switch (message.Type.ToLower()) { case "command": var commands = message.Message.Split(' '); covalence.Server.Command(commands[0], commands.Length > 1 ? commands.Skip(1).ToArray() : null); break; case "chat": covalence.Server.Broadcast($"{config.ChatPrefix}: {message.Message}"); break; } }
/// <summary> /// Handles messages sent from the clients /// </summary> /// <param name="e"></param> private void OnMessage(MessageEventArgs e, WebSocketContext connection) { var message = RemoteMessage.GetMessage(e.Data); message.Message = message.Message.Replace("\"", string.Empty); if (message == null || covalence == null || string.IsNullOrEmpty(message.Message)) { Interface.Oxide.LogError($"[Rcon] Failed to process command {(message == null ? "RemoteMessage" : "Covalence")} is null"); return; } var msg = message.Message.Split(' '); var cmd = msg[0].ToLower(); var args = msg.Skip(1).ToArray(); if (Interface.CallHook("OnRconCommand", connection.UserEndPoint.Address, cmd, args) != null) { return; } covalence.Server.Command(cmd, args); }
/// <summary> /// Handles messages sent from the clients /// </summary> /// <param name="e"></param> private void OnMessage(MessageEventArgs e, WebSocketContext context = null) { var message = RemoteMessage.GetMessage(e.Data); message.Message = message.Message.Replace("\"", string.Empty); if (message == null || covalence == null || string.IsNullOrEmpty(message.Message)) { Interface.Oxide.LogError($"[Rcon] Failed to process command {(message == null ? "RemoteMessage" : "Covalence")} is null"); return; } var msg = message.Message.Split(' '); var cmd = msg[0]; var args = msg.Skip(1).ToArray(); switch (cmd.ToLower()) { case "broadcast": case "chat.say": case "global.say": case "say": BroadcastMessage(cmd, args, message.Identifier, context); break; case "global.playerlist": case "playerlist": PlayerListCommand(cmd, args, message.Identifier, context); break; case "hostname": case "server.hostname": HostnameCommand(cmd, args, message.Identifier, context); break; case "global.kick": case "kick": KickCommand(cmd, args, message.Identifier, context); break; case "save": case "server.save": covalence.Server.Save(); SendMessage(RemoteMessage.CreateMessage("Server Saved")); break; case "ban": case "banid": case "global.ban": case "global.banid": BanCommand(cmd, args, message.Identifier, context); break; case "global.unban": case "unban": UnbanCommand(cmd, args, message.Identifier, context); break; case "server.version": case "version": context?.WebSocket?.Send(RemoteMessage.CreateMessage($"{covalence.Game} {covalence.Server.Version} - Protocol {covalence.Server.Protocol} with Oxide v{OxideMod.Version}", message.Identifier).ToJSON()); break; case "global.teleport": case "global.teleportpos": case "teleport": case "teleportpos": TeleportCommand(cmd, args, message.Identifier, context); break; default: covalence.Server.Command(cmd, args); break; } }