Ignore:
Timestamp:
Aug 12, 2015, 6:10:28 PM (9 years ago)
Author:
alloc
Message:

Fixes 5_7_9

Location:
binary-improvements/MapRendering
Files:
3 added
8 edited

Legend:

Unmodified
Added
Removed
  • binary-improvements/MapRendering/API.cs

    r230 r250  
    77                public override void GameAwake () {
    88                        new AllocsFixes.NetConnections.Servers.Web.Web ();
     9                        AllocsFixes.NetConnections.Servers.Web.LogBuffer.Instance.GetType ();
    910                }
    1011
  • binary-improvements/MapRendering/ModInfo.xml

    r249 r250  
    55                <Description value="Render the game map to image map tiles as it is uncovered" />
    66                <Author value="Christian 'Alloc' Illy" />
    7                 <Version value="8" />
     7                <Version value="9" />
    88                <Website value="http://7dtd.illy.bz" />
    99        </ModInfo>
  • binary-improvements/MapRendering/Web/API/GetPlayerInventory.cs

    r245 r250  
    3535                        result.Add ("equipment", equipment);
    3636
    37                         for (int i = 0; i < inv.belt.Count; i++) {
    38                                 JSONObject item = new JSONObject ();
    39                                 if (inv.belt [i] != null) {
    40                                         item.Add ("count", new JSONNumber (inv.belt [i].count));
    41                                         item.Add ("name", new JSONString (inv.belt [i].itemName));
    42                                 } else {
    43                                         item.Add ("count", new JSONNumber (0));
    44                                         item.Add ("name", new JSONString (string.Empty));
    45                                 }
    46                                 belt.Add (item);
    47                         }
    48                         for (int i = 0; i < inv.bag.Count; i++) {
    49                                 JSONObject item = new JSONObject ();
    50                                 if (inv.bag [i] != null) {
    51                                         item.Add ("count", new JSONNumber (inv.bag [i].count));
    52                                         item.Add ("name", new JSONString (inv.bag [i].itemName));
    53                                 } else {
    54                                         item.Add ("count", new JSONNumber (0));
    55                                         item.Add ("name", new JSONString (string.Empty));
    56                                 }
    57                                 bag.Add (item);
    58                         }
     37                        DoInventory (belt, inv.belt);
     38                        DoInventory (bag, inv.bag);
    5939
    6040                        AddEquipment (equipment, "head", inv.equipment, XMLData.Item.EnumEquipmentSlot.Head, NGuiInvGridEquipment.EnumClothingLayer.Middle);
     
    7656                }
    7757
     58                private void DoInventory (JSONArray _jsonRes, List<InvItem> _inv) {
     59                        for (int i = 0; i < _inv.Count; i++) {
     60                                _jsonRes.Add (GetJsonForItem (_inv [i]));
     61                        }
     62                }
     63
    7864                private void AddEquipment (JSONObject _eq, string _slotname, InvItem[] _items, XMLData.Item.EnumEquipmentSlot _slot, NGuiInvGridEquipment.EnumClothingLayer _layer) {
    7965                        int index = (int)_slot + (int)_layer * (int)XMLData.Item.EnumEquipmentSlot.Count;
    80                         if (_items != null && _items [index] != null) {
    81                                 _eq.Add (_slotname, new JSONString (_items [index].itemName));
     66                        if (_items != null) {
     67                                _eq.Add (_slotname, GetJsonForItem (_items [index]));
    8268                        } else {
    83                                 _eq.Add (_slotname, new JSONBoolean (false));
     69                                _eq.Add (_slotname, new JSONNull ());
     70                        }
     71                }
     72
     73                private JSONNode GetJsonForItem (InvItem _item) {
     74                        if (_item != null) {
     75                                JSONObject jsonItem = new JSONObject ();
     76                                jsonItem.Add ("count", new JSONNumber (_item.count));
     77                                jsonItem.Add ("name", new JSONString (_item.itemName));
     78                                jsonItem.Add ("quality", new JSONNumber (_item.quality));
     79                                if (_item.quality >= 0) {
     80                                        jsonItem.Add ("qualitycolor", new JSONString (QualityInfo.GetQualityColorHex (_item.quality)));
     81                                }
     82                                return jsonItem;
     83                        } else {
     84                                return new JSONNull ();
    8485                        }
    8586                }
  • binary-improvements/MapRendering/Web/ConnectionHandler.cs

    r244 r250  
    5050                }
    5151
    52                 public void SendLog (string text, string trace, UnityEngine.LogType type) {
    53                         foreach (WebConnection wc in connections.Values) {
    54                                 wc.SendLog (text, trace, type);
    55                         }
    56                 }
    57 
    5852        }
    5953}
  • binary-improvements/MapRendering/Web/Handlers/ApiHandler.cs

    r247 r250  
    44using System.IO;
    55using System.Net;
     6using System.Reflection;
    67using System.Threading;
    78
     
    1415                public ApiHandler (string staticPart, string moduleName = null) : base(moduleName) {
    1516                        this.staticPart = staticPart;
    16                         addApi ("getlandclaims", new GetLandClaims ());
    17                         addApi ("getplayersonline", new GetPlayersOnline ());
    18                         addApi ("getplayerslocation", new GetPlayersLocation ());
    19                         addApi ("getplayerinventory", new GetPlayerInventory ());
    20                         addApi ("getstats", new GetStats ());
     17
     18                        foreach (Type t in Assembly.GetExecutingAssembly ().GetTypes ()) {
     19                                if (!t.IsAbstract && t.IsSubclassOf (typeof(WebAPI))) {
     20                                        ConstructorInfo ctor = t.GetConstructor (new Type[0]);
     21                                        if (ctor != null) {
     22                                                WebAPI apiInstance = (WebAPI)ctor.Invoke (new object[0]);
     23                                                addApi (t.Name.ToLower (), apiInstance);
     24                                        }
     25                                }
     26                        }
    2127                }
    2228
     
    3844                        } else {
    3945                                foreach (KeyValuePair<string, WebAPI> kvp in apis) {
    40                                         try {
    41                                                 if (apiName.StartsWith (kvp.Key)) {
     46                                        if (apiName.StartsWith (kvp.Key)) {
     47                                                try {
    4248                                                        kvp.Value.HandleRequest (req, resp, user, permissionLevel);
    4349                                                        return;
     50                                                } catch (Exception e) {
     51                                                        Log.Error ("Error in ApiHandler.HandleRequest(): Handler {0} threw an exception:", kvp.Key);
     52                                                        Log.Exception (e);
     53                                                        resp.StatusCode = (int)HttpStatusCode.InternalServerError;
     54                                                        return;
    4455                                                }
    45                                         } catch (Exception e) {
    46                                                 Log.Out ("Error in ApiHandler.HandleRequest(): Handler threw an exception: " + e);
    47                                                 resp.StatusCode = (int)HttpStatusCode.InternalServerError;
    48                                                 return;
    4956                                        }
    5057                                }
  • binary-improvements/MapRendering/Web/Web.cs

    r249 r250  
    250250
    251251                public void SendLog (string text, string trace, UnityEngine.LogType type) {
    252                         connectionHandler.SendLog (text, trace, type);
     252                        // Do nothing, handled by LogBuffer internally
    253253                }
    254254
  • binary-improvements/MapRendering/Web/WebConnection.cs

    r244 r250  
    1212                private DateTime login;
    1313                private DateTime lastAction;
    14 
    1514                private List<string> outputLines = new List<string> ();
    16                 private List<LogLine> logLines = new List<LogLine> ();
    1715
    1816                public string SessionID {
     
    5755
    5856                public override void SendLog (string _msg, string _trace, LogType _type) {
    59                         LogLine ll = new LogLine ();
    60                         ll.message = _msg;
    61                         ll.trace = _trace;
    62                         ll.type = _type;
    63                         logLines.Add (ll);
     57                        // Do nothing, handled by LogBuffer
    6458                }
    6559
    66                 private struct LogLine {
    67                         public string message;
    68                         public string trace;
    69                         public LogType type;
    70                 }
    7160        }
    7261}
  • binary-improvements/MapRendering/WebAndMapRendering.csproj

    r244 r250  
    7575    <Compile Include="Commands\WebTokens.cs" />
    7676    <Compile Include="Commands\WebPermissionsCmd.cs" />
     77    <Compile Include="Web\LogBuffer.cs" />
     78    <Compile Include="Web\API\GetLog.cs" />
     79    <Compile Include="Web\API\GetWebUIUpdates.cs" />
    7780  </ItemGroup>
    7881  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
Note: See TracChangeset for help on using the changeset viewer.