Ignore:
Timestamp:
Sep 22, 2014, 11:54:56 AM (10 years ago)
Author:
alloc
Message:

fixes

Location:
binary-improvements/7dtd-server-fixes/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • binary-improvements/7dtd-server-fixes/src/AllocsLogFunctions.cs

    r159 r198  
    4242                                if (p != null) {
    4343                                        p.SetOffline ();
     44                                } else {
     45                                        Log.Out ("Disconnected player not found in client list...");
    4446                                }
    4547                                PersistentData.PersistentContainer.Instance.Save ();
  • binary-improvements/7dtd-server-fixes/src/CommandExtensions.cs

    r163 r198  
    22using System;
    33using System.Collections.Generic;
     4using System.Reflection;
    45
    56namespace AllocsFixes
     
    1112                        try {
    1213                                ConsoleSdtd cons = manager.m_GUIConsole;
    13                                 cons.AddCommand (new CreativeMenu (cons));
    14                                 cons.AddCommand (new EnableRendering (cons));
    15                                 cons.AddCommand (new GetGamePrefs (cons));
    16                                 cons.AddCommand (new GetTime (cons));
    17                                 cons.AddCommand (new Give (cons));
    18                                 cons.AddCommand (new Kill (cons));
    19                                 cons.AddCommand (new ListItems (cons));
    20                                 cons.AddCommand (new ListKnownPlayers (cons));
    21                                 cons.AddCommand (new ListLandProtection (cons));
    22                                 cons.AddCommand (new ListPlayersExtended (cons));
    23                                 cons.AddCommand (new RemoveLandProtection (cons));
    24                                 cons.AddCommand (new RenderMap (cons));
    25                                 cons.AddCommand (new Reply (cons));
    26                                 cons.AddCommand (new SayToPlayer (cons));
    27                                 cons.AddCommand (new SetTimeReal (cons));
    28                                 cons.AddCommand (new ShowInventory (cons));
    29                                 cons.AddCommand (new TeleportPlayer (cons));
    30                                 cons.AddCommand (new AllocsFixes.CustomCommands.Version (cons));
     14                                string ns = "AllocsFixes.CustomCommands";
     15                                string basetype = "ConsoleCommand";
     16
     17                                foreach (Type t in Assembly.GetExecutingAssembly ().GetTypes()) {
     18                                        if (t.IsClass && t.Namespace.Equals (ns) && t.BaseType.Name.Equals (basetype)) {
     19                                                try {
     20                                                        ConstructorInfo ctor = t.GetConstructor (new Type[] {typeof(ConsoleSdtd)});
     21                                                        cons.AddCommand ((ConsoleCommand)ctor.Invoke (new object[] {cons}));
     22                                                } catch (Exception e) {
     23                                                        Log.Out ("Could not register custom command \"" + t.Name + "\": " + e);
     24                                                }
     25                                        }
     26                                }
    3127                        } catch (Exception e) {
    3228                                Log.Out ("Error registering custom commands: " + e);
  • binary-improvements/7dtd-server-fixes/src/PersistentData/Player.cs

    r161 r198  
    9898                        if (clientInfo != null) {
    9999                                Log.Out ("Player set to offline: " + steamId);
    100                                 Vector3i lastPos = new Vector3i (Entity.GetPosition ());
    101                                 lastPositionX = lastPos.x;
    102                                 lastPositionY = lastPos.y;
    103                                 lastPositionZ = lastPos.z;
    104                                 totalPlayTime += (long)(Time.timeSinceLevelLoad - Entity.CreationTimeSinceLevelLoad);
    105100                                lastOnline = DateTime.Now;
     101                                try {
     102                                        Vector3i lastPos = new Vector3i (Entity.GetPosition ());
     103                                        lastPositionX = lastPos.x;
     104                                        lastPositionY = lastPos.y;
     105                                        lastPositionZ = lastPos.z;
     106                                        totalPlayTime += (long)(Time.timeSinceLevelLoad - Entity.CreationTimeSinceLevelLoad);
     107                                } catch (NullReferenceException) {
     108                                        Log.Out ("Entity not available. Something seems to be wrong here...");
     109                                }
    106110                                clientInfo = null;
    107111                        }
Note: See TracChangeset for help on using the changeset viewer.