/mcp/temp/src/minecraft_server/net/minecraft/src/NetServerHandler.java
Java | 818 lines | 761 code | 41 blank | 16 comment | 208 complexity | 59cceab7f0ebc48dcf893b0ae60a9096 MD5 | raw file
1// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
2// Jad home page: http://www.kpdus.com/jad.html
3// Decompiler options: packimports(3) braces deadcode fieldsfirst
4
5package net.minecraft.src;
6
7import java.io.PrintStream;
8import java.util.*;
9import java.util.logging.Logger;
10import net.minecraft.server.MinecraftServer;
11
12// Referenced classes of package net.minecraft.src:
13// NetHandler, ICommandListener, IntHashMap, NetworkManager,
14// EntityPlayerMP, Packet0KeepAlive, Packet255KickDisconnect, Packet3Chat,
15// ServerConfigurationManager, Packet10Flying, Entity, WorldServer,
16// AxisAlignedBB, ItemInWorldManager, Packet13PlayerLookMove, Packet14BlockDig,
17// WorldProvider, ChunkCoordinates, MathHelper, Packet53BlockChange,
18// InventoryPlayer, Packet15Place, ItemStack, Container,
19// Packet103SetSlot, Slot, Packet16BlockItemSwitch, ChatAllowedCharacters,
20// DamageSource, Packet18Animation, Packet19EntityAction, Packet7UseEntity,
21// Packet102WindowClick, Packet106Transaction, Packet108EnchantItem, Packet107CreativeSetSlot,
22// Item, EntityItem, Packet130UpdateSign, TileEntitySign,
23// Packet202PlayerAbilities, PlayerCapabilities, Packet, Packet9Respawn,
24// Packet101CloseWindow
25
26public class NetServerHandler extends NetHandler
27 implements ICommandListener
28{
29
30 public static Logger field_20_a = Logger.getLogger("Minecraft");
31 public NetworkManager field_19_b;
32 public boolean field_18_c;
33 private MinecraftServer field_17_d;
34 private EntityPlayerMP field_16_e;
35 private int field_35009_f;
36 private int field_27004_h;
37 private boolean field_22003_h;
38 private int field_35013_i;
39 private long field_35011_j;
40 private static Random field_35012_k = new Random();
41 private long field_35010_l;
42 private int field_45001_m;
43 private int field_48073_n;
44 private double field_9009_g;
45 private double field_9008_h;
46 private double field_9007_i;
47 private boolean field_9006_j;
48 private IntHashMap field_10_k;
49
50 public NetServerHandler(MinecraftServer p_i263_1_, NetworkManager p_i263_2_, EntityPlayerMP p_i263_3_)
51 {
52 field_18_c = false;
53 field_45001_m = 0;
54 field_48073_n = 0;
55 field_9006_j = true;
56 field_10_k = new IntHashMap();
57 field_17_d = p_i263_1_;
58 field_19_b = p_i263_2_;
59 p_i263_2_.func_754_a(this);
60 field_16_e = p_i263_3_;
61 p_i263_3_.field_20908_a = this;
62 }
63
64 public void func_42_a()
65 {
66 field_22003_h = false;
67 field_35009_f++;
68 field_19_b.func_747_a();
69 if((long)field_35009_f - field_35010_l > 20L)
70 {
71 field_35010_l = field_35009_f;
72 field_35011_j = System.nanoTime() / 0xf4240L;
73 field_35013_i = field_35012_k.nextInt();
74 func_39_b(new Packet0KeepAlive(field_35013_i));
75 }
76 if(field_45001_m > 0)
77 {
78 field_45001_m--;
79 }
80 if(field_48073_n > 0)
81 {
82 field_48073_n--;
83 }
84 }
85
86 public void func_43_c(String p_43_1_)
87 {
88 if(field_18_c)
89 {
90 return;
91 } else
92 {
93 field_16_e.func_30002_A();
94 func_39_b(new Packet255KickDisconnect(p_43_1_));
95 field_19_b.func_752_c();
96 field_17_d.field_6033_f.func_631_a(new Packet3Chat((new StringBuilder()).append("\247e").append(field_16_e.field_409_aq).append(" left the game.").toString()));
97 field_17_d.field_6033_f.func_616_c(field_16_e);
98 field_18_c = true;
99 return;
100 }
101 }
102
103 public void func_18_a(Packet10Flying p_18_1_)
104 {
105 WorldServer worldserver = field_17_d.func_28004_a(field_16_e.field_4110_as);
106 field_22003_h = true;
107 if(field_16_e.field_41032_j)
108 {
109 return;
110 }
111 if(!field_9006_j)
112 {
113 double d = p_18_1_.field_72_b - field_9008_h;
114 if(p_18_1_.field_73_a == field_9009_g && d * d < 0.01D && p_18_1_.field_71_c == field_9007_i)
115 {
116 field_9006_j = true;
117 }
118 }
119 if(field_9006_j)
120 {
121 if(field_16_e.field_327_g != null)
122 {
123 float f = field_16_e.field_316_r;
124 float f1 = field_16_e.field_315_s;
125 field_16_e.field_327_g.func_127_w();
126 double d2 = field_16_e.field_322_l;
127 double d4 = field_16_e.field_321_m;
128 double d6 = field_16_e.field_320_n;
129 double d8 = 0.0D;
130 double d9 = 0.0D;
131 if(p_18_1_.field_65_i)
132 {
133 f = p_18_1_.field_69_e;
134 f1 = p_18_1_.field_68_f;
135 }
136 if(p_18_1_.field_66_h && p_18_1_.field_72_b == -999D && p_18_1_.field_70_d == -999D)
137 {
138 if(p_18_1_.field_73_a > 1.0D || p_18_1_.field_71_c > 1.0D)
139 {
140 System.err.println((new StringBuilder()).append(field_16_e.field_409_aq).append(" was caught trying to crash the server with an invalid position.").toString());
141 func_43_c("Nope!");
142 return;
143 }
144 d8 = p_18_1_.field_73_a;
145 d9 = p_18_1_.field_71_c;
146 }
147 field_16_e.field_9086_A = p_18_1_.field_67_g;
148 field_16_e.func_22070_a(true);
149 field_16_e.func_88_c(d8, 0.0D, d9);
150 field_16_e.func_6095_b(d2, d4, d6, f, f1);
151 field_16_e.field_319_o = d8;
152 field_16_e.field_317_q = d9;
153 if(field_16_e.field_327_g != null)
154 {
155 worldserver.func_12017_b(field_16_e.field_327_g, true);
156 }
157 if(field_16_e.field_327_g != null)
158 {
159 field_16_e.field_327_g.func_127_w();
160 }
161 field_17_d.field_6033_f.func_613_b(field_16_e);
162 field_9009_g = field_16_e.field_322_l;
163 field_9008_h = field_16_e.field_321_m;
164 field_9007_i = field_16_e.field_320_n;
165 worldserver.func_520_e(field_16_e);
166 return;
167 }
168 if(field_16_e.func_22057_E())
169 {
170 field_16_e.func_22070_a(true);
171 field_16_e.func_6095_b(field_9009_g, field_9008_h, field_9007_i, field_16_e.field_316_r, field_16_e.field_315_s);
172 worldserver.func_520_e(field_16_e);
173 return;
174 }
175 double d1 = field_16_e.field_321_m;
176 field_9009_g = field_16_e.field_322_l;
177 field_9008_h = field_16_e.field_321_m;
178 field_9007_i = field_16_e.field_320_n;
179 double d3 = field_16_e.field_322_l;
180 double d5 = field_16_e.field_321_m;
181 double d7 = field_16_e.field_320_n;
182 float f2 = field_16_e.field_316_r;
183 float f3 = field_16_e.field_315_s;
184 if(p_18_1_.field_66_h && p_18_1_.field_72_b == -999D && p_18_1_.field_70_d == -999D)
185 {
186 p_18_1_.field_66_h = false;
187 }
188 if(p_18_1_.field_66_h)
189 {
190 d3 = p_18_1_.field_73_a;
191 d5 = p_18_1_.field_72_b;
192 d7 = p_18_1_.field_71_c;
193 double d10 = p_18_1_.field_70_d - p_18_1_.field_72_b;
194 if(!field_16_e.func_22057_E() && (d10 > 1.6499999999999999D || d10 < 0.10000000000000001D))
195 {
196 func_43_c("Illegal stance");
197 field_20_a.warning((new StringBuilder()).append(field_16_e.field_409_aq).append(" had an illegal stance: ").append(d10).toString());
198 return;
199 }
200 if(Math.abs(p_18_1_.field_73_a) > 32000000D || Math.abs(p_18_1_.field_71_c) > 32000000D)
201 {
202 func_43_c("Illegal position");
203 return;
204 }
205 }
206 if(p_18_1_.field_65_i)
207 {
208 f2 = p_18_1_.field_69_e;
209 f3 = p_18_1_.field_68_f;
210 }
211 field_16_e.func_22070_a(true);
212 field_16_e.field_9068_R = 0.0F;
213 field_16_e.func_6095_b(field_9009_g, field_9008_h, field_9007_i, f2, f3);
214 if(!field_9006_j)
215 {
216 return;
217 }
218 double d11 = d3 - field_16_e.field_322_l;
219 double d12 = d5 - field_16_e.field_321_m;
220 double d13 = d7 - field_16_e.field_320_n;
221 double d14 = d11 * d11 + d12 * d12 + d13 * d13;
222 if(d14 > 100D)
223 {
224 field_20_a.warning((new StringBuilder()).append(field_16_e.field_409_aq).append(" moved too quickly!").toString());
225 func_43_c("You moved too quickly :( (Hacking?)");
226 return;
227 }
228 float f4 = 0.0625F;
229 boolean flag = worldserver.func_481_a(field_16_e, field_16_e.field_312_v.func_711_b().func_694_e(f4, f4, f4)).size() == 0;
230 if(field_16_e.field_9086_A && !p_18_1_.field_67_g && d12 > 0.0D)
231 {
232 field_16_e.func_35198_b(0.2F);
233 }
234 field_16_e.func_88_c(d11, d12, d13);
235 field_16_e.field_9086_A = p_18_1_.field_67_g;
236 field_16_e.func_25045_g(d11, d12, d13);
237 double d15 = d12;
238 d11 = d3 - field_16_e.field_322_l;
239 d12 = d5 - field_16_e.field_321_m;
240 if(d12 > -0.5D || d12 < 0.5D)
241 {
242 d12 = 0.0D;
243 }
244 d13 = d7 - field_16_e.field_320_n;
245 d14 = d11 * d11 + d12 * d12 + d13 * d13;
246 boolean flag1 = false;
247 if(d14 > 0.0625D && !field_16_e.func_22057_E() && !field_16_e.field_425_ad.func_35698_b())
248 {
249 flag1 = true;
250 field_20_a.warning((new StringBuilder()).append(field_16_e.field_409_aq).append(" moved wrongly!").toString());
251 System.out.println((new StringBuilder()).append("Got position ").append(d3).append(", ").append(d5).append(", ").append(d7).toString());
252 System.out.println((new StringBuilder()).append("Expected ").append(field_16_e.field_322_l).append(", ").append(field_16_e.field_321_m).append(", ").append(field_16_e.field_320_n).toString());
253 }
254 field_16_e.func_6095_b(d3, d5, d7, f2, f3);
255 boolean flag2 = worldserver.func_481_a(field_16_e, field_16_e.field_312_v.func_711_b().func_694_e(f4, f4, f4)).size() == 0;
256 if(flag && (flag1 || !flag2) && !field_16_e.func_22057_E())
257 {
258 func_41_a(field_9009_g, field_9008_h, field_9007_i, f2, f3);
259 return;
260 }
261 AxisAlignedBB axisalignedbb = field_16_e.field_312_v.func_711_b().func_708_b(f4, f4, f4).func_700_a(0.0D, -0.55000000000000004D, 0.0D);
262 if(!field_17_d.field_27005_o && !field_16_e.field_425_ad.func_35698_b() && !worldserver.func_27069_b(axisalignedbb))
263 {
264 if(d15 >= -0.03125D)
265 {
266 field_27004_h++;
267 if(field_27004_h > 80)
268 {
269 field_20_a.warning((new StringBuilder()).append(field_16_e.field_409_aq).append(" was kicked for floating too long!").toString());
270 func_43_c("Flying is not enabled on this server");
271 return;
272 }
273 }
274 } else
275 {
276 field_27004_h = 0;
277 }
278 field_16_e.field_9086_A = p_18_1_.field_67_g;
279 field_17_d.field_6033_f.func_613_b(field_16_e);
280 field_16_e.func_9153_b(field_16_e.field_321_m - d1, p_18_1_.field_67_g);
281 }
282 }
283
284 public void func_41_a(double p_41_1_, double p_41_3_, double p_41_5_, float p_41_7_,
285 float p_41_8_)
286 {
287 field_9006_j = false;
288 field_9009_g = p_41_1_;
289 field_9008_h = p_41_3_;
290 field_9007_i = p_41_5_;
291 field_16_e.func_6095_b(p_41_1_, p_41_3_, p_41_5_, p_41_7_, p_41_8_);
292 field_16_e.field_20908_a.func_39_b(new Packet13PlayerLookMove(p_41_1_, p_41_3_ + 1.6200000047683716D, p_41_3_, p_41_5_, p_41_7_, p_41_8_, false));
293 }
294
295 public void func_26_a(Packet14BlockDig p_26_1_)
296 {
297 WorldServer worldserver = field_17_d.func_28004_a(field_16_e.field_4110_as);
298 if(p_26_1_.field_55_e == 4)
299 {
300 field_16_e.func_48347_R();
301 return;
302 }
303 if(p_26_1_.field_55_e == 5)
304 {
305 field_16_e.func_35196_E();
306 return;
307 }
308 boolean flag = worldserver.field_819_z = worldserver.field_4272_q.field_6165_g != 0 || field_17_d.field_6033_f.func_639_g(field_16_e.field_409_aq);
309 boolean flag1 = false;
310 if(p_26_1_.field_55_e == 0)
311 {
312 flag1 = true;
313 }
314 if(p_26_1_.field_55_e == 2)
315 {
316 flag1 = true;
317 }
318 int i = p_26_1_.field_54_a;
319 int j = p_26_1_.field_53_b;
320 int k = p_26_1_.field_57_c;
321 if(flag1)
322 {
323 double d = field_16_e.field_322_l - ((double)i + 0.5D);
324 double d1 = (field_16_e.field_321_m - ((double)j + 0.5D)) + 1.5D;
325 double d3 = field_16_e.field_320_n - ((double)k + 0.5D);
326 double d5 = d * d + d1 * d1 + d3 * d3;
327 if(d5 > 36D)
328 {
329 return;
330 }
331 if(j >= field_17_d.field_48081_t)
332 {
333 return;
334 }
335 }
336 ChunkCoordinates chunkcoordinates = worldserver.func_22078_l();
337 int l = MathHelper.func_35475_a(i - chunkcoordinates.field_22216_a);
338 int i1 = MathHelper.func_35475_a(k - chunkcoordinates.field_528_b);
339 if(l > i1)
340 {
341 i1 = l;
342 }
343 if(p_26_1_.field_55_e == 0)
344 {
345 if(i1 > 16 || flag)
346 {
347 field_16_e.field_425_ad.func_324_a(i, j, k, p_26_1_.field_56_d);
348 } else
349 {
350 field_16_e.field_20908_a.func_39_b(new Packet53BlockChange(i, j, k, worldserver));
351 }
352 } else
353 if(p_26_1_.field_55_e == 2)
354 {
355 field_16_e.field_425_ad.func_22045_b(i, j, k);
356 if(worldserver.func_444_a(i, j, k) != 0)
357 {
358 field_16_e.field_20908_a.func_39_b(new Packet53BlockChange(i, j, k, worldserver));
359 }
360 } else
361 if(p_26_1_.field_55_e == 3)
362 {
363 double d2 = field_16_e.field_322_l - ((double)i + 0.5D);
364 double d4 = field_16_e.field_321_m - ((double)j + 0.5D);
365 double d6 = field_16_e.field_320_n - ((double)k + 0.5D);
366 double d7 = d2 * d2 + d4 * d4 + d6 * d6;
367 if(d7 < 256D)
368 {
369 field_16_e.field_20908_a.func_39_b(new Packet53BlockChange(i, j, k, worldserver));
370 }
371 }
372 worldserver.field_819_z = false;
373 }
374
375 public void func_24_a(Packet15Place p_24_1_)
376 {
377 WorldServer worldserver = field_17_d.func_28004_a(field_16_e.field_4110_as);
378 ItemStack itemstack = field_16_e.field_416_aj.func_213_b();
379 boolean flag = false;
380 int i = p_24_1_.field_78_a;
381 int j = p_24_1_.field_77_b;
382 int k = p_24_1_.field_81_c;
383 int l = p_24_1_.field_80_d;
384 boolean flag1 = worldserver.field_819_z = worldserver.field_4272_q.field_6165_g != 0 || field_17_d.field_6033_f.func_639_g(field_16_e.field_409_aq);
385 if(p_24_1_.field_80_d == 255)
386 {
387 if(itemstack == null)
388 {
389 return;
390 }
391 field_16_e.field_425_ad.func_6154_a(field_16_e, worldserver, itemstack);
392 } else
393 if(p_24_1_.field_77_b < field_17_d.field_48081_t - 1 || p_24_1_.field_80_d != 1 && p_24_1_.field_77_b < field_17_d.field_48081_t)
394 {
395 ChunkCoordinates chunkcoordinates = worldserver.func_22078_l();
396 int i1 = MathHelper.func_35475_a(i - chunkcoordinates.field_22216_a);
397 int j1 = MathHelper.func_35475_a(k - chunkcoordinates.field_528_b);
398 if(i1 > j1)
399 {
400 j1 = i1;
401 }
402 if(field_9006_j && field_16_e.func_101_d((double)i + 0.5D, (double)j + 0.5D, (double)k + 0.5D) < 64D && (j1 > 16 || flag1))
403 {
404 field_16_e.field_425_ad.func_327_a(field_16_e, worldserver, itemstack, i, j, k, l);
405 }
406 flag = true;
407 } else
408 {
409 field_16_e.field_20908_a.func_39_b(new Packet3Chat((new StringBuilder()).append("\2477Height limit for building is ").append(field_17_d.field_48081_t).toString()));
410 flag = true;
411 }
412 if(flag)
413 {
414 field_16_e.field_20908_a.func_39_b(new Packet53BlockChange(i, j, k, worldserver));
415 if(l == 0)
416 {
417 j--;
418 }
419 if(l == 1)
420 {
421 j++;
422 }
423 if(l == 2)
424 {
425 k--;
426 }
427 if(l == 3)
428 {
429 k++;
430 }
431 if(l == 4)
432 {
433 i--;
434 }
435 if(l == 5)
436 {
437 i++;
438 }
439 field_16_e.field_20908_a.func_39_b(new Packet53BlockChange(i, j, k, worldserver));
440 }
441 itemstack = field_16_e.field_416_aj.func_213_b();
442 if(itemstack != null && itemstack.field_853_a == 0)
443 {
444 field_16_e.field_416_aj.field_496_a[field_16_e.field_416_aj.field_499_d] = null;
445 itemstack = null;
446 }
447 if(itemstack == null || itemstack.func_35614_l() == 0)
448 {
449 field_16_e.field_20064_am = true;
450 field_16_e.field_416_aj.field_496_a[field_16_e.field_416_aj.field_499_d] = ItemStack.func_20117_a(field_16_e.field_416_aj.field_496_a[field_16_e.field_416_aj.field_499_d]);
451 Slot slot = field_16_e.field_20052_ap.func_20127_a(field_16_e.field_416_aj, field_16_e.field_416_aj.field_499_d);
452 field_16_e.field_20052_ap.func_20125_a();
453 field_16_e.field_20064_am = false;
454 if(!ItemStack.func_20119_a(field_16_e.field_416_aj.func_213_b(), p_24_1_.field_79_e))
455 {
456 func_39_b(new Packet103SetSlot(field_16_e.field_20052_ap.field_20134_f, slot.field_20100_c, field_16_e.field_416_aj.func_213_b()));
457 }
458 }
459 worldserver.field_819_z = false;
460 }
461
462 public void func_6_a(String p_6_1_, Object p_6_2_[])
463 {
464 field_20_a.info((new StringBuilder()).append(field_16_e.field_409_aq).append(" lost connection: ").append(p_6_1_).toString());
465 field_17_d.field_6033_f.func_631_a(new Packet3Chat((new StringBuilder()).append("\247e").append(field_16_e.field_409_aq).append(" left the game.").toString()));
466 field_17_d.field_6033_f.func_616_c(field_16_e);
467 field_18_c = true;
468 }
469
470 public void func_6001_a(Packet p_6001_1_)
471 {
472 field_20_a.warning((new StringBuilder()).append(getClass()).append(" wasn't prepared to deal with a ").append(p_6001_1_.getClass()).toString());
473 func_43_c("Protocol error, unexpected packet");
474 }
475
476 public void func_39_b(Packet p_39_1_)
477 {
478 field_19_b.func_745_a(p_39_1_);
479 }
480
481 public void func_11_a(Packet16BlockItemSwitch p_11_1_)
482 {
483 if(p_11_1_.field_74_b < 0 || p_11_1_.field_74_b >= InventoryPlayer.func_25054_e())
484 {
485 field_20_a.warning((new StringBuilder()).append(field_16_e.field_409_aq).append(" tried to set an invalid carried item").toString());
486 return;
487 } else
488 {
489 field_16_e.field_416_aj.field_499_d = p_11_1_.field_74_b;
490 return;
491 }
492 }
493
494 public void func_23_a(Packet3Chat p_23_1_)
495 {
496 String s = p_23_1_.field_150_a;
497 if(s.length() > 100)
498 {
499 func_43_c("Chat message too long");
500 return;
501 }
502 s = s.trim();
503 for(int i = 0; i < s.length(); i++)
504 {
505 if(!ChatAllowedCharacters.func_48409_a(s.charAt(i)))
506 {
507 func_43_c("Illegal characters in chat");
508 return;
509 }
510 }
511
512 if(s.startsWith("/"))
513 {
514 func_4010_d(s);
515 } else
516 {
517 s = (new StringBuilder()).append("<").append(field_16_e.field_409_aq).append("> ").append(s).toString();
518 field_20_a.info(s);
519 field_17_d.field_6033_f.func_631_a(new Packet3Chat(s));
520 }
521 field_45001_m += 20;
522 if(field_45001_m > 200)
523 {
524 func_43_c("disconnect.spam");
525 }
526 }
527
528 private void func_4010_d(String p_4010_1_)
529 {
530 if(p_4010_1_.toLowerCase().startsWith("/me "))
531 {
532 p_4010_1_ = (new StringBuilder()).append("* ").append(field_16_e.field_409_aq).append(" ").append(p_4010_1_.substring(p_4010_1_.indexOf(" ")).trim()).toString();
533 field_20_a.info(p_4010_1_);
534 field_17_d.field_6033_f.func_631_a(new Packet3Chat(p_4010_1_));
535 } else
536 if(p_4010_1_.toLowerCase().startsWith("/kill"))
537 {
538 field_16_e.func_121_a(DamageSource.field_35096_j, 1000);
539 } else
540 if(p_4010_1_.toLowerCase().startsWith("/tell "))
541 {
542 String as[] = p_4010_1_.split(" ");
543 if(as.length >= 3)
544 {
545 p_4010_1_ = p_4010_1_.substring(p_4010_1_.indexOf(" ")).trim();
546 p_4010_1_ = p_4010_1_.substring(p_4010_1_.indexOf(" ")).trim();
547 p_4010_1_ = (new StringBuilder()).append("\2477").append(field_16_e.field_409_aq).append(" whispers ").append(p_4010_1_).toString();
548 field_20_a.info((new StringBuilder()).append(p_4010_1_).append(" to ").append(as[1]).toString());
549 if(!field_17_d.field_6033_f.func_621_a(as[1], new Packet3Chat(p_4010_1_)))
550 {
551 func_39_b(new Packet3Chat("\247cThere's no player by that name online."));
552 }
553 }
554 } else
555 if(field_17_d.field_6033_f.func_639_g(field_16_e.field_409_aq))
556 {
557 String s = p_4010_1_.substring(1);
558 field_20_a.info((new StringBuilder()).append(field_16_e.field_409_aq).append(" issued server command: ").append(s).toString());
559 field_17_d.func_6010_a(s, this);
560 } else
561 {
562 String s1 = p_4010_1_.substring(1);
563 field_20_a.info((new StringBuilder()).append(field_16_e.field_409_aq).append(" tried command: ").append(s1).toString());
564 }
565 }
566
567 public void func_3_a(Packet18Animation p_3_1_)
568 {
569 if(p_3_1_.field_119_b == 1)
570 {
571 field_16_e.func_168_z();
572 }
573 }
574
575 public void func_21001_a(Packet19EntityAction p_21001_1_)
576 {
577 if(p_21001_1_.field_21020_b == 1)
578 {
579 field_16_e.func_21043_b(true);
580 } else
581 if(p_21001_1_.field_21020_b == 2)
582 {
583 field_16_e.func_21043_b(false);
584 } else
585 if(p_21001_1_.field_21020_b == 4)
586 {
587 field_16_e.func_35146_g(true);
588 } else
589 if(p_21001_1_.field_21020_b == 5)
590 {
591 field_16_e.func_35146_g(false);
592 } else
593 if(p_21001_1_.field_21020_b == 3)
594 {
595 field_16_e.func_22062_a(false, true, true);
596 field_9006_j = false;
597 }
598 }
599
600 public void func_4009_a(Packet255KickDisconnect p_4009_1_)
601 {
602 field_19_b.func_753_a("disconnect.quitting", new Object[0]);
603 }
604
605 public int func_38_b()
606 {
607 return field_19_b.func_744_d();
608 }
609
610 public void func_2_b(String p_2_1_)
611 {
612 func_39_b(new Packet3Chat((new StringBuilder()).append("\2477").append(p_2_1_).toString()));
613 }
614
615 public String func_1_c()
616 {
617 return field_16_e.field_409_aq;
618 }
619
620 public void func_6006_a(Packet7UseEntity p_6006_1_)
621 {
622 WorldServer worldserver = field_17_d.func_28004_a(field_16_e.field_4110_as);
623 Entity entity = worldserver.func_6158_a(p_6006_1_.field_9018_b);
624 if(entity != null)
625 {
626 boolean flag = field_16_e.func_145_g(entity);
627 double d = 36D;
628 if(!flag)
629 {
630 d = 9D;
631 }
632 if(field_16_e.func_102_b(entity) < d)
633 {
634 if(p_6006_1_.field_9020_c == 0)
635 {
636 field_16_e.func_9145_g(entity);
637 } else
638 if(p_6006_1_.field_9020_c == 1)
639 {
640 field_16_e.func_9146_h(entity);
641 }
642 }
643 }
644 }
645
646 public void func_9002_a(Packet9Respawn p_9002_1_)
647 {
648 if(field_16_e.field_41032_j)
649 {
650 field_16_e = field_17_d.field_6033_f.func_9242_d(field_16_e, 0, true);
651 } else
652 {
653 if(field_16_e.func_40097_ai() > 0)
654 {
655 return;
656 }
657 field_16_e = field_17_d.field_6033_f.func_9242_d(field_16_e, 0, false);
658 }
659 }
660
661 public void func_20006_a(Packet101CloseWindow p_20006_1_)
662 {
663 field_16_e.func_20059_K();
664 }
665
666 public void func_20007_a(Packet102WindowClick p_20007_1_)
667 {
668 if(field_16_e.field_20052_ap.field_20134_f == p_20007_1_.field_20024_a && field_16_e.field_20052_ap.func_20124_c(field_16_e))
669 {
670 ItemStack itemstack = field_16_e.field_20052_ap.func_27085_a(p_20007_1_.field_20023_b, p_20007_1_.field_20027_c, p_20007_1_.field_27039_f, field_16_e);
671 if(ItemStack.func_20119_a(p_20007_1_.field_20025_e, itemstack))
672 {
673 field_16_e.field_20908_a.func_39_b(new Packet106Transaction(p_20007_1_.field_20024_a, p_20007_1_.field_20026_d, true));
674 field_16_e.field_20064_am = true;
675 field_16_e.field_20052_ap.func_20125_a();
676 field_16_e.func_20058_J();
677 field_16_e.field_20064_am = false;
678 } else
679 {
680 field_10_k.func_554_a(field_16_e.field_20052_ap.field_20134_f, Short.valueOf(p_20007_1_.field_20026_d));
681 field_16_e.field_20908_a.func_39_b(new Packet106Transaction(p_20007_1_.field_20024_a, p_20007_1_.field_20026_d, false));
682 field_16_e.field_20052_ap.func_20129_a(field_16_e, false);
683 ArrayList arraylist = new ArrayList();
684 for(int i = 0; i < field_16_e.field_20052_ap.field_20135_e.size(); i++)
685 {
686 arraylist.add(((Slot)field_16_e.field_20052_ap.field_20135_e.get(i)).func_20092_c());
687 }
688
689 field_16_e.func_20054_a(field_16_e.field_20052_ap, arraylist);
690 }
691 }
692 }
693
694 public void func_40001_a(Packet108EnchantItem p_40001_1_)
695 {
696 if(field_16_e.field_20052_ap.field_20134_f == p_40001_1_.field_40265_a && field_16_e.field_20052_ap.func_20124_c(field_16_e))
697 {
698 field_16_e.field_20052_ap.func_40331_a(field_16_e, p_40001_1_.field_40264_b);
699 field_16_e.field_20052_ap.func_20125_a();
700 }
701 }
702
703 public void func_35004_a(Packet107CreativeSetSlot p_35004_1_)
704 {
705 if(field_16_e.field_425_ad.func_35698_b())
706 {
707 boolean flag = p_35004_1_.field_35108_a < 0;
708 ItemStack itemstack = p_35004_1_.field_40263_b;
709 boolean flag1 = p_35004_1_.field_35108_a >= 36 && p_35004_1_.field_35108_a < 36 + InventoryPlayer.func_25054_e();
710 boolean flag2 = itemstack == null || itemstack.field_855_c < Item.field_176_c.length && itemstack.field_855_c >= 0 && Item.field_176_c[itemstack.field_855_c] != null;
711 boolean flag3 = itemstack == null || itemstack.func_21125_h() >= 0 && itemstack.func_21125_h() >= 0 && itemstack.field_853_a <= 64 && itemstack.field_853_a > 0;
712 if(flag1 && flag2 && flag3)
713 {
714 if(itemstack == null)
715 {
716 field_16_e.field_20053_ao.func_35498_a(p_35004_1_.field_35108_a, null);
717 } else
718 {
719 field_16_e.field_20053_ao.func_35498_a(p_35004_1_.field_35108_a, itemstack);
720 }
721 field_16_e.field_20053_ao.func_20129_a(field_16_e, true);
722 } else
723 if(flag && flag2 && flag3 && field_48073_n < 200)
724 {
725 field_48073_n += 20;
726 EntityItem entityitem = field_16_e.func_48348_b(itemstack);
727 if(entityitem != null)
728 {
729 entityitem.func_48316_k();
730 }
731 }
732 }
733 }
734
735 public void func_20008_a(Packet106Transaction p_20008_1_)
736 {
737 Short short1 = (Short)field_10_k.func_550_a(field_16_e.field_20052_ap.field_20134_f);
738 if(short1 != null && p_20008_1_.field_20033_b == short1.shortValue() && field_16_e.field_20052_ap.field_20134_f == p_20008_1_.field_20034_a && !field_16_e.field_20052_ap.func_20124_c(field_16_e))
739 {
740 field_16_e.field_20052_ap.func_20129_a(field_16_e, true);
741 }
742 }
743
744 public void func_20005_a(Packet130UpdateSign p_20005_1_)
745 {
746 WorldServer worldserver = field_17_d.func_28004_a(field_16_e.field_4110_as);
747 if(worldserver.func_530_e(p_20005_1_.field_20020_a, p_20005_1_.field_20019_b, p_20005_1_.field_20022_c))
748 {
749 TileEntity tileentity = worldserver.func_451_k(p_20005_1_.field_20020_a, p_20005_1_.field_20019_b, p_20005_1_.field_20022_c);
750 if(tileentity instanceof TileEntitySign)
751 {
752 TileEntitySign tileentitysign = (TileEntitySign)tileentity;
753 if(!tileentitysign.func_25052_a())
754 {
755 field_17_d.func_25002_c((new StringBuilder()).append("Player ").append(field_16_e.field_409_aq).append(" just tried to change non-editable sign").toString());
756 return;
757 }
758 }
759 for(int i = 0; i < 4; i++)
760 {
761 boolean flag = true;
762 if(p_20005_1_.field_20021_d[i].length() > 15)
763 {
764 flag = false;
765 } else
766 {
767 for(int l = 0; l < p_20005_1_.field_20021_d[i].length(); l++)
768 {
769 if(ChatAllowedCharacters.field_20162_a.indexOf(p_20005_1_.field_20021_d[i].charAt(l)) < 0)
770 {
771 flag = false;
772 }
773 }
774
775 }
776 if(!flag)
777 {
778 p_20005_1_.field_20021_d[i] = "!?";
779 }
780 }
781
782 if(tileentity instanceof TileEntitySign)
783 {
784 int j = p_20005_1_.field_20020_a;
785 int k = p_20005_1_.field_20019_b;
786 int i1 = p_20005_1_.field_20022_c;
787 TileEntitySign tileentitysign1 = (TileEntitySign)tileentity;
788 for(int j1 = 0; j1 < 4; j1++)
789 {
790 tileentitysign1.field_485_e[j1] = p_20005_1_.field_20021_d[j1];
791 }
792
793 tileentitysign1.func_183_c();
794 worldserver.func_521_f(j, k, i1);
795 }
796 }
797 }
798
799 public void func_35005_a(Packet0KeepAlive p_35005_1_)
800 {
801 if(p_35005_1_.field_35126_a == field_35013_i)
802 {
803 int i = (int)(System.nanoTime() / 0xf4240L - field_35011_j);
804 field_16_e.field_35219_i = (field_16_e.field_35219_i * 3 + i) / 4;
805 }
806 }
807
808 public boolean func_27003_c()
809 {
810 return true;
811 }
812
813 public void func_50003_a(Packet202PlayerAbilities p_50003_1_)
814 {
815 field_16_e.field_35214_K.field_35658_b = p_50003_1_.field_50005_b && field_16_e.field_35214_K.field_35659_c;
816 }
817
818}