Ignore:
Timestamp:
Apr 18, 2015, 4:27:57 PM (10 years ago)
Author:
alloc
Message:

Binary improvements

Location:
binary-improvements/AllocsCommands
Files:
3 added
8 deleted
10 edited

Legend:

Unmodified
Added
Removed
  • binary-improvements/AllocsCommands/AllocsCommands.csproj

    r224 r230  
    1515    <DebugType>none</DebugType>
    1616    <Optimize>true</Optimize>
    17     <OutputPath>..\bin\Mods\AllocsCommands\</OutputPath>
     17    <OutputPath>..\bin\Mods\Allocs_CommandExtensions\</OutputPath>
    1818    <ErrorReport>prompt</ErrorReport>
    1919    <WarningLevel>4</WarningLevel>
     
    4141  <ItemGroup>
    4242    <Compile Include="AssemblyInfo.cs" />
    43     <Compile Include="Commands\GetGamePrefs.cs" />
    44     <Compile Include="Commands\GetTime.cs" />
    4543    <Compile Include="Commands\Give.cs" />
    46     <Compile Include="Commands\Kill.cs" />
    4744    <Compile Include="Commands\ListItems.cs" />
    4845    <Compile Include="Commands\ListKnownPlayers.cs" />
    4946    <Compile Include="Commands\ListLandProtection.cs" />
    50     <Compile Include="Commands\ListPlayerIds.cs" />
    51     <Compile Include="Commands\PrivateMassageConnections.cs" />
    5247    <Compile Include="Commands\RemoveLandProtection.cs" />
    5348    <Compile Include="Commands\Reply.cs" />
    5449    <Compile Include="Commands\SayToPlayer.cs" />
    55     <Compile Include="Commands\SetTimeReal.cs" />
    5650    <Compile Include="Commands\ShowInventory.cs" />
    5751    <Compile Include="Commands\TeleportPlayer.cs" />
    58     <Compile Include="Commands\Unban.cs" />
    59     <Compile Include="API.cs" />
     52    <Compile Include="PrivateMassageConnections.cs" />
     53    <Compile Include="Chat.cs" />
    6054  </ItemGroup>
    6155  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
     
    7064    <Folder Include="Commands\" />
    7165  </ItemGroup>
     66  <ItemGroup>
     67    <None Include="ModInfo.xml">
     68      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     69    </None>
     70  </ItemGroup>
    7271</Project>
  • binary-improvements/AllocsCommands/Commands/Give.cs

    r224 r230  
    55namespace AllocsFixes.CustomCommands
    66{
    7         public class Give : ConsoleCommand
     7        public class Give : ConsoleCmdAbstract
    88        {
    9                 public Give (ConsoleSdtd cons) : base(cons)
    10                 {
    11                 }
    12 
    13                 public override string Description ()
     9                public override string GetDescription ()
    1410                {
    1511                        return "give an item to a player (entity id or name)";
    1612                }
    1713
    18                 public override string[] Names ()
     14                public override string[] GetCommands ()
    1915                {
    2016                        return new string[] { "give", string.Empty };
    2117                }
    2218
    23                 public override void Run (string[] _params)
     19                public override void Execute (List<string> _params, CommandSenderInfo _senderInfo)
    2420                {
    2521                        try {
    26                                 if (_params.Length != 3) {
    27                                         m_Console.SendResult ("Usage: give <playername|entityid> <itemname> <amount>");
     22                                if (_params.Count != 3) {
     23                                        SdtdConsole.Instance.Output ("Usage: give <playername|entityid> <itemname> <amount>");
    2824                                        return;
    2925                                }
    3026
    31                                 ClientInfo ci = CommonMappingFunctions.GetClientInfoFromNameOrID (_params [0], false);
     27                                ClientInfo ci = ConsoleHelper.ParseParamIdOrName (_params [0]);
    3228
    3329                                if (ci == null) {
    34                                         m_Console.SendResult ("Playername or entity id not found.");
     30                                        SdtdConsole.Instance.Output ("Playername or entity id not found.");
    3531                                        return;
    3632                                }
    3733
    38                                 ItemValue iv = ItemList.Instance.GetItemValue(_params[1]);
     34                                ItemValue iv = ItemList.Instance.GetItemValue (_params[1]);
    3935                                if (iv == null) {
    40                                         m_Console.SendResult ("Item not found.");
     36                                        SdtdConsole.Instance.Output ("Item not found.");
    4137                                        return;
    4238                                }
     
    4440                                int n = int.MinValue;
    4541                                if (!int.TryParse (_params [2], out n) || n <= 0) {
    46                                         m_Console.SendResult ("Amount is not an integer or not greater than zero.");
     42                                        SdtdConsole.Instance.Output ("Amount is not an integer or not greater than zero.");
    4743                                        return;
    4844                                }
    4945
    50                                 EntityPlayer p = CommonMappingFunctions.GetEntityPlayer (ci);
     46                                EntityPlayer p = GameManager.Instance.World.Players.dict [ci.entityId];
    5147
    5248                                InventoryField invField = new InventoryField (iv, n);
    5349
    54                                 CommonMappingFunctions.GetGameManager ().ItemDropServer (invField, p.GetPosition (), Vector3.zero, -1, 50);
     50                                GameManager.Instance.ItemDropServer (invField, p.GetPosition (), Vector3.zero, -1, 50);
    5551
    56                                 m_Console.SendResult ("Dropped item");
     52                                SdtdConsole.Instance.Output ("Dropped item");
    5753                        } catch (Exception e) {
    5854                                Log.Out ("Error in Give.Run: " + e);
  • binary-improvements/AllocsCommands/Commands/ListItems.cs

    r224 r230  
    44namespace AllocsFixes.CustomCommands
    55{
    6         public class ListItems : ConsoleCommand
     6        public class ListItems : ConsoleCmdAbstract
    77        {
    8                 public ListItems (ConsoleSdtd cons) : base(cons)
    9                 {
    10                 }
    11 
    12                 public override string Description ()
     8                public override string GetDescription ()
    139                {
    1410                        return "lists all items that contain the given substring";
    1511                }
    1612
    17                 public override string[] Names ()
     13                public override string[] GetCommands ()
    1814                {
    1915                        return new string[] { "listitems", "li" };
    2016                }
    2117
    22                 public override void Run (string[] _params)
     18                public override void Execute (List<string> _params, CommandSenderInfo _senderInfo)
    2319                {
    2420                        try {
    25                                 if (_params.Length != 1 || _params [0].Length == 0) {
    26                                         m_Console.SendResult ("Usage: listitems <searchString>");
     21                                if (_params.Count != 1 || _params [0].Length == 0) {
     22                                        SdtdConsole.Instance.Output ("Usage: listitems <searchString>");
    2723                                        return;
    2824                                }
     
    3127                                foreach (string s in ItemList.Instance.ItemNames) {
    3228                                        if (s.ToLower ().Contains (_params [0].ToLower ())) {
    33                                                 m_Console.SendResult ("    " + s);
     29                                                SdtdConsole.Instance.Output ("    " + s);
    3430                                                n++;
    3531                                        }
    3632                                }
    3733
    38                                 m_Console.SendResult ("Listed " + n + " matching items.");
     34                                SdtdConsole.Instance.Output ("Listed " + n + " matching items.");
    3935                        } catch (Exception e) {
    4036                                Log.Out ("Error in ListItems.Run: " + e);
  • binary-improvements/AllocsCommands/Commands/ListKnownPlayers.cs

    r224 r230  
    55namespace AllocsFixes.CustomCommands
    66{
    7         public class ListKnownPlayers : ConsoleCommand
     7        public class ListKnownPlayers : ConsoleCmdAbstract
    88        {
    9                 public ListKnownPlayers (ConsoleSdtd cons) : base(cons)
    10                 {
    11                 }
    12 
    13                 public override string Description ()
     9                public override string GetDescription ()
    1410                {
    1511                        return "lists all players that were ever online (optionally filtered)";
    1612                }
    1713
    18                 public override string[] Names ()
     14                public override string[] GetCommands ()
    1915                {
    2016                        return new string[] { "listknownplayers", "lkp" };
    2117                }
    2218
    23                 public override void Run (string[] _params)
     19                public override void Execute (List<string> _params, CommandSenderInfo _senderInfo)
    2420                {
    2521                        try {
    26                                 AdminTools admTools = CommonMappingFunctions.GetGameManager ().adminTools;
     22                                AdminTools admTools = GameManager.Instance.adminTools;
    2723
    2824                                bool onlineOnly = false;
     
    3026                                string nameFilter = string.Empty;
    3127
    32                                 if (_params.Length == 1) {
     28                                if (_params.Count == 1) {
    3329                                        if (_params [0].ToLower ().Equals ("-online")) {
    3430                                                onlineOnly = true;
     
    4945                                                && (nameFilter.Length == 0 || p.Name.ToLower ().Contains (nameFilter))
    5046                                        ) {
    51                                                 m_Console.SendResult (String.Format ("{0}. {1}, id={2}, steamid={3}, online={4}, ip={5}, playtime={6} m, seen={7}",
     47                                                SdtdConsole.Instance.Output (String.Format ("{0}. {1}, id={2}, steamid={3}, online={4}, ip={5}, playtime={6} m, seen={7}",
    5248                                                                                    ++num, p.Name, p.EntityID, sid, p.IsOnline, p.IP,
    5349                                                                                    p.TotalPlayTime / 60,
     
    5652                                        }
    5753                                }
    58                                 m_Console.SendResult ("Total of " + PersistentContainer.Instance.Players.Count + " known");
     54                                SdtdConsole.Instance.Output ("Total of " + PersistentContainer.Instance.Players.Count + " known");
    5955                        } catch (Exception e) {
    6056                                Log.Out ("Error in ListKnownPlayers.Run: " + e);
  • binary-improvements/AllocsCommands/Commands/ListLandProtection.cs

    r224 r230  
    44namespace AllocsFixes.CustomCommands
    55{
    6         public class ListLandProtection : ConsoleCommand
     6        public class ListLandProtection : ConsoleCmdAbstract
    77        {
    8                 public ListLandProtection (ConsoleSdtd cons) : base(cons)
    9                 {
    10                 }
    11 
    12                 public override string Description ()
     8                public override string GetDescription ()
    139                {
    1410                        return "lists all land protection blocks and owners";
    1511                }
    1612
    17                 public override string[] Names ()
     13                public override string[] GetCommands ()
    1814                {
    1915                        return new string[] { "listlandprotection", "llp" };
    2016                }
    2117
    22                 public override void ExecuteRemote (string _sender, string[] _params)
     18                public override void Execute (List<string> _params, CommandSenderInfo _senderInfo)
    2319                {
    2420                        try {
    25                                 if (_params.Length >= 1 && _params [0].ToLower ().Equals ("nearby")) {
    26                                         string[] params2 = new string[_params.Length + 1];
    27                                         for (int i = 0; i < _params.Length; i++)
    28                                                 params2 [i] = _params [i];
    29                                         params2 [_params.Length] = _sender;
    30                                         _params = params2;
     21                                if (_senderInfo.RemoteClientInfo != null) {
     22                                        if (_params.Count >= 1 && _params [0].ToLower ().Equals ("nearby")) {
     23                                                _params.Add (_senderInfo.RemoteClientInfo.playerId);
     24                                        }
    3125                                }
    32                                 Run (_params);
    33                         } catch (Exception e) {
    34                                 Log.Out ("Error in ListLandProtection.ExecuteRemote: " + e);
    35                         }
    36                 }
    3726
    38                 public override void Run (string[] _params)
    39                 {
    40                         try {
    41                                 World w = CommonMappingFunctions.GetGameManager ().World;
    42                                 PersistentPlayerList ppl = CommonMappingFunctions.GetGameManager ().GetPersistentPlayerList ();
     27                                World w = GameManager.Instance.World;
     28                                PersistentPlayerList ppl = GameManager.Instance.GetPersistentPlayerList ();
    4329
    4430                                bool summaryOnly = false;
     
    4834                                int closeToDistance = 32;
    4935
    50                                 if (_params.Length == 1) {
     36                                if (_params.Count == 1) {
    5137                                        long tempLong;
    5238
     
    5642                                                steamIdFilter = _params [0];
    5743                                        } else {
    58                                                 ClientInfo ci = CommonMappingFunctions.GetClientInfoFromNameOrID (_params [0], true);
     44                                                ClientInfo ci = ConsoleHelper.ParseParamIdOrName (_params [0]);
    5945                                                if (ci != null) {
    60                                                         steamIdFilter = CommonMappingFunctions.GetSteamID (ci);
     46                                                        steamIdFilter = ci.playerId;
    6147                                                } else {
    62                                                         m_Console.SendResult ("Player name or entity id \"" + _params [0] + "\" not found.");
     48                                                        SdtdConsole.Instance.Output ("Player name or entity id \"" + _params [0] + "\" not found.");
    6349                                                        return;
    6450                                                }
    6551                                        }
    66                                 } else if (_params.Length >= 2) {
     52                                } else if (_params.Count >= 2) {
    6753                                        if (_params [0].ToLower ().Equals ("nearby")) {
    6854                                                try {
    69                                                         if (_params.Length == 3) {
     55                                                        if (_params.Count == 3) {
    7056                                                                if (!int.TryParse (_params[1], out closeToDistance)) {
    71                                                                         m_Console.SendResult ("Given radius is not an integer!");
     57                                                                        SdtdConsole.Instance.Output ("Given radius is not an integer!");
    7258                                                                }
    7359                                                        }
    74                                                         ClientInfo ci = CommonMappingFunctions.GetClientInfoFromSteamID (_params [_params.Length - 1]);
    75                                                         EntityPlayer ep = CommonMappingFunctions.GetEntityPlayer (ci);
     60                                                        ClientInfo ci = ConsoleHelper.ParseParamSteamIdOnline (_params [_params.Count - 1]);
     61                                                        EntityPlayer ep = w.Players.dict [ci.entityId];
    7662                                                        closeTo = new Vector3i (ep.GetPosition ());
    7763                                                        onlyCloseToPlayer = true;
    7864                                                } catch (Exception e) {
    79                                                         m_Console.SendResult ("Error getting current player's position");
     65                                                        SdtdConsole.Instance.Output ("Error getting current player's position");
    8066                                                        Log.Out ("Error in ListLandProtection.Run: " + e);
    8167                                                }
    8268                                        } else {
    83                                                 m_Console.SendResult ("Illegal parameter list");
     69                                                SdtdConsole.Instance.Output ("Illegal parameter list");
    8470                                                return;
    8571                                        }
     
    10389                                                        name += " (" + kvp.Key.PlayerId + ")";
    10490
    105                                                         m_Console.SendResult (String.Format ("Player \"{0}\" owns {3} keystones (protected: {1}, current hardness multiplier: {2})", name, w.LandClaimIsActive (kvp.Key), w.LandClaimPower (kvp.Key), kvp.Value.Count));
     91                                                        SdtdConsole.Instance.Output (String.Format ("Player \"{0}\" owns {3} keystones (protected: {1}, current hardness multiplier: {2})", name, w.LandClaimIsActive (kvp.Key), w.LandClaimPower (kvp.Key), kvp.Value.Count));
    10692                                                        if (!summaryOnly) {
    10793                                                                foreach (Vector3i v in kvp.Value) {
    108                                                                         m_Console.SendResult ("   (" + v.ToString () + ")");
     94                                                                        SdtdConsole.Instance.Output ("   (" + v.ToString () + ")");
    10995                                                                }
    11096                                                        }
     
    114100
    115101                                if (steamIdFilter.Length == 0)
    116                                         m_Console.SendResult ("Total of " + d.Count + " keystones in the game");
     102                                        SdtdConsole.Instance.Output ("Total of " + d.Count + " keystones in the game");
    117103                        } catch (Exception e) {
    118104                                Log.Out ("Error in ListLandProtection.Run: " + e);
  • binary-improvements/AllocsCommands/Commands/RemoveLandProtection.cs

    r224 r230  
    44namespace AllocsFixes.CustomCommands
    55{
    6         public class RemoveLandProtection : ConsoleCommand
     6        public class RemoveLandProtection : ConsoleCmdAbstract
    77        {
    8                 public RemoveLandProtection (ConsoleSdtd cons) : base(cons)
    9                 {
    10                 }
    11 
    12                 public override string Description ()
     8                public override string GetDescription ()
    139                {
    1410                        return "removes the association of a land protection block to the owner";
    1511                }
    1612
    17                 public override string[] Names ()
     13                public override string[] GetCommands ()
    1814                {
    1915                        return new string[] { "removelandprotection", "rlp" };
     
    2319                {
    2420                        try {
    25                                 PersistentPlayerList ppl = CommonMappingFunctions.GetGameManager ().GetPersistentPlayerList ();
     21                                PersistentPlayerList ppl = GameManager.Instance.GetPersistentPlayerList ();
    2622
    2723                                if (_id.Length < 1 || !ppl.Players.ContainsKey (_id)) {
    28                                         m_Console.SendResult ("Not a valid Steam ID or user has never logged on. Use \"listlandprotection\" to get a list of keystones.");
     24                                        SdtdConsole.Instance.Output ("Not a valid Steam ID or user has never logged on. Use \"listlandprotection\" to get a list of keystones.");
    2925                                        return;
    3026                                }
    3127                                if (ppl.Players [_id].LPBlocks == null || ppl.Players [_id].LPBlocks.Count == 0) {
    32                                         m_Console.SendResult ("Player does not own any keystones. Use \"listlandprotection\" to get a list of keystones.");
     28                                        SdtdConsole.Instance.Output ("Player does not own any keystones. Use \"listlandprotection\" to get a list of keystones.");
    3329                                        return;
    3430                                }
     
    3935                                        changes.Add (bci);
    4036                                }
    41                                 CommonMappingFunctions.GetGameManager ().SetBlocksRPC (changes);
     37                                GameManager.Instance.SetBlocksRPC (changes);
    4238
    43                                 m_Console.SendResult ("Tried to remove #" + changes.Count + " land protection blocks for player \"" + _id + "\". Note "+
     39                                SdtdConsole.Instance.Output ("Tried to remove #" + changes.Count + " land protection blocks for player \"" + _id + "\". Note "+
    4440                                                      "that only blocks in chunks that are currently loaded (close to any player) could be removed. "+
    4541                                                      "Please check for remaining blocks by running:");
    46                                 m_Console.SendResult("  listlandprotection " + _id);
     42                                SdtdConsole.Instance.Output("  listlandprotection " + _id);
    4743                        } catch (Exception e) {
    4844                                Log.Out ("Error in RemoveLandProtection.removeById: " + e);
     
    5046                }
    5147
    52                 private void removeByPosition (string[] _coords)
     48                private void removeByPosition (List<string> _coords)
    5349                {
    5450                        try {
     
    6157
    6258                                if (x == int.MinValue || y == int.MinValue || z == int.MinValue) {
    63                                         m_Console.SendResult ("At least one of the given coordinates is not a valid integer");
     59                                        SdtdConsole.Instance.Output ("At least one of the given coordinates is not a valid integer");
    6460                                        return;
    6561                                }
     
    6763                                Vector3i v = new Vector3i (x, y, z);
    6864
    69                                 PersistentPlayerList ppl = CommonMappingFunctions.GetGameManager ().GetPersistentPlayerList ();
     65                                PersistentPlayerList ppl = GameManager.Instance.GetPersistentPlayerList ();
    7066
    7167                                Dictionary<Vector3i, PersistentPlayerData> d = ppl.positionToLPBlockOwner;
    7268                                if (d == null || !d.ContainsKey (v)) {
    73                                         m_Console.SendResult ("No land protection block at the given position or not a valid position. Use \"listlandprotection\" to get a list of keystones.");
     69                                        SdtdConsole.Instance.Output ("No land protection block at the given position or not a valid position. Use \"listlandprotection\" to get a list of keystones.");
    7470                                        return;
    7571                                }
     
    8076                                changes.Add (bci);
    8177
    82                                 CommonMappingFunctions.GetGameManager ().SetBlocksRPC (changes);
     78                                GameManager.Instance.SetBlocksRPC (changes);
    8379
    84                                 m_Console.SendResult ("Land protection block at (" + v.ToString () + ") removed");
     80                                SdtdConsole.Instance.Output ("Land protection block at (" + v.ToString () + ") removed");
    8581                        } catch (Exception e) {
    8682                                Log.Out ("Error in RemoveLandProtection.removeByPosition: " + e);
     
    8884                }
    8985
    90                 public override void Run (string[] _params)
     86                public override void Execute (List<string> _params, CommandSenderInfo _senderInfo)
    9187                {
    9288                        try {
    93                                 if (_params.Length == 1) {
     89                                if (_params.Count == 1) {
    9490                                        removeById (_params [0]);
    95                                 } else if (_params.Length == 3) {
     91                                } else if (_params.Count == 3) {
    9692                                        removeByPosition (_params);
    9793                                } else {
    98                                         m_Console.SendResult ("Usage: removelandprotection <x> <y> <z>  OR  removelandprotection <steamid>");
     94                                        SdtdConsole.Instance.Output ("Usage: removelandprotection <x> <y> <z>  OR  removelandprotection <steamid>");
    9995                                }
    10096                        } catch (Exception e) {
  • binary-improvements/AllocsCommands/Commands/Reply.cs

    r224 r230  
    44namespace AllocsFixes.CustomCommands
    55{
    6         public class Reply : ConsoleCommand
     6        public class Reply : ConsoleCmdAbstract
    77        {
    8                 public Reply (ConsoleSdtd cons) : base(cons)
    9                 {
    10                 }
    11 
    12                 public override string Description ()
     8                public override string GetDescription ()
    139                {
    1410                        return "send a message to  the player who last sent you a PM";
    1511                }
    1612
    17                 public override string[] Names ()
     13                public override string[] GetCommands ()
    1814                {
    1915                        return new string[] { "reply", "re" };
    2016                }
    2117
    22                 private void SendMessage (ClientInfo _receiver, ClientInfo _sender, string _message)
     18                private void RunInternal (ClientInfo _sender, List<string> _params)
    2319                {
    24                         PrivateMassageConnections.SetLastPMSender (_sender, _receiver);
    25                         string senderName = CommonMappingFunctions.GetPlayerName (_sender);
    26 
    27                         _receiver.netConnection [0].AddToSendQueue (new NetPackage_GameInfoMessage (_message, senderName + " (PM)"));
    28                         string receiverName = CommonMappingFunctions.GetPlayerName (_receiver);
    29                         m_Console.SendResult ("Message to player " + (receiverName != null ? "\"" + receiverName + "\"" : "unknownName") + " sent with sender \"" + senderName + "\"");
    30                 }
    31 
    32                 private void RunInternal (ClientInfo _sender, string[] _params)
    33                 {
    34                         if (_params.Length < 1) {
    35                                 m_Console.SendResult ("Usage: reply <message>");
     20                        if (_params.Count < 1) {
     21                                SdtdConsole.Instance.Output ("Usage: reply <message>");
    3622                                return;
    3723                        }
    3824
    3925                        string message = _params [0];
    40                         for (int i = 1; i < _params.Length; i++) {
    41                                 message += " " + _params [i];
    42                         }
    4326
    4427                        ClientInfo receiver = PrivateMassageConnections.GetLastPMSenderForPlayer (_sender);
    45                         if (receiver != null && CommonMappingFunctions.GetClientID (receiver) >= 0) {
    46                                 SendMessage (receiver, _sender, message);
     28                        if (receiver != null && receiver.clientId >= 0) {
     29                                Chat.SendMessage (receiver, _sender, message);
    4730                        } else {
    4831                                if (receiver != null) {
    49                                         m_Console.SendResult ("The sender of the PM you last received is currently not online.");
     32                                        SdtdConsole.Instance.Output ("The sender of the PM you last received is currently not online.");
    5033                                } else {
    51                                         m_Console.SendResult ("You have not received a PM so far.");
     34                                        SdtdConsole.Instance.Output ("You have not received a PM so far.");
    5235                                }
    5336                        }
    5437                }
    5538
    56                 public override void ExecuteRemote (string _sender, string[] _params)
    57                 {
    58                         try {
    59                                 m_Console.SendResult (string.Format ("{0} executing remote command '{1}' {2}", _sender, this.Names () [0], string.Join (" ", _params)));
    60                                 ClientInfo ci = CommonMappingFunctions.GetClientInfoFromSteamID (_sender);
    61                                 RunInternal (ci, _params);
    62                         } catch (Exception e) {
    63                                 Log.Out ("Error in Reply.ExecuteRemote: " + e);
     39                public override void Execute (List<string> _params, CommandSenderInfo _senderInfo) {
     40                        if (_senderInfo.RemoteClientInfo == null) {
     41                                Log.Out ("Command \"reply\" can only be used on clients!");
     42                        } else {
     43                                RunInternal (_senderInfo.RemoteClientInfo, _params);
    6444                        }
    65                 }
    66 
    67                 public override void Run (string[] _params)
    68                 {
    69                         Log.Out ("Command \"reply\" can only be used on clients!");
    7045                }
    7146        }
  • binary-improvements/AllocsCommands/Commands/SayToPlayer.cs

    r224 r230  
    44namespace AllocsFixes.CustomCommands
    55{
    6         public class SayToPlayer : ConsoleCommand
     6        public class SayToPlayer : ConsoleCmdAbstract
    77        {
    8                 public SayToPlayer (ConsoleSdtd cons) : base(cons)
    9                 {
    10                 }
    11 
    12                 public override string Description ()
     8                public override string GetDescription ()
    139                {
    1410                        return "send a message to a single player";
    1511                }
    1612
    17                 public override string[] Names ()
     13                public override string[] GetCommands ()
    1814                {
    1915                        return new string[] { "sayplayer", "pm" };
    2016                }
    2117
    22                 private void SendMessage (ClientInfo _receiver, ClientInfo _sender, string _message)
     18                private void RunInternal (ClientInfo _sender, List<string> _params)
    2319                {
    24                         string senderName;
    25                         if (_sender != null) {
    26                                 PrivateMassageConnections.SetLastPMSender (_sender, _receiver);
    27                                 senderName = CommonMappingFunctions.GetPlayerName (_sender);
    28                         } else {
    29                                 senderName = "Server";
    30                         }
    31                         ConnectionManager.Instance.SendPackage (new NetPackage_GameInfoMessage (_message, senderName + " (PM)"), new PackageDestinationSingleEntityID (_receiver.entityId));
    32                         string receiverName = CommonMappingFunctions.GetPlayerName (_receiver);
    33                         m_Console.SendResult ("Message to player " + (receiverName != null ? "\"" + receiverName + "\"" : "unknownName") + " sent with sender \"" + senderName + "\"");
    34                 }
    35 
    36                 private void RunInternal (ClientInfo _sender, string[] _params)
    37                 {
    38                         if (_params.Length < 2) {
    39                                 m_Console.SendResult ("Usage: sayplayer <playername|entityid> <message>");
     20                        if (_params.Count < 2) {
     21                                SdtdConsole.Instance.Output ("Usage: sayplayer <playername|entityid> <message>");
    4022                                return;
    4123                        }
    4224
    4325                        string message = _params [1];
    44                         for (int i = 2; i < _params.Length; i++) {
    45                                 message += " " + _params [i];
    46                         }
    4726
    48                         ClientInfo receiver = CommonMappingFunctions.GetClientInfoFromNameOrID (_params [0], true);
     27                        ClientInfo receiver = ConsoleHelper.ParseParamIdOrName (_params [0]);
    4928                        if (receiver != null) {
    50                                 SendMessage (receiver, _sender, message);
     29                                Chat.SendMessage (receiver, _sender, message);
    5130                        } else {
    52                                 m_Console.SendResult ("Playername or entity ID not found.");
     31                                SdtdConsole.Instance.Output ("Playername or entity ID not found.");
    5332                        }
    5433                }
    5534
    56                 public override void ExecuteRemote (string _sender, string[] _params)
     35                public override void Execute (List<string> _params, CommandSenderInfo _senderInfo)
    5736                {
    5837                        try {
    59                                 this.m_Console.SendResult (string.Format ("{0} executing remote command '{1}' {2}", _sender, this.Names () [0], string.Join (" ", _params)));
    60                                 ClientInfo ci = CommonMappingFunctions.GetClientInfoFromSteamID (_sender);
    61                                 RunInternal (ci, _params);
    62                         } catch (Exception e) {
    63                                 Log.Out ("Error in SayToPlayer.ExecuteRemote: " + e);
    64                         }
    65                 }
    66 
    67                 public override void Run (string[] _params)
    68                 {
    69                         try {
    70                                 RunInternal (null, _params);
     38                                if (_senderInfo.RemoteClientInfo != null) {
     39                                        RunInternal (_senderInfo.RemoteClientInfo, _params);
     40                                } else {
     41                                        RunInternal (null, _params);
     42                                }
    7143                        } catch (Exception e) {
    7244                                Log.Out ("Error in SayToPlayer.Run: " + e);
  • binary-improvements/AllocsCommands/Commands/ShowInventory.cs

    r224 r230  
    55namespace AllocsFixes.CustomCommands
    66{
    7         public class ShowInventory : ConsoleCommand
     7        public class ShowInventory : ConsoleCmdAbstract
    88        {
    9                 public ShowInventory (ConsoleSdtd cons) : base(cons)
    10                 {
    11                 }
    12 
    13                 public override string Description ()
     9                public override string GetDescription ()
    1410                {
    1511                        return "list inventory of a given player (steam id, entity id or name)";
    1612                }
    1713
    18                 public override string[] Names ()
     14                public override string[] GetCommands ()
    1915                {
    2016                        return new string[] { "showinventory", "si" };
    2117                }
    2218
    23                 public override void Run (string[] _params)
     19                public override void Execute (List<string> _params, CommandSenderInfo _senderInfo)
    2420                {
    2521                        try {
    26                                 if (_params.Length < 1) {
    27                                         m_Console.SendResult ("Usage: showinventory <steamid|playername|entityid>");
     22                                if (_params.Count < 1) {
     23                                        SdtdConsole.Instance.Output ("Usage: showinventory <steamid|playername|entityid>");
    2824                                        return;
    2925                                }
     
    3127                                string steamid = PersistentContainer.Instance.Players.GetSteamID (_params [0], true);
    3228                                if (steamid == null) {
    33                                         m_Console.SendResult ("Playername or entity/steamid id not found or no inventory saved (first saved after a player has been online for 30s).");
     29                                        SdtdConsole.Instance.Output ("Playername or entity/steamid id not found or no inventory saved (first saved after a player has been online for 30s).");
    3430                                        return;
    3531                                }
     
    3834                                PersistentData.Inventory inv = p.Inventory;
    3935
    40                                 m_Console.SendResult ("Belt of player " + p.Name + ":");
     36                                SdtdConsole.Instance.Output ("Belt of player " + p.Name + ":");
    4137                                for (int i = 0; i < inv.belt.Count; i++) {
    4238                                        if (inv.belt [i] != null)
    43                                                 m_Console.SendResult (string.Format ("    Slot {0}: {1:000} * {2}", i, inv.belt [i].count, inv.belt [i].itemName));
     39                                                SdtdConsole.Instance.Output (string.Format ("    Slot {0}: {1:000} * {2}", i, inv.belt [i].count, inv.belt [i].itemName));
    4440                                }
    45                                 m_Console.SendResult (string.Empty);
    46                                 m_Console.SendResult ("Bagpack of player " + p.Name + ":");
     41                                SdtdConsole.Instance.Output (string.Empty);
     42                                SdtdConsole.Instance.Output ("Bagpack of player " + p.Name + ":");
    4743                                for (int i = 0; i < inv.bag.Count; i++) {
    4844                                        if (inv.bag [i] != null)
    49                                                 m_Console.SendResult (string.Format ("    Slot {0}: {1:000} * {2}", i, inv.bag [i].count, inv.bag [i].itemName));
     45                                                SdtdConsole.Instance.Output (string.Format ("    Slot {0}: {1:000} * {2}", i, inv.bag [i].count, inv.bag [i].itemName));
    5046                                }
    51                                 m_Console.SendResult (string.Empty);
     47                                SdtdConsole.Instance.Output (string.Empty);
    5248                        } catch (Exception e) {
    5349                                Log.Out ("Error in ShowInventory.Run: " + e);
  • binary-improvements/AllocsCommands/Commands/TeleportPlayer.cs

    r228 r230  
    1 using AllocsFixes.PersistentData;
    21using System;
    32using System.Collections.Generic;
     
    65namespace AllocsFixes.CustomCommands
    76{
    8         public class TeleportPlayer : ConsoleCommand
     7        public class TeleportPlayer : ConsoleCmdAbstract
    98        {
    10                 public TeleportPlayer (ConsoleSdtd cons) : base(cons)
    11                 {
    12                 }
    13 
    14                 public override string Description ()
     9                public override string GetDescription ()
    1510                {
    1611                        return "teleport a player to a given location";
    1712                }
    1813
    19                 public override string[] Names ()
     14                public override string[] GetCommands ()
    2015                {
    2116                        return new string[] { "teleportplayer", "tele" };
    2217                }
    2318
    24                 public override void Run (string[] _params)
     19                public override void Execute (List<string> _params, CommandSenderInfo _senderInfo)
    2520                {
    2621                        try {
    27                                 if (_params.Length != 4 && _params.Length != 2) {
    28                                         m_Console.SendResult ("Usage: teleportplayer <entityid|playername|steamid> <x> <y> <z>");
    29                                         m_Console.SendResult ("   or: teleportplayer <entityid|playername|steamid> <target entityid|playername|steamid>");
     22                                if (_params.Count != 4 && _params.Count != 2) {
     23                                        SdtdConsole.Instance.Output ("Usage: teleportplayer <entityid|playername|steamid> <x> <y> <z>");
     24                                        SdtdConsole.Instance.Output ("   or: teleportplayer <entityid|playername|steamid> <target entityid|playername|steamid>");
    3025                                } else {
    31                                         Player p1 = PersistentContainer.Instance.Players.GetPlayerByNameOrId (_params [0], true);
    32                                         if (p1 == null) {
    33                                                 m_Console.SendResult ("Playername or entity/steamid id not found.");
     26                                        ClientInfo ci1 = ConsoleHelper.ParseParamIdOrName (_params [0]);
     27                                        if (ci1 == null) {
     28                                                SdtdConsole.Instance.Output ("Playername or entity/steamid id not found.");
    3429                                                return;
    3530                                        }
    36                                         if (!p1.IsOnline) {
    37                                                 m_Console.SendResult ("Player not online.");
    38                                                 return;
    39                                         }
     31                                        EntityPlayer ep1 = GameManager.Instance.World.Players.dict [ci1.entityId];
    4032
    41                                         if (_params.Length == 4) {
     33                                        if (_params.Count == 4) {
    4234                                                int x = int.MinValue;
    4335                                                int y = int.MinValue;
     
    4941
    5042                                                if (x == int.MinValue || y == int.MinValue || z == int.MinValue) {
    51                                                         m_Console.SendResult ("At least one of the given coordinates is not a valid integer");
     43                                                        SdtdConsole.Instance.Output ("At least one of the given coordinates is not a valid integer");
    5244                                                        return;
    5345                                                }
    5446
    55                                                 p1.Entity.position.x = x;
    56                                                 p1.Entity.position.y = y;
    57                                                 p1.Entity.position.z = z;
     47                                                ep1.position.x = x;
     48                                                ep1.position.y = y;
     49                                                ep1.position.z = z;
    5850                                        } else {
    59                                                 Player p2 = PersistentContainer.Instance.Players.GetPlayerByNameOrId (_params [1], true);
    60                                                 if (p2 == null) {
    61                                                         m_Console.SendResult ("Target playername or entity/steamid id not found.");
     51                                                ClientInfo ci2 = ConsoleHelper.ParseParamIdOrName (_params [1]);
     52                                                if (ci2 == null) {
     53                                                        SdtdConsole.Instance.Output ("Target playername or entity/steamid id not found.");
    6254                                                        return;
    6355                                                }
    64                                                 if (!p2.IsOnline) {
    65                                                         m_Console.SendResult ("Target player not online.");
    66                                                         return;
    67                                                 }
     56                                                EntityPlayer ep2 = GameManager.Instance.World.Players.dict [ci2.entityId];
    6857
    69                                                 p1.Entity.position = p2.Entity.GetPosition();
    70                                                 p1.Entity.position.y += 1;
    71                                                 p1.Entity.position.z += 1;
     58                                                ep1.position = ep2.GetPosition();
     59                                                ep1.position.y += 1;
     60                                                ep1.position.z += 1;
    7261                                        }
    7362
    74                                         NetPackage_EntityTeleport pkg = new NetPackage_EntityTeleport (p1.Entity);
     63                                        NetPackage_EntityTeleport pkg = new NetPackage_EntityTeleport (ep1);
    7564
    76                                         ConnectionManager.Instance.SendPackage (pkg, new PackageDestinationSingleEntityID (p1.ClientInfo.entityId));
     65                                        ci1.netConnection [0].AddToSendQueue (pkg);
    7766                                }
    7867                        } catch (Exception e) {
Note: See TracChangeset for help on using the changeset viewer.