|
- using System;
- using System.Collections.Generic;
- using System.Text.RegularExpressions;
- using ExitGames.Client.Photon.Chat;
-
- namespace CLre_server.Tweaks.Chat
- {
- public static class ModeratorCommands
- {
- [ChatCommand("KICK", "kick ([\\w\\d\\-_]+)")]
- public static void KickInButt(Match messageMatch, ChatClient connection, string sender)
- {
- if (!API.MainServer.Moderator.Instance.IsModerator(sender))
- {
- connection.PublishMessage(ChatListener.ChatName, "Ban failure: You're not a mod :(");
- return;
- }
- string target = messageMatch.Groups[1].Value;
- #if DEBUG
- API.Utility.Logging.MetaLog($"/kick {target}");
- #endif
- if (API.MainServer.Moderator.Instance.DisconnectPlayerById(target))
- {
- connection.PublishMessage(ChatListener.ChatName, $"Adios {target}");
- }
- else if (API.MainServer.Moderator.Instance.DisconnectPlayerByName(target))
- {
- connection.PublishMessage(ChatListener.ChatName, $"Bye bye {target}");
- }
- else
- {
- connection.PublishMessage(ChatListener.ChatName, "Kick failure: User not found :(");
- }
- }
-
- [ChatCommand("BAN", "ban ([\\w\\d\\-_]+)")]
- public static void BanishIdiot(Match messageMatch, ChatClient connection, string sender)
- {
- if (!API.MainServer.Moderator.Instance.IsModerator(sender))
- {
- connection.PublishMessage(ChatListener.ChatName, "Ban failure: You're not a mod :(");
- return;
- }
- string target = messageMatch.Groups[1].Value;
- #if DEBUG
- API.Utility.Logging.MetaLog($"/ban {target}");
- #endif
- if (API.MainServer.Moderator.Instance.BanPlayerById(target))
- {
- connection.PublishMessage(ChatListener.ChatName, $"And {target} is no more!");
- }
- else if (API.MainServer.Moderator.Instance.BanPlayerByName(target))
- {
- connection.PublishMessage(ChatListener.ChatName, $"And {target} was never seen again...");
- }
- else
- {
- connection.PublishMessage(ChatListener.ChatName, $"Ban warning: {target} was added to ban list but was not connected to this server...");
- }
- }
-
- [ChatCommand("(SH)OPIFY", "(mod|op) ([\\w\\d\\-_]+)")]
- public static void GoPro(Match messageMatch, ChatClient connection, string sender)
- {
- if (!API.MainServer.Moderator.Instance.IsModerator(sender))
- {
- connection.PublishMessage(ChatListener.ChatName, "Op failure: You're not a mod :(");
- return;
- }
- string target = messageMatch.Groups[2].Value;
- #if DEBUG
- API.Utility.Logging.MetaLog($"/op {target}");
- #endif
- List<string> moderators = new List<string>(CLre.Config.moderators);
- moderators.Add(target);
- CLre.Config.moderators = moderators.ToArray();
- connection.PublishMessage(ChatListener.ChatName, $"Promoted {target} to moderator");
- }
-
- [ChatCommand("De(SH)OPIFY", "(demod|deop) ([\\w\\d\\-_]+)")]
- public static void AntiProton(Match messageMatch, ChatClient connection, string sender)
- {
- if (!API.MainServer.Moderator.Instance.IsModerator(sender))
- {
- connection.PublishMessage(ChatListener.ChatName, "DeOp failure: You're not a mod :(");
- return;
- }
- string target = messageMatch.Groups[2].Value;
- #if DEBUG
- API.Utility.Logging.MetaLog($"/deop {target}");
- #endif
- List<string> moderators = new List<string>(CLre.Config.moderators);
- if (moderators.Remove(target))
- {
- CLre.Config.moderators = moderators.ToArray();
- connection.PublishMessage(ChatListener.ChatName, $"Demoted {target} to regular user");
- }
- connection.PublishMessage(ChatListener.ChatName, "DeOp failure: User not found :(");
- }
-
- [ChatCommand("ECHO", "echo (.+)$")]
- public static void EchoEchoEcho(Match messageMatch, ChatClient connection, string sender)
- {
- string target = messageMatch.Groups[1].Value;
- #if DEBUG
- API.Utility.Logging.MetaLog($"/echo {target}");
- #endif
- connection.PublishMessage(ChatListener.ChatName, target);
- }
- }
- }
|