Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
                }
            }
        }
Exemplo n.º 5
0
        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);
            }
        }
Exemplo n.º 6
0
        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;
            }
        }
Exemplo n.º 7
0
        public void Rules(ChatCommandContext ctx)
        {
            string toAdd = GameModes.GetGameModesInfo();

            if (toAdd.Length > 0)
            {
                ctx.SendLocalMessage(Lang["activatedGameModes"] + "\n" + toAdd);
            }
        }
Exemplo n.º 8
0
 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);
 }
Exemplo n.º 9
0
 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();
     }
 }
Exemplo n.º 10
0
        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);
        }
Exemplo n.º 11
0
 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);
 }
Exemplo n.º 12
0
 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());
     }
 }
Exemplo n.º 13
0
        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);
        }
Exemplo n.º 14
0
 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 }
         });
     }
 }
Exemplo n.º 15
0
        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);
            }
        }
Exemplo n.º 16
0
        // [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);
            }
        }
Exemplo n.º 17
0
        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()));
            }
        }
Exemplo n.º 18
0
        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")]);
        }
Exemplo n.º 19
0
        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"));
        }
Exemplo n.º 20
0
        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);
        }
Exemplo n.º 21
0
 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()));
         }
     }
 }
Exemplo n.º 22
0
        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);
            }
        }
Exemplo n.º 23
0
        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;
        }
Exemplo n.º 24
0
        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);
            }
        }
Exemplo n.º 25
0
        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);
        }
Exemplo n.º 26
0
        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();
                }
            }
        }
Exemplo n.º 27
0
 public override bool CanInvoke(ChatCommandContext context)
 {
     return(context != null && context.GameState != null && context.GameState.ActiveAccount != null);
 }
Exemplo n.º 28
0
        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);
            }
        }
Exemplo n.º 29
0
 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);
 }
Exemplo n.º 30
0
 public void CopyMapScript(ChatCommandContext ctx)
 {
 }