Ignore:
Timestamp:
Apr 2, 2015, 9:16:34 PM (10 years ago)
Author:
alloc
Message:

A11 preps

Location:
binary-improvements/7dtd-server-fixes/src
Files:
3 added
4 deleted
10 edited

Legend:

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

    r203 r224  
    3131                                PersistentContainer.Instance.Players [steamId].SetOnline (ci);
    3232                                PersistentData.PersistentContainer.Instance.Save ();
     33
     34                                Mods.CallRequestToSpawnPlayer (_clientId, _name, _chunkViewDim, _playerProfile);
    3335                        } catch (Exception e) {
    3436                                Log.Out ("Error in AllocsLogFunctions.RequestToSpawnPlayer: " + e);
     
    3638                }
    3739
    38                 public static void PlayerDisconnected (ConnectionManager manager, int _clientId, bool _bShutdown)
     40                public static void PlayerDisconnected (ConnectionManager manager, ClientInfo _cInfo, bool _bShutdown)
    3941                {
    4042                        try {
    41                                 Player p = PersistentContainer.Instance.Players.GetPlayerByClientId (_clientId);
     43                                Player p = PersistentContainer.Instance.Players [_cInfo.playerId];
    4244                                if (p != null) {
    4345                                        p.SetOffline ();
     
    4648                                }
    4749                                PersistentData.PersistentContainer.Instance.Save ();
     50
     51                                Mods.CallPlayerDisconnected (_cInfo, _bShutdown);
    4852                        } catch (Exception e) {
    4953                                Log.Out ("Error in AllocsLogFunctions.PlayerDisconnected: " + e);
  • binary-improvements/7dtd-server-fixes/src/AssemblyInfo.cs

    r216 r224  
    1818// and "{Major}.{Minor}.{Build}.*" will update just the revision.
    1919
    20 [assembly: AssemblyVersion("0.104.*")]
     20[assembly: AssemblyVersion("0.110.*")]
    2121
    2222// The following attributes are used to specify the signing key for the assembly,
  • binary-improvements/7dtd-server-fixes/src/CommandExtensions.cs

    r198 r224  
    1212                        try {
    1313                                ConsoleSdtd cons = manager.m_GUIConsole;
    14                                 string ns = "AllocsFixes.CustomCommands";
    15                                 string basetype = "ConsoleCommand";
     14                                Type commandType = typeof (ConsoleCommand);
    1615
    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);
     16                                Mods.ModData thisMd = new Mods.ModData ();
     17                                thisMd.assembly = Assembly.GetExecutingAssembly ();
     18
     19                                List<Mods.ModData> mods = Mods.LoadedMods ();
     20                                mods.Add (thisMd);
     21
     22                                foreach (Mods.ModData md in mods) {
     23                                        foreach (Type t in md.assembly.GetTypes()) {
     24                                                if (t.IsClass && commandType.IsAssignableFrom (t)) {
     25                                                        try {
     26                                                                ConstructorInfo ctor = t.GetConstructor (new Type[] {typeof(ConsoleSdtd)});
     27                                                                cons.AddCommand ((ConsoleCommand)ctor.Invoke (new object[] {cons}));
     28                                                        } catch (Exception e) {
     29                                                                Log.Out ("Could not register custom command \"" + t.Name + "\": " + e);
     30                                                        }
    2431                                                }
    2532                                        }
  • binary-improvements/7dtd-server-fixes/src/CommonMappingFunctions.cs

    r213 r224  
    1515                public static GameManager GetGameManager ()
    1616                {
    17                         return GetConnectionManager ().gameManager;
     17                        return GameManager.Instance;
    1818                }
    1919
     
    2525                public static EntityPlayer GetEntityPlayer (ClientInfo _ci)
    2626                {
    27                         return GetGameManager ().World.playerEntities.dict [_ci.entityId];
     27                        return GetGameManager ().World.Players.dict [_ci.entityId];
    2828                }
    2929
  • binary-improvements/7dtd-server-fixes/src/ItemList.cs

    r199 r224  
    2727                }
    2828
    29                 public Nullable<ItemValue> GetItemValue (string itemName)
     29                public ItemValue GetItemValue (string itemName)
    3030                {
    3131                        if (items.ContainsKey (itemName)) {
    32                                 return items [itemName];
     32                                return items [itemName].Clone ();
    3333                        } else {
    3434                                itemName = itemName.ToLower ();
    3535                                foreach (KeyValuePair<string, ItemValue> kvp in items) {
    3636                                        if (kvp.Key.ToLower ().Equals (itemName)) {
    37                                                 return kvp.Value;
     37                                                return kvp.Value.Clone ();
    3838                                        }
    3939                                }
     
    4747                        foreach (InventoryField invF in cm.GetAllItems()) {
    4848                                ItemBase ib = ItemBase.list [invF.itemValue.type];
    49                                 string name = ib.GetItemName (invF.itemValue);
     49                                string name = ib.GetItemName ();
    5050                                if (name != null && name.Length > 0) {
    5151                                        if (!items.ContainsKey (name)) {
     
    5858                        foreach (InventoryField invF in cm.GetAllBlocks()) {
    5959                                ItemBase ib = ItemBase.list [invF.itemValue.type];
    60                                 string name = ib.GetItemName (invF.itemValue);
     60                                string name = ib.GetItemName ();
    6161                                if (name != null && name.Length > 0) {
    6262                                        if (!items.ContainsKey (name)) {
  • binary-improvements/7dtd-server-fixes/src/NetConnections/ConsoleOutputSeparator.cs

    r213 r224  
    2222                private static List<NetCommand> netCommandQueue = new List<NetCommand> ();
    2323                private static bool isCurrentCommandFromClient = false;
     24                private static int issuerOfCurrentClientCommand = -1;
    2425                private static IConnection issuerOfCurrentCommand;
    2526
    26                 public static void C_ExecuteCmdFromClient (ConsoleSdtd console, NetworkPlayer _networkPlayer, string _playerName, string _playerID, string _command)
     27                public static void C_ExecuteCmdFromClient (ConsoleSdtd console, int _entityId, string _playerName, string _playerID, string _command)
    2728                {
    2829                        Log.Out ("Executed command \"" + _command + "\" from player \"" + _playerName + "\"");
     
    3031                        lock (netCommandQueue) {
    3132                                isCurrentCommandFromClient = true;
    32                                 console.issuerOfCurrentClientCommand = _networkPlayer;
    33                                 console.ExecuteClientCmdInternal (_playerName, _playerID, _command);
     33                                issuerOfCurrentClientCommand = _entityId;
     34
     35                                string[] array = _command.Split (' ');
     36                                if (array.Length == 0) {
     37                                        C_SendResult (console, "*** ERROR: empty command '" + _command + "'");
     38                                } else {
     39                                        ConsoleCommand cmd = console.getCommand (_command);
     40                                        if (cmd != null) {
     41                                                string[] array2 = new string[array.Length - 1];
     42                                                for (int i = 1; i < array.Length; i++) {
     43                                                        array2 [i - 1] = array [i];
     44                                                }
     45                                                cmd.ExecuteRemote (_playerID, array2);
     46                                        } else {
     47                                                C_SendResult (console, "*** ERROR: unknown command '" + array [0] + "'");
     48                                        }
     49                                }
     50
    3451                                isCurrentCommandFromClient = false;
    3552                        }
     
    4057                {
    4158                        if (isCurrentCommandFromClient) {
    42                                 console.gameManager.GetRPCNetworkView ().RPC ("RPC_Console", console.issuerOfCurrentClientCommand, new object[]
    43                         {
    44                                 _line,
    45                                 false
    46                         }
    47                                 );
     59                                CommonMappingFunctions.GetConnectionManager ().SendPackage (new NetPackage_ConsoleCmdClient (_line, false), new PackageDestinationSingleEntityID (issuerOfCurrentClientCommand));
    4860                        } else {
    4961                                if (console.telnetServer != null && issuerOfCurrentCommand != null)
  • binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Telnet/TelnetConnection.cs

    r202 r224  
    1313                private readonly BlockingQueue<string> toClientQueue = new BlockingQueue<string> ();
    1414                private readonly Telnet telnet;
    15                 private readonly Thread receiveThread = null;
    16                 private readonly Thread sendThread = null;
    1715                private bool authenticated = false;
    1816                private readonly bool authEnabled;
     
    4442                        Log.Out ("Telnet connection from: " + endpoint);
    4543
    46                         receiveThread = ThreadMaster.Create ("TelnetClientReceive_" + endpoint.ToString (), new ThreadStart (ReceiveThread));
    47                         receiveThread.Start ();
    48                         sendThread = ThreadMaster.Create ("TelnetClientSend" + endpoint.ToString (), new ThreadStart (SendThread));
    49                         sendThread.Start ();
     44                        ThreadManager.StartThread ("TelnetClientReceive_" + endpoint.ToString (), new ThreadManager.ThreadFunctionDelegate (ReceiveThread), System.Threading.ThreadPriority.BelowNormal);
     45                        ThreadManager.StartThread ("TelnetClientSend_" + endpoint.ToString (), new ThreadManager.ThreadFunctionDelegate (SendThread), System.Threading.ThreadPriority.BelowNormal);
    5046
    5147                        if (authEnabled) {
     
    7773                }
    7874
    79                 private void ReceiveThread ()
     75                private void ReceiveThread (ThreadManager.ThreadInfo _tInfo)
    8076                {
    8177                        try {
     
    116112                        if (!closed)
    117113                                Close ();
    118                         ThreadMaster.Remove (Thread.CurrentThread.Name);
    119114                }
    120115
    121                 private void SendThread ()
     116                private void SendThread (ThreadManager.ThreadInfo _tInfo)
    122117                {
    123118                        try {
     
    140135                        if (!closed)
    141136                                Close ();
    142                         ThreadMaster.Remove (Thread.CurrentThread.Name);
    143137                }
    144138
  • binary-improvements/7dtd-server-fixes/src/PersistentData/Inventory.cs

    r197 r224  
    3232                                        if (sourceFields [i].count > 0) {
    3333                                                int count = sourceFields [i].count;
    34                                                 int maxAllowed = ItemBase.list [sourceFields [i].itemValue.type].StackNumber;
     34                                                int maxAllowed = ItemBase.list [sourceFields [i].itemValue.type].Stacknumber.Value;
    3535                                                string name = getInvFieldName (sourceFields [i]);
    3636
     
    4848                {
    4949                        ItemBase iBase = ItemBase.list [item.itemValue.type];
    50                         return iBase.GetItemName (item.itemValue);
     50                        return iBase.GetItemName ();
    5151                }
    5252
  • binary-improvements/7dtd-server-fixes/src/PlayerDataStuff.cs

    r144 r224  
    1414                                string steamId = CommonMappingFunctions.GetSteamID(ci);
    1515                                PersistentContainer.Instance.Players[steamId].Inventory.Update(_playerDataFile);
     16                                Mods.CallSavePlayerData (_clientId, _playerDataFile);
    1617                        } catch (Exception e) {
    1718                                Log.Out ("Error in GM_SavePlayerData: " + e);
  • binary-improvements/7dtd-server-fixes/src/StateManager.cs

    r197 r224  
    11using AllocsFixes.NetConnections.Servers.Telnet;
    2 using AllocsFixes.NetConnections.Servers.Web;
    32using System;
    43using System.Reflection;
     
    1211                        try {
    1312                                Log.Out ("[7dtd-server-fixes by Alloc] Version: " + Assembly.GetExecutingAssembly ().GetName ().Version);
    14                                 new Web ();
     13
     14                                Mods.LoadMods ();
     15                                Mods.CallGameAwake ();
     16                                CommandExtensions.InitCommandExtensions (manager);
     17
    1518                                new Telnet ();
    1619
    1720                                ItemList.Instance.Init ();
    18                                 CommandExtensions.InitCommandExtensions (manager);
    1921
    2022                                PersistentData.PersistentContainer.Load ();
     
    2830                        try {
    2931                                Log.Out ("Server shutting down!");
     32                                Mods.CallGameShutdown ();
    3033                                PersistentData.PersistentContainer.Instance.Save ();
    3134                        } catch (Exception e) {
Note: See TracChangeset for help on using the changeset viewer.