8
8
using Smod2 ;
9
9
using Smod2 . Attributes ;
10
10
using Smod2 . Events ;
11
+ using Smod2 . EventSystem . Events ;
11
12
12
13
namespace jsmod2
13
14
{
@@ -30,6 +31,104 @@ namespace jsmod2
30
31
//最新的设计 2019 7 24
31
32
//在触发事件时,将不发出event的序列化对象,而是只发出apiId,之后的数据获取通过发包(GetPacket)获取
32
33
//其他响应也是如此,不发对象,而是只发apiId(Vector则需要发送序列化对象,其他序列化对象设置为字符串"",apiId在apiMapper添加)
34
+
35
+ public class RegisterEvents
36
+ {
37
+ private static HashMap < int , Type > events = new HashMap < int , Type > ( ) ;
38
+
39
+ private static HashMap < Type , int > events_Id = new HashMap < Type , int > ( ) ;
40
+ public static void registerEvents ( )
41
+ {
42
+ events . put ( 0x01 , typeof ( AdminQueryEvent ) ) ; //packet 1
43
+ events . put ( 0x03 , typeof ( AuthCheckEvent ) ) ; //packet 1
44
+ events . put ( 0x04 , typeof ( BanEvent ) ) ; //packet 1
45
+ events . put ( 0x05 , typeof ( SetConfigEvent ) ) ; //packet 1
46
+ events . put ( 0x06 , typeof ( GeneratorFinishEvent ) ) ; //p \1
47
+ events . put ( 0x07 , typeof ( LCZDecontaminateEvent ) ) ; //p
48
+ events . put ( 0x08 , typeof ( SCP914ActivateEvent ) ) ; //p
49
+ events . put ( 0x09 , typeof ( ScpDeathAnnouncementEvent ) ) ; //p
50
+ events . put ( 0x0a , typeof ( SummonVehicleEvent ) ) ; //p
51
+ events . put ( 0x0b , typeof ( WarheadChangeLeverEvent ) ) ; //p 1
52
+ events . put ( 0x0c , typeof ( WarheadDetonateEvent ) ) ; //p
53
+ events . put ( 0x0d , typeof ( WarheadKeycardAccessEvent ) ) ; //p
54
+ events . put ( 0x0e , typeof ( WarheadStartEvent ) ) ; //p
55
+ events . put ( 0x0f , typeof ( Player079AddExpEvent ) ) ; //p
56
+ events . put ( 0x10 , typeof ( Player079CameraTeleportEvent ) ) ; //p
57
+ events . put ( 0x11 , typeof ( Player079DoorEvent ) ) ;
58
+ events . put ( 0x12 , typeof ( Player079ElevatorTeleportEvent ) ) ;
59
+ events . put ( 0x13 , typeof ( Player079LevelUpEvent ) ) ;
60
+ events . put ( 0x14 , typeof ( Player079LockdownEvent ) ) ;
61
+ events . put ( 0x15 , typeof ( Player079LockEvent ) ) ;
62
+ events . put ( 0x16 , typeof ( Player079StartSpeakerEvent ) ) ;
63
+ events . put ( 0x17 , typeof ( Player079StopSpeakerEvent ) ) ;
64
+ events . put ( 0x18 , typeof ( Player079TeslaGateEvent ) ) ;
65
+ events . put ( 0x19 , typeof ( Player079UnlockDoorsEvent ) ) ;
66
+ events . put ( 0x1a , typeof ( Player106CreatePortalEvent ) ) ;
67
+ events . put ( 0x1b , typeof ( Player106TeleportEvent ) ) ;
68
+ events . put ( 0x1c , typeof ( PlayerCallCommandEvent ) ) ;
69
+ events . put ( 0x1d , typeof ( PlayerCheckEscapeEvent ) ) ;
70
+ events . put ( 0x1e , typeof ( PlayerContain106Event ) ) ;
71
+ events . put ( 0x1f , typeof ( PlayerDeathEvent ) ) ;
72
+ events . put ( 0x20 , typeof ( PlayerDropItemEvent ) ) ;
73
+ events . put ( 0x21 , typeof ( PlayerElevatorUseEvent ) ) ;
74
+ events . put ( 0x22 , typeof ( PlayerGeneratorAccessEvent ) ) ;
75
+ events . put ( 0x23 , typeof ( PlayerGeneratorEjectTabletEvent ) ) ;
76
+ events . put ( 0x24 , typeof ( PlayerGeneratorInsertTabletEvent ) ) ;
77
+ events . put ( 0x25 , typeof ( PlayerGeneratorUnlockEvent ) ) ;
78
+ events . put ( 0x26 , typeof ( PlayerGrenadeExplosion ) ) ;
79
+ events . put ( 0x27 , typeof ( PlayerGrenadeHitPlayer ) ) ;
80
+ events . put ( 0x28 , typeof ( PlayerHandcuffedEvent ) ) ;
81
+ events . put ( 0x29 , typeof ( PlayerHurtEvent ) ) ;
82
+ events . put ( 0x2a , typeof ( PlayerInitialAssignTeamEvent ) ) ;
83
+ events . put ( 0x2b , typeof ( PlayerIntercomCooldownCheckEvent ) ) ;
84
+ events . put ( 0x2c , typeof ( PlayerIntercomEvent ) ) ;
85
+ events . put ( 0x2d , typeof ( PlayerJoinEvent ) ) ; // 1
86
+ events . put ( 0x2e , typeof ( PlayerLureEvent ) ) ;
87
+ events . put ( 0x2f , typeof ( PlayerMakeNoiseEvent ) ) ;
88
+ events . put ( 0x30 , typeof ( PlayerMedkitUseEvent ) ) ;
89
+ events . put ( 0x31 , typeof ( PlayerPickupItemEvent ) ) ; // 1
90
+ events . put ( 0x32 , typeof ( PlayerPickupItemLateEvent ) ) ; // 1
91
+ events . put ( 0x33 , typeof ( PlayerPocketDimensionEnterEvent ) ) ;
92
+ events . put ( 0x34 , typeof ( PlayerPocketDimensionExitEvent ) ) ;
93
+ events . put ( 0x35 , typeof ( PlayerRadioSwitchEvent ) ) ;
94
+ events . put ( 0x36 , typeof ( PlayerRecallZombieEvent ) ) ;
95
+ events . put ( 0x37 , typeof ( PlayerReloadEvent ) ) ;
96
+ events . put ( 0x38 , typeof ( PlayerSCP914ChangeKnobEvent ) ) ;
97
+ events . put ( 0x39 , typeof ( PlayerSetRoleEvent ) ) ;
98
+ events . put ( 0x3a , typeof ( PlayerShootEvent ) ) ;
99
+ events . put ( 0x3b , typeof ( PlayerSpawnEvent ) ) ;
100
+ events . put ( 0x3c , typeof ( PlayerSpawnRagdollEvent ) ) ;
101
+ events . put ( 0x3d , typeof ( PlayerThrowGrenadeEvent ) ) ; //
102
+ events . put ( 0x3e , typeof ( PlayerTriggerTeslaEvent ) ) ;
103
+ events . put ( 0x3f , typeof ( Scp096CooldownEndEvent ) ) ;
104
+ events . put ( 0x40 , typeof ( Scp096CooldownStartEvent ) ) ;
105
+ events . put ( 0x41 , typeof ( Scp096EnrageEvent ) ) ;
106
+ events . put ( 0x42 , typeof ( Scp096PanicEvent ) ) ;
107
+ events . put ( 0x43 , typeof ( ConnectEvent ) ) ;
108
+ events . put ( 0x44 , typeof ( DisconnectEvent ) ) ;
109
+ events . put ( 0x45 , typeof ( FixedUpdateEvent ) ) ;
110
+ events . put ( 0x46 , typeof ( LateDisconnectEvent ) ) ;
111
+ events . put ( 0x47 , typeof ( LateUpdateEvent ) ) ; //
112
+ events . put ( 0x48 , typeof ( RoundEndEvent ) ) ;
113
+ events . put ( 0x49 , typeof ( RoundRestartEvent ) ) ; //
114
+ events . put ( 0x4a , typeof ( RoundStartEvent ) ) ;
115
+ events . put ( 0x4b , typeof ( SceneChangedEvent ) ) ;
116
+ events . put ( 0x4c , typeof ( SetServerNameEvent ) ) ;
117
+ events . put ( 0x4d , typeof ( UpdateEvent ) ) ;
118
+ events . put ( 0x4e , typeof ( WaitingForPlayersEvent ) ) ;
119
+ events . put ( 0x4f , typeof ( DecideRespawnQueueEvent ) ) ;
120
+ events . put ( 0x50 , typeof ( SetNTFUnitNameEvent ) ) ;
121
+ events . put ( 0x51 , typeof ( SetSCPConfigEvent ) ) ;
122
+ events . put ( 0x52 , typeof ( TeamRespawnEvent ) ) ;
123
+ events_Id = events . keyToValue ( ) ;
124
+ }
125
+
126
+ public static int getId ( Type t )
127
+ {
128
+ return events_Id . get ( t ) ;
129
+ }
130
+
131
+ }
33
132
class ProxyHandler : Plugin
34
133
{
35
134
@@ -46,19 +145,15 @@ class ProxyHandler : Plugin
46
145
public override void Register ( )
47
146
{
48
147
handler = this ;
49
- AddEventHandlers ( new HandleAdmin ( ) ) ;
50
- AddEventHandlers ( new HandleAuthCheck ( ) ) ;
51
- AddEventHandlers ( new HandleBan ( ) ) ;
52
- AddEventHandlers ( new HandlePickupItemLate ( ) ) ;
53
- AddEventHandlers ( new HandlePlayer ( ) ) ;
54
- AddEventHandlers ( new HandlePickupItem ( ) ) ;
55
- AddEventHandlers ( new HandleSetConfig ( ) ) ;
148
+ RegisterEvents . registerEvents ( ) ;
149
+ AddEventHandlers ( new NewEventHandlers ( ) ) ;
56
150
reader . append ( "this.ip" , "127.0.0.1" )
57
151
. append ( "this.port" , "19938" )
58
152
. append ( "jsmod2.ip" , "127.0.0.1" )
59
153
. append ( "jsmod2.port" , "19935" )
60
154
. append ( "jsmod2.debug" , "false" )
61
155
. create ( Server . GetAppFolder ( ) + "/jsmod2.conf" ) ;
156
+
62
157
}
63
158
64
159
public override void OnEnable ( )
@@ -106,6 +201,16 @@ public void sendEventObject(Event e,int id,IdMapping mapping)
106
201
sendObject ( "{}" , id , mapping , true ) ;
107
202
}
108
203
204
+ public void sendEventObject ( Event e , IdMapping mapping )
205
+ {
206
+ sendEventObject ( e . GetType ( ) , mapping ) ;
207
+ }
208
+
209
+ public void sendEventObject ( Type t , IdMapping mapping )
210
+ {
211
+ sendEventObject ( null , RegisterEvents . getId ( t ) , mapping ) ;
212
+ }
213
+
109
214
public void sendObject ( string json1 , int id , IdMapping mapping , bool get )
110
215
{
111
216
sendObject ( new TcpClient ( ) , json1 , id , mapping , get ) ;
0 commit comments