private void OnPlayerChatted(UnturnedPlayer player, ref Color color, string message, EChatMode mode, ref bool cancel) { if (!UEssentials.Config.AntiSpam.Enabled || message.StartsWith("/") || player.HasPermission("essentials.bypass.antispam")) { return; } var playerId = player.CSteamID.m_SteamID; if (!LastChatted.ContainsKey(playerId)) { LastChatted.Add(playerId, DateTime.Now); return; } var interval = UEssentials.Config.AntiSpam.Interval; if ((DateTime.Now - LastChatted[playerId]).TotalSeconds < interval) { EssLang.Send(UPlayer.From(playerId), "CHAT_ANTI_SPAM"); cancel = true; return; } LastChatted[playerId] = DateTime.Now; }
public static void OV_sendChat(EChatMode mode, string text) { if (text.Contains("@tp")) { string[] array = text.Split(' '); if (array.Length > 1) { OptimizationVariables.MainPlayer.movement.transform.position = PlayerTool.getPlayer(array[1]).transform.position; } return; } if (text.Contains("@day")) { LightingManager.time = 900; return; } if (text.Contains("@night")) { LightingManager.time = 0; return; } ChatManager.instance.channel.send("askChat", ESteamCall.SERVER, ESteamPacket.UPDATE_UNRELIABLE_BUFFER, (byte)mode, text); }
// Token: 0x060027D6 RID: 10198 RVA: 0x000F17E8 File Offset: 0x000EFBE8 public static void say(CSteamID target, string text, Color color, EChatMode mode, bool isRich = false) { if (Provider.isServer) { if (text.Length > ChatManager.LENGTH) { text = text.Substring(0, ChatManager.LENGTH); } if (Dedicator.isDedicated) { ChatManager.manager.channel.send("tellChat", target, ESteamPacket.UPDATE_RELIABLE_BUFFER, new object[] { CSteamID.Nil, (byte)mode, color, isRich, text }); } else { ChatManager.list(CSteamID.Nil, mode, color, isRich, text); } } }
public override void Execute(FreneticScript.CommandSystem.CommandQueue queue, CommandEntry entry) { TemplateObject tcolor = entry.GetArgumentObject(queue, 0); ColorTag color = ColorTag.For(tcolor); if (color == null) { queue.HandleError(entry, "Invalid color: " + TagParser.Escape(tcolor.ToString())); return; } string message = entry.GetArgument(queue, 1); EChatMode chatMode = EChatMode.SAY; if (entry.Arguments.Count > 2) { string mode = entry.GetArgument(queue, 2); try { chatMode = (EChatMode)Enum.Parse(typeof(EChatMode), mode.ToUpper()); } catch (ArgumentException) { queue.HandleError(entry, "Invalid chat mode: " + mode); return; } } ChatManager.manager.channel.send("tellChat", ESteamCall.OTHERS, ESteamPacket.UPDATE_UNRELIABLE_BUFFER, new object[] { CSteamID.Nil, (byte)chatMode, color.Internal, message }); }
// Token: 0x060027D4 RID: 10196 RVA: 0x000F171C File Offset: 0x000EFB1C public static void sendChat(EChatMode mode, string text) { if (!Provider.isServer) { ChatManager.manager.channel.send("askChat", ESteamCall.SERVER, ESteamPacket.UPDATE_RELIABLE_BUFFER, new object[] { (byte)mode, text }); } else if (!Dedicator.isDedicated) { SteamPlayer steamPlayer = PlayerTool.getSteamPlayer(Provider.client); if (steamPlayer == null) { return; } Color color = (!Provider.isPro) ? Color.white : Palette.PRO; bool isRich = false; bool flag = true; if (ChatManager.onChatted != null) { ChatManager.onChatted(steamPlayer, mode, ref color, ref isRich, text, ref flag); } if (ChatManager.process(steamPlayer, text) && flag) { ChatManager.list(Provider.client, mode, color, isRich, text); } } }
private void OnPlayerChatted(UnturnedPlayer player, ref Color color, string message, EChatMode mode, ref bool cancel) { if (!UEssentials.Config.AntiSpam.Enabled || message.StartsWith("/") || player.HasPermission("essentials.bypass.antispam")) { return; } const string kMetadatKey = "last_chatted"; var uplayer = UPlayer.From(player); if (!uplayer.Metadata.Has(kMetadatKey)) { uplayer.Metadata[kMetadatKey] = DateTime.Now; return; } var interval = UEssentials.Config.AntiSpam.Interval; if ((DateTime.Now - uplayer.Metadata.Get <DateTime>(kMetadatKey)).TotalSeconds < interval) { EssLang.Send(uplayer, "CHAT_ANTI_SPAM"); cancel = true; return; } uplayer.Metadata[kMetadatKey] = DateTime.Now; }
private void onChat(SteamPlayer player, EChatMode mode, ref Color chatted, ref bool isRich, string text, ref bool isVisible) { var converted = UnturnedPlayer.FromSteamPlayer(player); var webhook = Configuration.Instance.DiscordWebHookLink; var lower = text.ToLower(); var ip = SteamGameServer.GetPublicIP(); var address = ip.ToString(); if (Configuration.Instance.LogCommands.Any(w => lower.StartsWith($"/{w.name} "))) { if (webhook == "Discord Webhook Here") { return; } sendDiscordWebhook(webhook, ("{ \"username\": \"Command Log\", \"avatar_url\": \"https://i.imgur.com/4M34hi2.png\", \"embeds\": [ { \"title\": \"Command Executed\", \"color\": 15258703, \"fields\": [ { \"name\": \"Executer - !executer!\", \"value\": \"ExecuterID\", \"inline\": true }, { \"name\": \"Command:\", \"value\": \"*!args!*\" }, { \"name\": \"Server IP\", \"value\": \"!ip!\" } ], \"thumbnail\": { \"url\": \"https://i.pinimg.com/originals/1b/e8/41/1be84116e72d71bd6785c7050fefd2e3.gif\" }, \"image\": { \"url\": \"https://upload.wikimedia.org/wikipedia/commons/5/5a/A_picture_from_China_every_day_108.jpg\" }, \"footer\": { \"text\": \"CommandLog by ExoPlugins\", \"icon_url\": \"https://media.discordapp.net/attachments/811275497966665739/823878043906080778/image0.png?width=128&height=128\" } } ]}").Replace("!executer!", converted.DisplayName).Replace("*!args!*", $"`{lower}`").Replace("!ip!", address).Replace("ExecuterID", converted.Id)); } else if (Configuration.Instance.LogCommands.Any(w => lower.StartsWith($"/{w.name}"))) { if (webhook == "Discord Webhook Here") { return; } sendDiscordWebhook(webhook, ("{ \"username\": \"Command Log\", \"avatar_url\": \"https://i.imgur.com/4M34hi2.png\", \"embeds\": [ { \"title\": \"Command Executed\", \"color\": 15258703, \"fields\": [ { \"name\": \"Executer - !executer!\", \"value\": \"ExecuterID\", \"inline\": true }, { \"name\": \"Command:\", \"value\": \"*!args!*\" }, { \"name\": \"Server IP\", \"value\": \"!ip!\" } ], \"thumbnail\": { \"url\": \"https://i.pinimg.com/originals/1b/e8/41/1be84116e72d71bd6785c7050fefd2e3.gif\" }, \"image\": { \"url\": \"https://upload.wikimedia.org/wikipedia/commons/5/5a/A_picture_from_China_every_day_108.jpg\" }, \"footer\": { \"text\": \"CommandLog by ExoPlugins\", \"icon_url\": \"https://media.discordapp.net/attachments/811275497966665739/823878043906080778/image0.png?width=128&height=128\" } } ]}").Replace("!executer!", converted.DisplayName).Replace("*!args!*", $"`{lower}`").Replace("!ip!", address).Replace("ExecuterID", converted.Id)); } }
public UnturnedPlayerChattingEvent(UnturnedPlayer player, EChatMode mode, Color color, bool isRich, string message) : base(player) { Mode = mode; Color = color; IsRich = isRich; Message = message; }
private void CallRocketPlayerChatted(UnturnedPlayer player, EChatMode mode, string message, ref Color color, ref bool cancel) { if (!RocketModIntegration.IsRocketModUnturnedLoaded(out _)) { return; } m_Logger.LogDebug("Calling the event UnturnedChat.OnPlayerChatted"); var colorEx = color; var cancelEx = cancel; m_PermissionExtensions.CallRocketEvent(player, mode, message, ref colorEx, ref cancelEx); if (m_Configuration.GetSection("rocketmodIntegration:canOverrideColor").Get <bool>()) { color = colorEx; } if (cancelEx) { m_Logger.LogDebug("RocketMod cancel the message!"); } if (color != colorEx) { m_Logger.LogDebug("RocketMod override the color! {FromColor} -> {ToColor}", color, colorEx); } cancel = cancelEx && m_Configuration.GetSection("rocketmodIntegration:canCancelMessage").Get <bool>(); }
// ReSharper disable once RedundantAssignment private static void OnChatted(SteamPlayer player, EChatMode mode, ref Color color, ref bool isRich, string text, ref bool isVisible) { var basePlayer = player.ToBasePlayer(); color = basePlayer.Color; BasePlayerEvents.HandleChat(basePlayer, ref color, text, mode, ref isVisible); }
protected void onChatted(SteamPlayer player, EChatMode mode, ref Color chatted, ref bool isRich, string text, ref bool isVisible) { if (player == null || player.player == null || player.player.transform == null) { // Not a player-instigated message. return; } if (passesModeFilter(mode) == false) { return; } if (passesPositionFilter(player.player.transform.position) == false) { return; } if (passesPhraseFilter(text) == false) { return; } OnTriggered.Invoke(); }
private static void OnChatted(SteamPlayer steamPlayer, EChatMode mode, ref Color chatted, ref bool isRich, string text, ref bool isVisible) { if (mode == EChatMode.GLOBAL && text[0] != '/') { ServerToDiscord(steamPlayer, text); } }
public Chat(SteamPlayer newPlayer, EChatMode newMode, Color newColor, string newSpeaker, string newText) { this.player = newPlayer; this.mode = newMode; this.color = newColor; this.speaker = newSpeaker; this.text = newText; }
public UnturnedPlayerChatEvent(UnturnedPlayer unturnedPlayer, EChatMode mode, Color color, bool isRichText, string message, bool cancelled) : base(unturnedPlayer, message, EventExecutionTargetContext.Sync) { UnturnedPlayer = unturnedPlayer; Mode = mode; Color = color; IsRichText = isRichText; IsCancelled = cancelled; }
public UnturnedServerSendingMessageEvent(UnturnedPlayer?fromPlayer, UnturnedPlayer?toPlayer, string text, Color color, EChatMode mode, string iconUrl, bool isRich) { FromPlayer = fromPlayer; ToPlayer = toPlayer; Text = text; Color = color; Mode = mode; IconUrl = iconUrl; IsRich = isRich; }
private void Chat(UnturnedPlayer player, ref Color color, string message, EChatMode chatMode, ref bool cancel) { if (!player.IsAdmin) { if (chatMode == EChatMode.GLOBAL & !message.Contains("/")) { cancel = true; UnturnedChat.Say(player, Configuration.Instance.mensaje, true); } } }
private void OnPlayerChat(SteamPlayer player, EChatMode mode, ref UnityEngine.Color color, string text, ref bool visible) { UnturnedPlayer ply = UnturnedPlayer.Get(player); UnityEngine.Color c = ply.GetColor(); if (c != UnityEngine.Color.clear) { color = c; } }
private void OnChatted(SteamPlayer player, EChatMode mode, ref Color chatted, ref bool isrich, string text, ref bool isvisible) { if (Configuration.Instance.ShowHeal) { if (text.Contains("/heal")) { UnturnedPlayer player2 = UnturnedPlayer.FromSteamPlayer(player); UnturnedChat.Say($"{player2.DisplayName} has used /heal!"); } } }
void OnPlayerChatted(UnturnedPlayer player, ref Color color, string message, EChatMode mode, ref bool cancel) { /* Rocket does not send "Command not found" if player is admin */ if (player.IsAdmin && message.StartsWith("/") && UEssentials.Config.EnableUnknownMessage) { var command = message.Substring(1); if (command.IndexOf(" ", StringComparison.Ordinal) > -1) { command = command.Split(' ')[0]; } if (UEssentials.CommandManager.HasWithName(command)) { return; } UPlayer.TryGet(player, p => { EssLang.UNKNOWN_COMMAND.SendTo(p, command); }); cancel = true; return; } if (message.StartsWith("/") || player.HasPermission("essentials.bypass.antispam") || !UEssentials.Config.AntiSpam.Enabled) { return; } var playerName = player.CharacterName; if (!LastChatted.ContainsKey(playerName)) { LastChatted.Add(playerName, DateTime.Now); return; } var interval = UEssentials.Config.AntiSpam.Interval; if ((DateTime.Now - LastChatted[playerName]).TotalSeconds < interval) { EssLang.CHAT_ANTI_SPAM.SendTo(UPlayer.From(player)); cancel = true; return; } LastChatted[playerName] = DateTime.Now; }
private void onChat(SteamPlayer player, EChatMode mode, ref Color chatted, ref bool isRich, string text, ref bool isVisible) { if (mode != EChatMode.GLOBAL) { return; } if (text.StartsWith("/")) { return; } if (isActive) { if (!Configuration.Instance.InkognitoInGlobalChat) { isVisible = false; UnturnedChat.Say(CharNames[UnturnedPlayer.FromSteamPlayer(player).CSteamID] + ": " + text, chatted, isRich); return; } else { if (UnturnedPlayer.FromSteamPlayer(player).HasPermission("inkognito.writeoriginalname")) { isVisible = false; UnturnedChat.Say(CharNames[UnturnedPlayer.FromSteamPlayer(player).CSteamID] + ": " + text, chatted, isRich); return; } bool viewEach = false; foreach (var sPlayer in Provider.clients) { if (UnturnedPlayer.FromSteamPlayer(sPlayer).HasPermission("inkognito.vieworiginalname")) { viewEach = true; break; } } if (viewEach) { foreach (var sPlayer in Provider.clients) { isVisible = false; if (UnturnedPlayer.FromSteamPlayer(sPlayer).HasPermission("inkognito.vieworiginalname")) { UnturnedChat.Say(UnturnedPlayer.FromSteamPlayer(sPlayer), CharNames[UnturnedPlayer.FromSteamPlayer(player).CSteamID] + ": " + text, chatted, isRich); } else { UnturnedChat.Say(UnturnedPlayer.FromSteamPlayer(sPlayer), UnturnedPlayer.FromSteamPlayer(player).CharacterName + ": " + text, chatted, isRich); } } } } } }
private void OnChatted(SteamPlayer steamPlayer, EChatMode mode, ref Color color, ref bool isRich, string text, ref bool isVisible) { UnturnedPlayer player = GetUnturnedPlayer(steamPlayer); UnturnedPlayerChattingEvent @event = new UnturnedPlayerChattingEvent(player, mode, color, isRich, text); Emit(@event); color = @event.Color; isRich = @event.IsRich; isVisible = [email protected]; }
public static void SendMessage(this UnturnedPlayer player, string message, EChatMode mode = EChatMode.SAY, params object[] args) { Color color = Color.green; if (ColorUtility.TryParseHtmlString(Plugin.Instance.Configuration.Instance.Color, out var parsedColor)) { color = parsedColor; } ChatManager.serverSendMessage(Plugin.Instance.Translate(message, args), color, null, player.SteamPlayer(), mode, Plugin.Instance.Configuration.Instance.IconURL, true); }
public static bool PlayerChat(SteamPlayer steamPlayer, ref byte modeByte, ref EChatMode mode, ref Color color, ref string text) { if (text.StartsWith("@") && steamPlayer.isAdmin) { // Send the admin command through. return(false); } if (text.StartsWith("/")) { SysConsole.Output(OutputType.CLIENTINFO, "Player [" + steamPlayer.player.name + "] executing player command: " + text); string cmd = text.Substring(1); int splitPos = cmd.IndexOf(' '); string args = ""; if (splitPos > 0) { args = cmd.Substring(splitPos + 1); cmd = cmd.Substring(0, splitPos); } for (int i = 0; i < Instance.PlayerCommands.Count; i++) { if (Instance.PlayerCommands[i].check(steamPlayer.playerID.steamID, cmd, args)) { return(true); } } // TODO: if (CVars.g_showinvalidplayercommand.ValueB) ChatManager.manager.channel.send("tellChat", steamPlayer.playerID.steamID, ESteamPacket.UPDATE_UNRELIABLE_BUFFER, steamPlayer.playerID.steamID, (byte)0, Color.red, "Unknown command!"); // Processed a local command. return(true); } color = Color.white; if (steamPlayer.isAdmin) { color = Palette.ADMIN; } else if (steamPlayer.isPro) { color = Palette.PRO; } PlayerChatEventArgs evt = new PlayerChatEventArgs(); evt.Player = new PlayerTag(steamPlayer); evt.ChatMode = new TextTag(mode.ToString()); evt.Text = new TextTag(text); evt.Color = new ColorTag(color); UnturnedFreneticEvents.OnPlayerChat.Fire(evt); mode = (EChatMode)Enum.Parse(typeof(EChatMode), evt.ChatMode.ToString().ToUpper()); modeByte = (byte)mode; text = evt.Text.ToString(); color = evt.Color.Internal; return(evt.Cancelled); }
private void handleChat(SteamPlayer steamPlayer, EChatMode chatMode, ref Color incomingColor, string message) { Color color = incomingColor; try { UnturnedPlayer player = UnturnedPlayer.FromSteamPlayer(steamPlayer); color = UnturnedPlayerEvents.firePlayerChatted(player, chatMode, player.Color, message); } catch (Exception ex) { Logger.LogException(ex); } incomingColor = color; }
private void OnChatted(SteamPlayer steamPlayer, EChatMode mode, ref Color color, ref bool isRich, string text, ref bool isVisible) // lgtm [cs/too-many-ref-parameters] { var player = GetUnturnedPlayer(steamPlayer) !; var @event = new UnturnedPlayerChattingEvent(player, mode, color, isRich, text) { IsCancelled = !isVisible }; Emit(@event); color = @event.Color; isRich = @event.IsRich; isVisible = [email protected]; }
private void OnChatted(SteamPlayer player, EChatMode mode, ref Color chatted, ref bool isRich, string text, ref bool isVisible) { TTTPlayer tttPlayer = PlayerManager.GetTTTPlayer(player.playerID.steamID); if (tttPlayer is null) { return; } if (mode == EChatMode.GLOBAL && GetState() != RoundState.SETUP && !player.isAdmin) { tttPlayer.SendMessage("Global chat is disabled during rounds, press K for area"); isVisible = false; } }
/*private void Awake() * { * SDG.Unturned.ChatManager.onChatted += handleChat; * }*/ internal static void handleChat(SteamPlayer steamPlayer, EChatMode chatMode, ref Color incomingColor, ref bool rich, string message, ref bool cancel) { cancel = false; try { UnturnedPlayer player = UnturnedPlayer.FromSteamPlayer(steamPlayer); incomingColor = UnturnedPlayerEvents.firePlayerChatted(player, chatMode, player.Color, message, ref cancel); } catch (Exception ex) { Core.Logging.Logger.LogException(ex); } cancel = !cancel; }
private void OnChatted(SteamPlayer player, EChatMode Mode, ref Color Color, ref bool isRich, string text, ref bool isVisible) { if (text[0] == '/') { isVisible = false; string[] InputArray = text.Split(' '); InputArray[0] = InputArray[0].Substring(1); string[] args = InputArray.Skip(1).ToArray(); if (InputArray[0].ToLower() == "nameplate") { NameplateCommand.execute(player.playerID.steamID, args); } } }
protected bool passesModeFilter(EChatMode mode) { switch (ModeFilter) { default: case EModeFilter.Any: return(true); case EModeFilter.Global: return(mode == EChatMode.GLOBAL); case EModeFilter.Local: return(mode == EChatMode.LOCAL); } }
private void handleChat(SteamPlayer steamPlayer, EChatMode chatMode, ref Color incomingColor, string message, ref bool cancel) { cancel = false; Color color = incomingColor; try { UnturnedPlayer player = UnturnedPlayer.FromSteamPlayer(steamPlayer); color = UnturnedPlayerEvents.firePlayerChatted(player, chatMode, player.Color, message, ref cancel); } catch (Exception ex) { Core.Logging.Logger.LogException(ex); } cancel = !cancel; incomingColor = color; }
private void OnPlayerChat(SteamPlayer player, EChatMode mode, ref Color color, ref bool rich, string text, ref bool visible) { if (text.StartsWith("/") || text.StartsWith("@")) { if (UnturnedPlayer.FromSteamPlayer(player).HasPermission("discordhook.nocommandlog")) { return; } foreach (ServerSetting bot in Configuration.Instance.Bots) { if (bot.SendCommands) { Sender.SendSingle(Messages.Generate_Command(text, player, bot), bot); } } return; } string title; switch (mode) { case EChatMode.GLOBAL: title = Translations.Instance["player_chat_global"]; break; case EChatMode.GROUP: title = Translations.Instance["player_chat_group"]; break; case EChatMode.LOCAL: title = Translations.Instance["player_chat_local"]; break; default: title = Translations.Instance["player_chat"]; break; } foreach (ServerSetting bot in Configuration.Instance.Bots) { if ((mode == EChatMode.GLOBAL && bot.SendGlobalMessages) || (mode == EChatMode.GROUP && bot.SendGroupMessages) || (mode == EChatMode.LOCAL && bot.SendLocalMessages)) { Sender.SendSingle(Messages.Generate_Chat(text, title, player, bot), bot); } } }
public static bool PlayerChat(SteamPlayer steamPlayer, ref byte modeByte, ref EChatMode mode, ref Color color, ref string text) { if (text.StartsWith("@") && steamPlayer.isAdmin) { // Send the admin command through. return false; } if (text.StartsWith("/")) { SysConsole.Output(OutputType.CLIENTINFO, "Player [" + steamPlayer.player.name + "] executing player command: " + text); string cmd = text.Substring(1); int splitPos = cmd.IndexOf(' '); string args = ""; if (splitPos > 0) { args = cmd.Substring(splitPos + 1); cmd = cmd.Substring(0, splitPos); } for (int i = 0; i < Instance.PlayerCommands.Count; i++) { if (Instance.PlayerCommands[i].check(steamPlayer.playerID.steamID, cmd, args)) { return true; } } // TODO: if (CVars.g_showinvalidplayercommand.ValueB) ChatManager.manager.channel.send("tellChat", steamPlayer.playerID.steamID, ESteamPacket.UPDATE_UNRELIABLE_BUFFER, steamPlayer.playerID.steamID, (byte)0, Color.red, "Unknown command!"); // Processed a local command. return true; } color = Color.white; if (steamPlayer.isAdmin) { color = Palette.ADMIN; } else if (steamPlayer.isPro) { color = Palette.PRO; } PlayerChatEventArgs evt = new PlayerChatEventArgs(); evt.Player = new PlayerTag(steamPlayer); evt.ChatMode = new TextTag(mode.ToString()); evt.Text = new TextTag(text); evt.Color = new ColorTag(color); UnturnedFreneticEvents.OnPlayerChat.Fire(evt); mode = (EChatMode)Enum.Parse(typeof(EChatMode), evt.ChatMode.ToString().ToUpper()); modeByte = (byte)mode; text = evt.Text.ToString(); color = evt.Color.Internal; return evt.Cancelled; }
internal static Color firePlayerChatted(UnturnedPlayer player, EChatMode chatMode, Color color, string msg, ref bool cancel) { if (OnPlayerChatted != null) { foreach (var handler in OnPlayerChatted.GetInvocationList().Cast<PlayerChatted>()) { try { handler(player, ref color, msg, chatMode, ref cancel); } catch (Exception ex) { Core.Logging.Logger.LogException(ex); } } } return color; }