Changeset 93


Ignore:
Timestamp:
Jul 20, 2014, 8:50:13 PM (10 years ago)
Author:
alloc
Message:

fixes

Location:
binary-improvements
Files:
2 added
8 edited

Legend:

Unmodified
Added
Removed
  • binary-improvements/7dtd-server-fixes/7dtd-server-fixes.csproj

    r84 r93  
    4848    <Compile Include="src\TelnetCommands\SetTimeReal.cs" />
    4949    <Compile Include="src\AdminToolsStuff.cs" />
     50    <Compile Include="src\TelnetCommands\ShowInventory.cs" />
     51    <Compile Include="src\PlayerDataStuff.cs" />
    5052  </ItemGroup>
    5153  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
  • binary-improvements/7dtd-server-fixes/7dtd-server-fixes.userprefs

    r91 r93  
    44    <Files>
    55      <File FileName="src/AssemblyInfo.cs" Line="20" Column="40" />
    6       <File FileName="src/AllocsNetTelnetServer.cs" Line="33" Column="1" />
     6      <File FileName="src/AllocsNetTelnetServer.cs" Line="93" Column="50" />
    77      <File FileName="src/AllocsTelnetConnection.cs" Line="44" Column="42" />
    88      <File FileName="src/AllocsLogFunctions.cs" Line="27" Column="42" />
    9       <File FileName="src/TelnetCommands/GetGamePrefs.cs" Line="71" Column="3" />
    10       <File FileName="src/TelnetCommands/ListPlayersExtended.cs" Line="49" Column="17" />
     9      <File FileName="src/TelnetCommands/GetGamePrefs.cs" Line="77" Column="1" />
     10      <File FileName="src/TelnetCommands/ListPlayersExtended.cs" Line="64" Column="31" />
    1111      <File FileName="src/TelnetCommands/SayToPlayer.cs" Line="75" Column="33" />
    1212      <File FileName="src/AdminToolsStuff.cs" Line="30" Column="54" />
  • binary-improvements/7dtd-server-fixes/src/AllocsNetTelnetServer.cs

    r91 r93  
    1414        private static bool closed = false;
    1515        private static bool authEnabled = false;
    16         private static List<AllocsTelnetConnection> conns = new List<AllocsTelnetConnection> ();
     16        private static List<AllocsTelnetConnection> connections = new List<AllocsTelnetConnection> ();
    1717
    1818        public static void init (int port)
     
    3838                                if (listener.Pending ()) {
    3939                                        AllocsTelnetConnection c = new AllocsTelnetConnection (listener.AcceptTcpClient (), authEnabled);
    40                                         conns.Add (c);
     40                                        connections.Add (c);
    4141                                        Log.Out ("Telnet connection from: " + c.GetEndPoint ());
    4242                                        if (authEnabled) {
     
    4747                                }
    4848
    49                                 foreach (AllocsTelnetConnection c in conns) {
     49                                foreach (AllocsTelnetConnection c in connections) {
    5050                                        if (c.IsClosed ()) {
    5151                                                c.Close ();
    52                                                 conns.Remove (c);
     52                                                connections.Remove (c);
    5353                                                break;
    5454                                        }
     
    7070                                                                Log.Out ("Telnet connection closed by client: " + c.GetEndPoint ());
    7171                                                                c.Close ();
    72                                                                 conns.Remove (c);
     72                                                                connections.Remove (c);
    7373                                                                break;
    7474                                                        }
     
    124124                        listener.Stop ();
    125125                }
    126                 foreach (AllocsTelnetConnection c in conns) {
     126                foreach (AllocsTelnetConnection c in connections) {
    127127                        c.Close ();
    128128                }
     
    139139                console.AddCommand(new SayToPlayer(console));
    140140                console.AddCommand(new SetTimeReal(console));
     141                console.AddCommand(new ShowInventory(console));
    141142        }
    142143
    143144        private static void RemoveClosedConnections ()
    144145        {
    145                 foreach (AllocsTelnetConnection c in conns) {
     146                foreach (AllocsTelnetConnection c in connections) {
    146147                        if (c.IsClosed ()) {
    147148                                c.Close ();
     
    156157                }
    157158                RemoveClosedConnections ();
    158                 foreach (AllocsTelnetConnection c in conns) {
     159                foreach (AllocsTelnetConnection c in connections) {
    159160                        if (c.IsAuthenticated ())
    160161                                c.WriteLine (line);
  • binary-improvements/NamePatcher/NamePatcher.cs

    r86 r93  
    5858                static void applyManualPatches (ModuleDefinition mainModule)
    5959                {
     60                        NameNormalizer.setName (mainModule.GetType ("ItemBlock").BaseType.Resolve (), "ItemBase");
     61
     62                        foreach (FieldDefinition fd in mainModule.GetType("PlayerDataFile").Fields) {
     63                                TypeReference fdType = fd.FieldType;
     64                                if (fd.Name.Equals ("inventory") && fdType.IsArray) {
     65                                        foreach (FieldDefinition fd2 in fdType.Resolve().Fields) {
     66                                                TypeReference fd2Type = fd2.FieldType;
     67                                                if (fd2Type.FullName.Equals ("System.Int32")) {
     68                                                        Console.WriteLine ("Renaming inventory field field -> count");
     69                                                        NameNormalizer.setName (fd2, "count");
     70                                                }
     71                                                if (fd2Type.FullName.Equals ("ItemValue")) {
     72                                                        Console.WriteLine ("Renaming inventory field field -> itemValue");
     73                                                        NameNormalizer.setName (fd2, "itemValue");
     74                                                }
     75                                        }
     76                                        Console.WriteLine ("Renaming inventory field class -> InventoryField");
     77                                        NameNormalizer.setName (fdType.Resolve (), "InventoryField");
     78                                }
     79                        }
     80
    6081                        foreach (FieldDefinition fd in mainModule.GetType ("AdminTools").Fields) {
    6182                                TypeReference fdType = fd.FieldType;
  • binary-improvements/assembly-patcher/Assembly-Patcher.userprefs

    r86 r93  
    33  <MonoDevelop.Ide.Workbench ActiveDocument="Main.cs">
    44    <Files>
    5       <File FileName="Main.cs" Line="28" Column="4" />
     5      <File FileName="Main.cs" Line="53" Column="57" />
    66      <File FileName="AssemblyInfo.cs" Line="21" Column="1" />
    77    </Files>
  • binary-improvements/assembly-patcher/Main.cs

    r84 r93  
    1111                {
    1212                        ModuleDefinition module = ModuleDefinition.ReadModule ("Assembly-CSharp.dll");
     13
     14                        TypeDefinition type = module.GetType ("GameManager");
     15                        if (isPatched (type)) {
     16                                Console.WriteLine("Assembly already patched");
     17                                return;
     18                        }
     19                        markTypePatched (module, type);
     20
    1321                        telnetPatch (module);
    1422                        connectLogPatch (module);
    15                         executionLogPatch( module);
     23                        executionLogPatch (module);
    1624                        publicCommandPermissionsPatch (module);
     25                        playerDataPatch (module);
    1726                        module.Write ("Assembly-CSharp.dll");
    1827                        Console.WriteLine ("Done");
     28                }
     29
     30                private static void playerDataPatch (ModuleDefinition module)
     31                {
     32                        TypeDefinition type = module.GetType ("GameManager");
     33
     34                        addHook (type, "SavePlayerData", true, 2, true, typeof(PlayerDataStuff).GetMethod ("GM_SavePlayerData"));
    1935                }
    2036
     
    2339                        TypeDefinition type = module.GetType ("AdminTools");
    2440
    25                         if (isPatched (type)) {
    26                                 return;
    27                         }
    28 
    29                         markTypePatched (module, type);
    3041                        replaceMethod (type, "GetAllowedCommandsList", true, 1, typeof(AdminToolsStuff).GetMethod ("GetAllowedCommandsList"));
    3142                }
     
    3546                        TypeDefinition type = module.GetType ("GameManager");
    3647
    37                         if (isPatched (type)) {
    38                                 return;
    39                         }
    40 
    41                         markTypePatched (module, type);
    4248                        addHook (type, "RequestToSpawnPlayer", true, 5, true, typeof(AllocsLogFunctions).GetMethod ("RequestToSpawnPlayer"));
    4349                }
     
    4753                        TypeDefinition type = module.GetType ("ConsoleSdtd");
    4854
    49                         if (isPatched (type)) {
    50                                 return;
    51                         }
    52 
    53                         markTypePatched (module, type);
    5455                        addHook (type, "ExecuteCmdFromClient", true, 3, false, typeof(AllocsLogFunctions).GetMethod ("ExecuteCmdFromClient"));
    5556                }
     
    5960                        TypeDefinition type = module.GetType ("NetTelnetServer");
    6061
    61                         if (isPatched (type)) {
    62                                 return;
    63                         }
    64 
    65                         markTypePatched (module, type);
    6662                        replaceMethod (type, ".ctor", false, 1, typeof(AllocsNetTelnetServer).GetMethod ("init"));
    6763                        replaceMethod (type, "Disconnect", false, 0, typeof(AllocsNetTelnetServer).GetMethod ("Disconnect"));
Note: See TracChangeset for help on using the changeset viewer.