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. "); }
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; } }
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; } }