PageRenderTime 59ms CodeModel.GetById 22ms app.highlight 30ms RepoModel.GetById 1ms app.codeStats 0ms

/mcp/temp/src/minecraft_server/net/minecraft/src/NetServerHandler.java

https://bitbucket.org/vkorolik/twoleanfour-client
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}