Skip to content

Commit 7f2b072

Browse files
author
magiclu550
committed
[proxy] fix a bug
1 parent 57a17f5 commit 7f2b072

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

jsmod2/NetworkHandler.cs

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
using Newtonsoft.Json;
88
using Smod2.API;
99
using Smod2.Events;
10+
using Smod2.EventSystem.Events;
1011

1112
namespace jsmod2
1213
{
@@ -85,6 +86,8 @@ static NetworkHandler()
8586
handlers.Add(181,new SimpleHandler());
8687
handlers.Add(182,new HandlePlayerContain106GetScp106s());
8788
handlers.Add(183,new HandlePlayerSetRoleItems());
89+
handlers.Add(184,new HandleTeamRespawnEventGetPlayers());
90+
handlers.Add(185,new HandleTeamRespawnEventSetPlayers());
8891
}
8992
public static void handleJsmod2(int id, String json,Dictionary<string,string> mapper,TcpClient client)
9093
{
@@ -202,6 +205,41 @@ public interface Handler
202205
JsonSetting[] handle(object api,Dictionary<string,string> mapper);
203206
}
204207

208+
public class HandleTeamRespawnEventSetPlayers : Handler
209+
{
210+
public JsonSetting[] handle(object api, Dictionary<string, string> mapper)
211+
{
212+
TeamRespawnEvent e = api as TeamRespawnEvent;
213+
string[] ids = Lib.getArray(mapper["players"]);
214+
List<Player> players = new List<Player>();
215+
foreach (string id in ids)
216+
{
217+
players.Add(ProxyHandler.handler.apiMapping[id] as Player);
218+
}
219+
220+
e.PlayerList = players;
221+
return null;
222+
}
223+
}
224+
225+
public class HandleTeamRespawnEventGetPlayers : Handler
226+
{
227+
public JsonSetting[] handle(object api, Dictionary<string, string> mapper)
228+
{
229+
TeamRespawnEvent e = api as TeamRespawnEvent;
230+
List<Player> players = e.PlayerList;
231+
JsonSetting[] settings = new JsonSetting[players.Count];
232+
for (int i = 0; i < settings.Length; i++)
233+
{
234+
settings[i] = new JsonSetting(Lib.getInt(mapper["id"]),null,
235+
new IdMapping().appendId(Lib.ID,Guid.NewGuid().ToString(),players[i]).appendId(Lib.PLAYER_SCPDATA_ID,Guid.NewGuid().ToString(),players[i].Scp079Data).appendId(Lib.PLAYER_TEAM_ROLE_ID,Guid.NewGuid().ToString(),players[i].TeamRole)
236+
);
237+
}
238+
239+
return settings;
240+
}
241+
}
242+
205243
public class HandlePlayerContain106GetScp106s : Handler
206244
{
207245
public JsonSetting[] handle(object api, Dictionary<string, string> mapper)

0 commit comments

Comments
 (0)