Ignore:
Timestamp:
Jan 5, 2019, 3:21:40 PM (6 years ago)
Author:
alloc
Message:

Player storing fixes, webmap inventory layout fix

Location:
binary-improvements/7dtd-server-fixes/src
Files:
4 deleted
1 edited

Legend:

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

    r337 r345  
    11using System.Collections.Generic;
     2using AllocsFixes.PersistentData;
     3using System;
    24
    35namespace AllocsFixes {
     
    911                        ModEvents.PlayerSpawning.RegisterHandler (PlayerSpawning);
    1012                        ModEvents.PlayerDisconnected.RegisterHandler (PlayerDisconnected);
     13                        ModEvents.PlayerSpawnedInWorld.RegisterHandler (PlayerSpawned);
    1114                        ModEvents.ChatMessage.RegisterHandler (ChatMessage);
    1215                }
    1316
    1417                public void GameAwake () {
    15                         StateManager.Awake ();
     18                        try {
     19                                PersistentContainer.Load ();
     20                        } catch (Exception e) {
     21                                Log.Out ("Error in StateManager.Awake: " + e);
     22                        }
    1623                }
    1724
    1825                public void GameShutdown () {
    19                         StateManager.Shutdown ();
     26                        try {
     27                                Log.Out ("Server shutting down!");
     28                                PersistentContainer.Instance.Save ();
     29                        } catch (Exception e) {
     30                                Log.Out ("Error in StateManager.Shutdown: " + e);
     31                        }
    2032                }
    2133
    2234                public void SavePlayerData (ClientInfo _cInfo, PlayerDataFile _playerDataFile) {
    23                         PlayerDataStuff.GM_SavePlayerData (_cInfo, _playerDataFile);
     35                        try {
     36                                PersistentContainer.Instance.Players [_cInfo.playerId, true].Update (_playerDataFile);
     37                        } catch (Exception e) {
     38                                Log.Out ("Error in GM_SavePlayerData: " + e);
     39                        }
    2440                }
    2541
    2642                public void PlayerSpawning (ClientInfo _cInfo, int _chunkViewDim, PlayerProfile _playerProfile) {
    27                         AllocsLogFunctions.RequestToSpawnPlayer (_cInfo, _chunkViewDim, _playerProfile);
     43                        try {
     44                                Log.Out ("Player connected" +
     45                                        ", entityid=" + _cInfo.entityId +
     46                                        ", name=" + _cInfo.playerName +
     47                                        ", steamid=" + _cInfo.playerId +
     48                                        ", steamOwner=" + _cInfo.ownerId +
     49                                        ", ip=" + _cInfo.ip
     50                                );
     51                        } catch (Exception e) {
     52                                Log.Out ("Error in AllocsLogFunctions.RequestToSpawnPlayer: " + e);
     53                        }
    2854                }
    2955
    3056                public void PlayerDisconnected (ClientInfo _cInfo, bool _bShutdown) {
    31                         AllocsLogFunctions.PlayerDisconnected (_cInfo, _bShutdown);
     57                        try {
     58                                Player p = PersistentContainer.Instance.Players [_cInfo.playerId, false];
     59                                if (p != null) {
     60                                        p.SetOffline ();
     61                                } else {
     62                                        Log.Out ("Disconnected player not found in client list...");
     63                                }
     64
     65                                PersistentContainer.Instance.Save ();
     66                        } catch (Exception e) {
     67                                Log.Out ("Error in AllocsLogFunctions.PlayerDisconnected: " + e);
     68                        }
    3269                }
     70
     71                public void PlayerSpawned (ClientInfo _cInfo, RespawnType _respawnReason, Vector3i _spawnPos) {
     72                        try {
     73                                PersistentContainer.Instance.Players [_cInfo.playerId, true].SetOnline (_cInfo);
     74                                PersistentContainer.Instance.Save ();
     75                        } catch (Exception e) {
     76                                Log.Out ("Error in AllocsLogFunctions.PlayerSpawnedInWorld: " + e);
     77                        }
     78                }
     79
     80                private const string ANSWER =
     81                        "     [ff0000]I[-] [ff7f00]W[-][ffff00]A[-][80ff00]S[-] [00ffff]H[-][0080ff]E[-][0000ff]R[-][8b00ff]E[-]";
    3382
    3483                public bool ChatMessage (ClientInfo _cInfo, EChatType _type, int _senderId, string _msg, string _mainName,
    3584                        bool _localizeMain, List<int> _recipientEntityIds) {
    36                         return ChatHookExample.Hook (_cInfo, _type, _msg, _mainName);
     85                        if (string.IsNullOrEmpty (_msg) || !_msg.EqualsCaseInsensitive ("/alloc")) {
     86                                return true;
     87                        }
     88
     89                        if (_cInfo != null) {
     90                                Log.Out ("Sent chat hook reply to {0}", _cInfo.playerId);
     91                                _cInfo.SendPackage (new NetPackageChat (EChatType.Whisper, -1, ANSWER, "", false, null));
     92                        } else {
     93                                Log.Error ("ChatHookExample: Argument _cInfo null on message: {0}", _msg);
     94                        }
     95
     96                        return false;
    3797                }
    3898        }
Note: See TracChangeset for help on using the changeset viewer.