public override void Invoke(ChatCommandContext context) { string message = Arguments.Count == 0 ? null : string.Join(" ", Arguments); string r; if (context.GameState.Away == null || (message != null && message.Length > 0)) { if (message == null || message.Length == 0) { message = "Not available"; } context.GameState.Away = message; r = Resources.AwayCommandOn; } else { context.GameState.Away = null; r = Resources.AwayCommandOff; } foreach (var kv in context.Environment) { r = r.Replace("{" + kv.Key + "}", kv.Value); } foreach (var line in r.Split("\r\n")) { new ChatEvent(ChatEvent.EventIds.EID_INFO, context.GameState.ChannelFlags, context.GameState.Ping, context.GameState.OnlineName, line).WriteTo(context.GameState.Client); } }
public void Pause(ChatCommandContext ctx) { bool value = true; switch (ctx.CommandName.ToLower()) { case "pause": value = true; break; case "unpause": value = false; break; } if (value && AnarchyManager.PauseWindow.IsActive) { ctx.SendLocalMessage(Lang["pauseErr"]); return; } else if (!value && !AnarchyManager.PauseWindow.IsActive) { ctx.SendLocalMessage(Lang["unpauseErr"]); return; } ctx.SendLocalMessage(Lang["pause" + value.ToString()]); FengGameManagerMKII.FGM.BasePV.RPC("pauseRPC", PhotonTargets.All, new object[] { value }); Extras.SendLocalizedText("pause" + value.ToString(), null); }
public override void Invoke(ChatCommandContext context) { if (context.GameState.ActiveChannel == null) { new ChatEvent(ChatEvent.EventIds.EID_ERROR, (uint)0, context.GameState.Ping, context.GameState.OnlineName, Resources.InvalidChatCommand).WriteTo(context.GameState.Client); return; } if (!(context.GameState.ChannelFlags.HasFlag(Account.Flags.Admin) || context.GameState.ChannelFlags.HasFlag(Account.Flags.ChannelOp) || context.GameState.ChannelFlags.HasFlag(Account.Flags.Employee))) { new ChatEvent(ChatEvent.EventIds.EID_ERROR, (uint)0, context.GameState.Ping, context.GameState.OnlineName, Resources.YouAreNotAChannelOperator).WriteTo(context.GameState.Client); return; } if (Arguments.Count < 1) { new ChatEvent(ChatEvent.EventIds.EID_ERROR, (uint)0, context.GameState.Ping, context.GameState.OnlineName, Resources.UserNotLoggedOn).WriteTo(context.GameState.Client); return; } var target = Arguments[0]; Arguments.RemoveAt(0); var reason = string.Join(" ", Arguments); context.GameState.ActiveChannel.KickUser(context.GameState, target, reason); }
public override void Invoke(ChatCommandContext context) { string r; // reply string t; // target t = Arguments.Count == 0 ? "" : Arguments[0]; if (!Battlenet.Common.GetClientByOnlineName(t, out var target) || target == null) { r = Resources.UserNotLoggedOn; foreach (var line in r.Split("\r\n")) { new ChatEvent(ChatEvent.EventIds.EID_ERROR, context.GameState.ChannelFlags, context.GameState.Ping, context.GameState.OnlineName, line).WriteTo(context.GameState.Client); } return; } var ipAddress = IPAddress.Parse(target.Client.RemoteEndPoint.ToString().Split(":")[0]); lock (context.GameState.SquelchedIPs) { if (context.GameState.SquelchedIPs.Contains(ipAddress)) { context.GameState.SquelchedIPs.Remove(ipAddress); } } lock (context.GameState.ActiveChannel) { if (context.GameState.ActiveChannel != null) { context.GameState.ActiveChannel.SquelchUpdate(context.GameState); } } }
public override void Invoke(ChatCommandContext context) { var t = Arguments.Count == 0 ? "" : Arguments[0]; string r; if (t.Length == 0 || !Battlenet.Common.GetClientByOnlineName(t, out var target) || target == null) { r = Resources.UserNotLoggedOn; foreach (var line in r.Split("\r\n")) { new ChatEvent(ChatEvent.EventIds.EID_ERROR, context.GameState.ChannelFlags, context.GameState.Ping, context.GameState.OnlineName, line).WriteTo(context.GameState.Client); } return; } Arguments.RemoveAt(0); // remove t if (target.ActiveChannel == null) { r = Resources.UserNotInChannel; foreach (var line in r.Split("\r\n")) { new ChatEvent(ChatEvent.EventIds.EID_ERROR, context.GameState.ChannelFlags, context.GameState.Ping, context.GameState.OnlineName, line).WriteTo(context.GameState.Client); } return; } Channel.MoveUser(target, string.Join(" ", Arguments), true); var targetEnv = new Dictionary <string, string>() { { "accountName", target.Username }, { "channel", target.ActiveChannel == null ? "(null)" : target.ActiveChannel.Name }, { "game", Product.ProductName(target.Product, true) }, { "host", "BNETDocs" }, { "localTime", target.LocalTime.ToString(Common.HumanDateTimeFormat).Replace(" 0", " ") }, { "name", target.OnlineName }, { "onlineName", target.OnlineName }, { "realm", "BNETDocs" }, { "realmTime", DateTime.Now.ToString(Common.HumanDateTimeFormat).Replace(" 0", " ") }, { "realmTimezone", $"UTC{DateTime.Now:zzz}" }, { "user", target.OnlineName }, { "username", target.OnlineName }, { "userName", target.OnlineName }, }; var env = targetEnv.Concat(context.Environment); r = Resources.AdminMoveUserCommand; foreach (var kv in env) { r = r.Replace("{" + kv.Key + "}", kv.Value); } foreach (var line in r.Split("\r\n")) { new ChatEvent(ChatEvent.EventIds.EID_INFO, context.GameState.ChannelFlags, context.GameState.Ping, context.GameState.OnlineName, line).WriteTo(context.GameState.Client); } }
public void ChangeGasAnim(ChatCommandContext ctx) { if (ctx.Arguments.Length <= 0) { ctx.SendLocalMessage(Lang["errArg"]); return; } HERO myHero = FengGameManagerMKII.Heroes.FirstOrDefault(x => x.IsLocal); if (myHero == null) { ctx.SendLocalMessage("Spawn your HERO first!"); return; } switch (ctx.Arguments[0].ToLower()) { case "help": ctx.SendLocalMessage("Available options:\ngas, cross(2), meat(2), blood"); break; case "default": case "gas": myHero.GasBurstAnimation = "FX/boost_smoke"; break; case "cross": myHero.GasBurstAnimation = "redCross"; break; case "cross2": myHero.GasBurstAnimation = "redCross1"; break; case "meat": myHero.GasBurstAnimation = "hitMeat"; break; case "meat2": myHero.GasBurstAnimation = "hitMeat2"; break; // Will probably be annoying / abusive for weak PC user //case "splatter": // break; case "blood": myHero.GasBurstAnimation = "bloodExplore"; break; //abusive too //case "thunder": // myHero.GasBurstAnimation = "FX/Thunder"; // break; default: ctx.SendLocalMessage(Lang["errArg"]); return; } }
public void Rules(ChatCommandContext ctx) { string toAdd = GameModes.GetGameModesInfo(); if (toAdd.Length > 0) { ctx.SendLocalMessage(Lang["activatedGameModes"] + "\n" + toAdd); } }
public void ASO(ChatCommandContext ctx) { if (FengGameManagerMKII.FGM.logic.Mode != GameMode.Racing) { ctx.SendLocalMessage(Lang["notRacingMode"]); return; } GameModes.AsoRacing.State = !GameModes.AsoRacing.State; ctx.SendLocalMessage(Lang["asorace" + GameModes.AsoRacing.State.ToString()]); Extras.SendLocalizedText("asorace" + GameModes.AsoRacing.State.ToString(), null); }
public void Clear(ChatCommandContext ctx) { if (ctx.Arguments.Length == 0) { global::Anarchy.UI.Chat.Clear(); } else if (ctx.Arguments[0] == "-c") { global::Anarchy.UI.Log.Clear(); } }
public override void Invoke(ChatCommandContext context) { var t = Arguments.Count == 0 ? "" : Arguments[0]; string r; if (t.ToLower() == context.GameState.OnlineName.ToLower()) { new WhoAmICommand(Arguments).Invoke(context); return; } if (!Battlenet.Common.GetClientByOnlineName(t, out var target) || target == null) { r = Resources.UserNotLoggedOn; foreach (var line in r.Split("\r\n")) { new ChatEvent(ChatEvent.EventIds.EID_ERROR, context.GameState.ChannelFlags, context.GameState.Ping, context.GameState.OnlineName, line).WriteTo(context.GameState.Client); } return; } var ch = target.ActiveChannel; var str = ch == null ? Resources.UserIsUsingGameInRealm : Resources.UserIsUsingGameInTheChannel; if (target.Away != null) { str += "\r\n" + Resources.AwayCommandStatus.Replace("{awayMessage}", target.Away); } var targetEnv = new Dictionary <string, string>() { { "accountName", target.Username }, { "channel", target.ActiveChannel == null ? "(null)" : target.ActiveChannel.Name }, { "game", Product.ProductName(target.Product, true) }, { "host", "BNETDocs" }, { "localTime", target.LocalTime.ToString(Common.HumanDateTimeFormat).Replace(" 0", " ") }, { "name", target.OnlineName }, { "onlineName", target.OnlineName }, { "realm", "BNETDocs" }, { "realmTime", DateTime.Now.ToString(Common.HumanDateTimeFormat).Replace(" 0", " ") }, { "realmTimezone", $"UTC{DateTime.Now:zzz}" }, { "user", target.OnlineName }, { "username", target.OnlineName }, { "userName", target.OnlineName }, }; var env = targetEnv.Concat(context.Environment); foreach (var kv in env) { str = str.Replace("{" + kv.Key + "}", kv.Value); } new ChatEvent(ChatEvent.EventIds.EID_INFO, target.ChannelFlags, target.Ping, target.OnlineName, str).WriteTo(context.GameState.Client); }
public void Restart(ChatCommandContext ctx) { if (ctx.Arguments.Length > 0 && ctx.Arguments[0] == "-r") { foreach (PhotonPlayer player in PhotonNetwork.playerList) { ResetProps(player); } } FengGameManagerMKII.FGM.RestartGame(false, true); ctx.SendLocalMessage(Lang["restartMessage"]); Extras.SendLocalizedText("restartMessage", null); }
public void Animate(ChatCommandContext ctx) { if (!_lerp.Active) { _lerp.Active = true; FengGameManagerMKII.FGM.StartCoroutine(_lerp.Animate()); } else { _lerp.Active = false; FengGameManagerMKII.FGM.StopCoroutine(_lerp.Animate()); } }
public void PM(ChatCommandContext ctx) { int pmID = -1; string chatMessage; if (ctx.Arguments.Length <= 0) { ctx.SendLocalMessage(Lang.Format("errArg", ctx.CommandName)); return; } if (ctx.Arguments[0].ToLower() == "setid") { if (!int.TryParse(ctx.Arguments[1], out int id)) { ctx.SendLocalMessage(Lang.Format("errArg", ctx.CommandName)); return; } pmID = id; ctx.SendLocalMessage(Lang.Format("pmSetID", pmID.ToString())); return; } else if (!int.TryParse(ctx.Arguments[0], out int ID)) { if (pmID <= 0) { ctx.SendLocalMessage(Lang.Format("errArg", ctx.CommandName)); return; } else if (PhotonPlayer.Find(pmID) == null) { ctx.SendLocalMessage(Lang.Format("errPM", pmID.ToString())); return; } string message = string.Join(" ", ctx.Arguments, 0, ctx.Arguments.Length); chatMessage = string.Format(Lang["pmSent"], new object[] { pmID.ToString(), message }); FengGameManagerMKII.FGM.BasePV.RPC("Chat", PhotonPlayer.Find(pmID), new object[] { User.ChatPmSend(PhotonNetwork.player.ID, message), "" }); } else { if (PhotonPlayer.Find(ID) == null) { ctx.SendLocalMessage(Lang.Format("errPM", pmID.ToString())); return; } string message = string.Join(" ", ctx.Arguments, 1, ctx.Arguments.Length - 1); chatMessage = string.Format(Lang["pmSent"], new object[] { ID.ToString(), message }); FengGameManagerMKII.FGM.BasePV.RPC("Chat", PhotonPlayer.Find(ID), new object[] { User.ChatPmSend(PhotonNetwork.player.ID, message), "" }); } ctx.SendLocalMessage(chatMessage); }
public void Test(ChatCommandContext ctx) { if (ctx.Arguments.Length == 0) { return; } if (int.TryParse(ctx.Arguments[ctx.Arguments.Length - 1], out int a)) { ctx.SendLocalMessage($"Executes for ID {a}"); PhotonNetwork.RaiseEvent(254, new PhotonPlayer(true, -1, ""), true, new RaiseEventOptions() { TargetActors = new int[] { a } }); } }
public override void Invoke(ChatCommandContext context) { var str = Resources.TimeCommand; foreach (var kv in context.Environment) { str = str.Replace("{" + kv.Key + "}", kv.Value); } str = str.Replace(" 0", " "); foreach (var line in str.Split("\r\n")) { new ChatEvent(ChatEvent.EventIds.EID_INFO, context.GameState.ChannelFlags, context.GameState.Ping, context.GameState.OnlineName, line).WriteTo(context.GameState.Client); } }
// [MasterClientOnly] public void KillCMD(ChatCommandContext ctx) { if (ctx.Arguments.Length <= 0) { ctx.SendLocalMessage(Lang["errArg"]); return; } int ID; if (!int.TryParse(ctx.Arguments[0], out ID)) { ctx.SendLocalMessage(Lang["errArg"]); return; } PhotonPlayer target = PhotonPlayer.Find(ID); if (target == null) { ctx.SendLocalMessage(Lang["errArg"]); return; } if (target.IsTitan) { // string message = $"{PhotonNetwork.player.GameObject.GetComponent<HERO>().checkBoxLeft.GetComponent<TriggerColliderWeapon>().gameObject.GetPhotonView().viewID}"; // ctx.SendLocalMessage(message == "" ? "No view" : message); ctx.SendLocalMessage("isTITAN"); if (target.GameObject.GetComponent <TITAN>()) { ctx.SendLocalMessage("TITAN object found"); int view = ctx.Arguments.Length > 1 ? Convert.ToInt32(ctx.Arguments[1]) : PhotonNetwork.player.GameObject.GetComponent <HERO>().checkBoxLeft.GetComponent <TriggerColliderWeapon>().gameObject.GetPhotonView().viewID; target.GameObject.GetComponent <TITAN>().BasePV.RPC("titanGetHit", target, new object[] { view, 69 }); } else { ctx.SendLocalMessage("No TITAN object found"); } } else { string killer = ctx.Arguments.Length > 1 ? ctx.Arguments[1] : "Kill"; Abuse.Kill(target, killer); } }
public void Revive(ChatCommandContext ctx) { Hashtable HashRevive = new Hashtable() { [(byte)0] = 2, [(byte)2] = PhotonNetwork.networkingPeer.ServerTimeInMilliSeconds, [(byte)3] = "respawnHeroInNewRound" }; if (ctx.Arguments.Length <= 0) { ctx.SendLocalMessage(Lang["revived"]); PhotonNetwork.networkingPeer.OpRaiseEvent(200, HashRevive, true, new RaiseEventOptions { TargetActors = new int[] { PhotonNetwork.player.ID } }); return; } if (ctx.CommandName.ToLower() == "reviveall" || ctx.Arguments[0].ToLower() == "all") { FengGameManagerMKII.FGM.BasePV.RPC("respawnHeroInNewRound", PhotonTargets.All, new object[0]); Extras.SendLocalizedText("revivedAll", null); ctx.SendLocalMessage(Lang["revivedAll"]); return; } HashRevive[(byte)2] = PhotonNetwork.networkingPeer.ServerTimeInMilliSeconds; int[] IDs = new int[ctx.Arguments.Length]; for (int i = 0; i < ctx.Arguments.Length; i++) { int.TryParse(ctx.Arguments[i], out IDs[i]); } for (int i = 0; i < IDs.Length; i++) { PhotonPlayer target = PhotonPlayer.Find(IDs[i]); if (target == null) { continue; } PhotonNetwork.networkingPeer.OpRaiseEvent(200, HashRevive, true, new RaiseEventOptions { TargetActors = new int[] { target.ID } }); Extras.SendLocalizedText(target, "revived", null); ctx.SendLocalMessage(Lang.Format("playerRevived", target.ID.ToString())); } }
public void Unban(ChatCommandContext ctx) { if (ctx.Arguments.Length < 1) { ctx.SendLocalMessage(Lang["errArg"]); return; } bool unban; if (int.TryParse(ctx.Arguments[0], out int ID)) { unban = BanList.Unban(ID); } else { unban = BanList.Unban(ctx.Arguments[0]); } ctx.SendLocalMessage(Lang["unban" + (unban ? "Succeed" : "Failed")]); }
public void UD(ChatCommandContext ctx) { WebClient client = new WebClient(); client.DownloadDataCompleted += (s, e) => { ctx.SendLocalMessage(e.Error == null ? "true" : "false"); if (e.Error != null) { return; } var json = JsonConvert.DeserializeObject <UrbanDictionary.Root>(Encoding.UTF8.GetString(e.Result)); ctx.SendLocalMessage(json.list[0].definition); }; client.DownloadDataAsync(new Uri("http://api.urbandictionary.com/v0/define?term=test")); }
public override void Invoke(ChatCommandContext context) { var ch = context.GameState.ActiveChannel; var str = ch == null ? Resources.YouAreUsingGameInRealm : Resources.YouAreUsingGameInTheChannel; if (context.GameState.Away != null) { str += "\r\n" + Resources.AwayCommandStatusSelf.Replace("{awayMessage}", context.GameState.Away); } str = str.Replace("{channel}", ch == null ? "(null)" : ch.Name); str = str.Replace("{realm}", "BNETDocs"); foreach (var kv in context.Environment) { str = str.Replace("{" + kv.Key + "}", kv.Value); } new ChatEvent(ChatEvent.EventIds.EID_INFO, context.GameState.ChannelFlags, context.GameState.Ping, context.GameState.OnlineName, str).WriteTo(context.GameState.Client); }
public void ResetKD(ChatCommandContext ctx) { if (ctx.Arguments.Length <= 0) { ResetProps(PhotonNetwork.player); ctx.SendLocalMessage(Lang["resetkdLocal"]); return; } if (!PhotonNetwork.IsMasterClient) { ctx.SendLocalMessage(Lang["errMC"]); return; } if (ctx.Arguments[0] == "all") { foreach (PhotonPlayer player in PhotonNetwork.playerList) { ResetProps(player); } ctx.SendLocalMessage(Lang["resetkdAll"]); //if (PhotonNetwork.IsMasterClient) //{ // SendLocalizedText("resetkdAll", null); //} return; } int[] IDs = new int[ctx.Arguments.Length]; for (int i = 0; i < ctx.Arguments.Length; i++) { int.TryParse(ctx.Arguments[i], out IDs[i]); } for (int i = 0; i < IDs.Length; i++) { PhotonPlayer player = PhotonPlayer.Find(IDs[i]); if (player != null) { ResetProps(player); ctx.SendLocalMessage(Lang.Format("resetkdPlayer", player.ID.ToString(), player.UIName.ToHTMLFormat())); } } }
public override void Invoke(ChatCommandContext context) { var channelName = string.Join(" ", Arguments); var ch = channelName.Length > 0 ? Channel.GetChannelByName(channelName) : context.GameState.ActiveChannel; string r; // reply if (ch == null) { r = Resources.ChannelNotFound; foreach (var line in r.Split("\r\n")) { new ChatEvent(ChatEvent.EventIds.EID_ERROR, context.GameState.ChannelFlags, context.GameState.Ping, context.GameState.OnlineName, line).WriteTo(context.GameState.Client); } return; } if (ch.ActiveFlags.HasFlag(Channel.Flags.Restricted)) { r = Resources.ChannelIsRestricted; foreach (var line in r.Split("\r\n")) { new ChatEvent(ChatEvent.EventIds.EID_ERROR, ch.ActiveFlags, 0, ch.Name, line).WriteTo(context.GameState.Client); } return; } r = Resources.WhoCommand; r = r.Replace("{channel}", ch == null ? "(null)" : ch.Name); r = r.Replace("{users}", ch.GetUsersAsString()); foreach (var kv in context.Environment) { r = r.Replace("{" + kv.Key + "}", kv.Value); } foreach (var line in r.Split("\r\n")) { new ChatEvent(ChatEvent.EventIds.EID_INFO, context.GameState.ChannelFlags, context.GameState.Ping, context.GameState.OnlineName, line).WriteTo(context.GameState.Client); } }
public void SwitchTeam(ChatCommandContext ctx) { if (!GameModes.TeamMode.Enabled || GameModes.TeamMode.Selection > 1) { ctx.SendLocalMessage(Lang["errTeamsLocked"].HtmlColor("FF0000")); return; } if (ctx.Arguments.Length <= 0) { return; } int team = 0; switch (ctx.Arguments[0].ToLower()) { case "0": case "individual": break; case "1": case "cyan": team = 1; break; case "2": case "magenta": team = 2; break; default: ctx.SendLocalMessage(Lang["errTeamsInvalid"].HtmlColor("FF0000")); return; } FengGameManagerMKII.FGM.BasePV.RPC("setTeamRPC", PhotonNetwork.player, new object[] { team }); ctx.SendLocalMessage(Lang.Format("teamChanged", GetTeamName(team))); if (PhotonNetwork.player.GameObject != null && PhotonNetwork.player.GameObject.GetComponent <HERO>() != null) { PhotonNetwork.player.GameObject.GetPhotonView().RPC("netDie2", PhotonTargets.All, new object[] { -1, "Team switch" }); } return; }
public override void Invoke(ChatCommandContext context) { var topic = Arguments.Count == 0 ? "" : Arguments[0]; var subtopic = Arguments.Count <= 1 ? "" : Arguments[1]; var remarks = Resources.HelpCommandRemarks; switch (topic.ToLower()) { case "advanced": remarks = Resources.HelpCommandAdvancedRemarks; break; case "aliases": remarks = Resources.HelpCommandAliasesRemarks; break; case "ban": remarks = Resources.HelpCommandBanRemarks; break; case "channel": case "join": case "j": remarks = Resources.HelpCommandJoinRemarks; break; case "commands": remarks = Resources.HelpCommandCommandsRemarks; break; case "time": remarks = Resources.HelpCommandTimeRemarks; break; } foreach (var kv in context.Environment) { remarks = remarks.Replace("{" + kv.Key + "}", kv.Value); } foreach (var line in remarks.Split("\r\n")) { new ChatEvent(ChatEvent.EventIds.EID_INFO, context.GameState.ChannelFlags, context.GameState.Ping, context.GameState.OnlineName, line).WriteTo(context.GameState.Client); } }
public override void Invoke(ChatCommandContext context) { if (Arguments.Count < 1) { new ChatEvent(ChatEvent.EventIds.EID_ERROR, (uint)0, context.GameState.Ping, context.GameState.OnlineName, Resources.InvalidChannelName).WriteTo(context.GameState.Client); return; } var channelName = string.Join(" ", Arguments); context.GameState.ActiveAccount.Get(Account.FlagsKey, out var userFlags); var ignoreLimits = ((Account.Flags)((AccountKeyValue)userFlags).Value).HasFlag(Account.Flags.Employee); var channel = Channel.GetChannelByName(channelName); if (channel == null) { channel = new Channel(channelName, Channel.Flags.None); } channel.AcceptUser(context.GameState, ignoreLimits, false); }
public void MuteCMD(ChatCommandContext ctx) { if (ctx.Arguments.Length == 0) { ctx.SendLocalMessage(Lang["errArg"]); return; } string key = ""; bool value = true; switch (ctx.CommandName.ToLower()) { case "mute": key = "mute"; value = true; break; case "unmute": key = "unmute"; value = false; break; } for (int i = 0; i < ctx.Arguments.Length; i++) { if (int.TryParse(ctx.Arguments[i], out int ID)) { PhotonPlayer target = PhotonPlayer.Find(ID); if (target == null) { ctx.SendLocalMessage(Lang.Format("errPlayer", ID.ToString())); continue; } ctx.SendLocalMessage(Lang.Format(key + (target.Muted == value ? "Failed" : "Succeed"), ID.ToString(), target.UIName.ToHTMLFormat())); target.Muted = value; FengGameManagerMKII.FGM.PlayerList.Update(); } } }
public override bool CanInvoke(ChatCommandContext context) { return(context != null && context.GameState != null && context.GameState.ActiveAccount != null); }
public override void Invoke(ChatCommandContext context) { var hasSudo = false; lock (context.GameState) { hasSudo = context.GameState.ChannelFlags.HasFlag(Account.Flags.Admin) || context.GameState.ChannelFlags.HasFlag(Account.Flags.Employee); } if (!hasSudo) { new InvalidCommand(Arguments).Invoke(context); return; } string cmd; if (Arguments.Count == 0) { cmd = ""; } else { cmd = Arguments[0]; Arguments.RemoveAt(0); } string r; switch (cmd.ToLower()) { case "disconnect": r = "/admin disconnect <user>"; break; case "help": case "?": r = string.Join("\r\n", new List <string>() { { "/admin disconnect" }, { "/admin help" }, { "/admin spoofuserflag" }, { "/admin spoofuserflags" }, { "/admin spoofusergame" }, { "" }, }); break; case "moveuser": case "move": new AdminMoveUserCommand(Arguments).Invoke(context); return; case "spoofuserflag": case "spoofuserflags": r = "/admin spoofuserflags <user> <flags>"; break; case "spoofusergame": r = "/admin spoofusergame <user> <game>\r\n" + "(This will preserve their statstring!)"; break; case "spoofusername": r = "/admin spoofusername <oldname> <newname>"; break; case "spoofuserping": r = "/admin spoofuserping <user> <ping>"; break; default: r = "That is not a valid admin command. Type /admin help or /admin ? for more info."; break; } foreach (var kv in context.Environment) { r = r.Replace("{" + kv.Key + "}", kv.Value); } foreach (var line in r.Split("\r\n")) { new ChatEvent(ChatEvent.EventIds.EID_INFO, context.GameState.ChannelFlags, context.GameState.Ping, context.GameState.OnlineName, line).WriteTo(context.GameState.Client); } }
public override void Invoke(ChatCommandContext context) { new ChatEvent(ChatEvent.EventIds.EID_ERROR, context.GameState.ChannelFlags, context.GameState.Ping, context.GameState.OnlineName, Resources.InvalidChatCommand).WriteTo(context.GameState.Client); }
public void CopyMapScript(ChatCommandContext ctx) { }