Пример #1
0
        void CmdPermaDeath(ICoreServerAPI api, CmdArgs args)
        {
            if (args.Length < 2)
            {
                api.Server.LogNotification("Incorrect arguments");
                return;
            }

            IServerPlayerData data = api.PlayerData.GetPlayerDataByLastKnownName(args[0]);

            if (data == null)
            {
                api.Server.LogNotification("Failed to get UID.");
                return;
            }

            string uid = data.PlayerUID;

            //List<string> li = Utils.GetSaveData<List<string>>(api.WorldManager.SaveGame, "cmPermaDeath");
            //li.ForEach(i => api.Server.LogNotification("PermaDeath Item: " + i));

            SetPermaDeath(
                api.WorldManager.SaveGame,
                @uid,
                (args[1] == "true")
                );

            api.Server.LogNotification("Set DominionsPermaDeath from server. ");
        }
Пример #2
0
 public IServerPlayerToJSON(IServerPlayer Player)
 {
     if (Player.ConnectionState >= EnumClientState.Connecting)
     {
         CurrentChunkSentRadius = Player.CurrentChunkSentRadius;
         Role            = Player.Role;
         ServerData      = Player.ServerData;
         Ping            = Player.Ping;
         LanguageCode    = Player.LanguageCode;
         IpAddress       = Player.IpAddress;
         ConnectionState = Player.ConnectionState.ToString();
         Groups          = new PlayerGroupMembership[Player.Groups.Length];
         for (var i = 0; i < Player.Groups.Length; i++)
         {
             Groups[i] = Player.Groups[i];
         }
         SpawnPosition = Player.SpawnPosition;
     }
     else
     {
         CurrentChunkSentRadius = 0;
         Role            = Player.Role;
         ServerData      = Player.ServerData;
         Ping            = 0;
         LanguageCode    = Player.LanguageCode;
         IpAddress       = "";
         ConnectionState = Player.ConnectionState.ToString();
         Groups          = new PlayerGroupMembership[Player.Groups.Length];
         for (var i = 0; i < Player.Groups.Length; i++)
         {
             Groups[i] = Player.Groups[i];
         }
         SpawnPosition = Player.SpawnPosition;
     }
 }
Пример #3
0
        private void onCmd(IServerPlayer player, int groupId, CmdArgs args)
        {
            string subcmd     = args.PopWord();
            string plrgrpname = args.PopWord();
            string flagString = args.PopWord();

            EnumBlockAccessFlags flags = EnumBlockAccessFlags.None;

            if (flagString != null)
            {
                if (flagString.ToLowerInvariant() == "use")
                {
                    flags = EnumBlockAccessFlags.Use;
                }
                if (flagString.ToLowerInvariant() == "all")
                {
                    flags = EnumBlockAccessFlags.BuildOrBreak | EnumBlockAccessFlags.Use;
                }
            }

            if (subcmd == null || plrgrpname == null)
            {
                player.SendMessage(groupId, "Syntax: /bre [grant|revoke|grantgroup|revokegroup] [playername/groupname] [use or all]", EnumChatType.CommandError);
                return;
            }

            ICoreServerAPI    sapi    = api as ICoreServerAPI;
            IServerPlayerData plrData = null;

            if (subcmd == "grant" || subcmd == "revoke")
            {
                plrData = sapi.PlayerData.GetPlayerDataByLastKnownName(plrgrpname);
                if (plrData == null)
                {
                    player.SendMessage(groupId, "No player with such name found or never connected to this server", EnumChatType.CommandError);
                    return;
                }
            }


            switch (subcmd)
            {
            case "grant":
                if (flags == EnumBlockAccessFlags.None)
                {
                    player.SendMessage(groupId, "Invalid or missing access flag. Declare 'use' or 'all'", EnumChatType.CommandError);
                    return;
                }

                SetPlayerPrivilege(player, groupId, plrData.PlayerUID, flags);
                break;

            case "revoke":
                SetPlayerPrivilege(player, groupId, plrData.PlayerUID, EnumBlockAccessFlags.None);
                break;

            case "grantgroup":
                SetGroupPrivilege(player, groupId, plrgrpname, flags);
                break;

            case "revokegroup":
                SetGroupPrivilege(player, groupId, plrgrpname, EnumBlockAccessFlags.None);;
                break;
            }
        }