1- using NuGet . Protocol ;
2- using On . OTAPI ;
3- using Rests ;
1+ using On . OTAPI ;
42using Terraria ;
53using TerrariaApi . Server ;
64using TShockAPI ;
@@ -105,15 +103,18 @@ internal static void OnGetData(GetDataEventArgs args)
105103 var type = args . MsgID ;
106104
107105 var player = TShock . Players [ args . Msg . whoAmI ] ;
108- if ( player == null || ! player . ConnectionAlive )
106+ if ( player is not { ConnectionAlive : true } )
109107 {
110108 args . Handled = true ;
111109 return ;
112110 }
113111
114- if ( ( player . State < 10 || player . Dead ) && ( int ) type > 12 && ( int ) type != 16 && ( int ) type != 42 &&
115- ( int ) type != 50 &&
116- ( int ) type != 38 && ( int ) type != 21 && ( int ) type != 22 )
112+ if ( ( player . State < ( int ) ConnectionState . Complete || player . Dead )
113+ && type > PacketTypes . PlayerSpawn
114+ && type != PacketTypes . PlayerMana
115+ && type != PacketTypes . PlayerBuff
116+ //&& type != PacketTypes.ItemDrop
117+ && type != PacketTypes . ItemOwner )
117118 {
118119 args . Handled = true ;
119120 return ;
@@ -123,7 +124,7 @@ internal static void OnGetData(GetDataEventArgs args)
123124 {
124125 if ( type == PacketTypes . ContinueConnecting2 )
125126 {
126- player . DataWhenJoined = new PlayerData ( true ) ;
127+ player . DataWhenJoined = new PlayerData ( ) ;
127128 player . DataWhenJoined . CopyCharacter ( player ) ;
128129 args . Handled = true ;
129130 }
@@ -136,24 +137,23 @@ internal static void OnGetData(GetDataEventArgs args)
136137
137138 internal static bool CheckWhite ( string name , int code )
138139 {
139- var playerList = TSPlayer . FindByNameOrID ( "tsn:" + name ) ;
140+ var player = TShock . Players . FirstOrDefault ( x => x ? . Name == name ) ;
140141
141142 var groupId = Config . Settings . GroupNumber . ToString ( ) ;
142143 if ( Config . Settings . GroupNumber == 0 )
143144 {
144145 groupId = "<未配置>" ;
145146 }
146- if ( playerList . Count == 0 )
147+ if ( player == null )
147148 {
148149 return false ;
149150 }
150151
151- var plr = playerList [ 0 ] ;
152152 if ( string . IsNullOrEmpty ( name ) )
153153 {
154- TShock . Log . ConsoleInfo ( $ "[Cai白名单]玩家[{ name } ](IP: { plr . IP } )版本可能过低...") ;
155- plr . Disconnect ( "你的游戏版本可能过低,\n " +
156- "请使用Terraria1.4.4+游玩" ) ;
154+ TShock . Log . ConsoleInfo ( $ "[Cai白名单]玩家[{ name } ](IP: { player . IP } )版本可能过低...") ;
155+ player . Disconnect ( "你的游戏版本可能过低,\n " +
156+ "请使用Terraria1.4.4+游玩" ) ;
157157 return false ;
158158 }
159159
@@ -163,23 +163,23 @@ internal static bool CheckWhite(string name, int code)
163163 {
164164 case 200 :
165165 {
166- TShock . Log . ConsoleInfo ( $ "[Cai白名单]玩家[{ name } ](IP: { plr . IP } )已通过白名单验证...") ;
166+ TShock . Log . ConsoleInfo ( $ "[Cai白名单]玩家[{ name } ](IP: { player . IP } )已通过白名单验证...") ;
167167 break ;
168168 }
169169 case 404 :
170170 {
171- TShock . Log . ConsoleInfo ( $ "[Cai白名单]玩家[{ name } ](IP: { plr . IP } )没有添加白名单...") ;
172- plr . SilentKickInProgress = true ;
173- plr . Disconnect ( $ "[Cai白名单]没有添加白名单!\n " +
174- $ "请在群{ groupId } 内发送'/添加白名单 角色名字'") ;
171+ TShock . Log . ConsoleInfo ( $ "[Cai白名单]玩家[{ name } ](IP: { player . IP } )没有添加白名单...") ;
172+ player . SilentKickInProgress = true ;
173+ player . Disconnect ( $ "[Cai白名单]没有添加白名单!\n " +
174+ $ "请在群{ groupId } 内发送'/添加白名单 角色名字'") ;
175175 return false ;
176176 }
177177 case 403 :
178178 {
179- TShock . Log . ConsoleInfo ( $ "[Cai白名单]玩家[{ name } ](IP: { plr . IP } )被屏蔽,处于CaiBot云黑名单中...") ;
180- plr . SilentKickInProgress = true ;
181- plr . Disconnect ( "[Cai白名单]你已被服务器屏蔽,\n " +
182- "你处于本群黑名单中!" ) ;
179+ TShock . Log . ConsoleInfo ( $ "[Cai白名单]玩家[{ name } ](IP: { player . IP } )被屏蔽,处于CaiBot云黑名单中...") ;
180+ player . SilentKickInProgress = true ;
181+ player . Disconnect ( "[Cai白名单]你已被服务器屏蔽,\n " +
182+ "你处于本群黑名单中!" ) ;
183183 return false ;
184184 }
185185 // case 401:
@@ -192,30 +192,30 @@ internal static bool CheckWhite(string name, int code)
192192 // }
193193 case 405 :
194194 {
195- TShock . Log . ConsoleInfo ( $ "[Cai白名单]玩家[{ name } ](IP: { plr . IP } )使用未授权的设备...") ;
196- plr . SilentKickInProgress = true ;
197- plr . Disconnect ( $ "[Cai白名单]未授权设备!\n " +
198- $ "在群{ groupId } 内发送'/登录'\n " +
199- $ "以批准此设备登录") ;
195+ TShock . Log . ConsoleInfo ( $ "[Cai白名单]玩家[{ name } ](IP: { player . IP } )使用未授权的设备...") ;
196+ player . SilentKickInProgress = true ;
197+ player . Disconnect ( $ "[Cai白名单]未授权设备!\n " +
198+ $ "在群{ groupId } 内发送'/登录'\n " +
199+ $ "以批准此设备登录") ;
200200
201201 return false ;
202202 }
203203 }
204204 }
205205 catch ( Exception ex )
206206 {
207- TShock . Log . ConsoleInfo ( $ "[Cai白名单]玩家[{ name } ](IP: { plr . IP } )验证白名单时出现错误...\n " +
207+ TShock . Log . ConsoleInfo ( $ "[Cai白名单]玩家[{ name } ](IP: { player . IP } )验证白名单时出现错误...\n " +
208208 $ "{ ex } ") ;
209- plr . SilentKickInProgress = true ;
210- plr . Disconnect ( $ "[Cai白名单]服务器发生错误无法处理该请求!\n " +
211- $ "请尝试重新加入游戏或者联系服务器群{ groupId } 管理员") ;
209+ player . SilentKickInProgress = true ;
210+ player . Disconnect ( $ "[Cai白名单]服务器发生错误无法处理该请求!\n " +
211+ $ "请尝试重新加入游戏或者联系服务器群{ groupId } 管理员") ;
212212 return false ;
213213 }
214214
215215 return true ;
216216 }
217217
218- internal static bool HandleLogin ( TSPlayer player )
218+ internal static void HandleLogin ( TSPlayer player )
219219 {
220220 var password = Guid . NewGuid ( ) . ToString ( ) ;
221221 var account = TShock . UserAccounts . GetUserAccountByName ( player . Name ) ;
@@ -266,7 +266,7 @@ internal static bool HandleLogin(TSPlayer player)
266266 TShock . Log . ConsoleInfo ( player . Name + "成功验证登录。" ) ;
267267 TShock . UserAccounts . SetUserAccountUUID ( account , player . UUID ) ;
268268 PlayerHooks . OnPlayerPostLogin ( player ) ;
269- return true ;
269+ return ;
270270 }
271271
272272 if ( player . Name != TSServerPlayer . AccountName )
@@ -278,7 +278,7 @@ internal static bool HandleLogin(TSPlayer player)
278278 }
279279 catch ( ArgumentOutOfRangeException )
280280 {
281- return true ;
281+ return ;
282282 }
283283
284284 player . SendSuccessMessage ( "[CaiBotLite]账户{0}注册成功。" , account . Name ) ;
@@ -328,11 +328,10 @@ internal static bool HandleLogin(TSPlayer player)
328328 TShock . Log . ConsoleInfo ( player . Name + "成功验证登录." ) ;
329329 TShock . UserAccounts . SetUserAccountUUID ( account , player . UUID ) ;
330330 PlayerHooks . OnPlayerPostLogin ( player ) ;
331- return true ;
331+ return ;
332332 }
333333
334334 player . SilentKickInProgress = true ;
335335 player . Disconnect ( "[CaiBotLite]此名字不可用!" ) ;
336- return true ;
337336 }
338337}
0 commit comments