PageRenderTime 42ms CodeModel.GetById 15ms app.highlight 23ms RepoModel.GetById 0ms app.codeStats 1ms

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

https://bitbucket.org/vkorolik/twoleanfour-client-autotool
Java | 486 lines | 457 code | 21 blank | 8 comment | 94 complexity | 1b5e7a85371a80259495bf898d084caf 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.util.*;
  8import java.util.logging.Logger;
  9import net.minecraft.server.MinecraftServer;
 10
 11// Referenced classes of package net.minecraft.src:
 12//            ServerCommand, ICommandListener, ServerConfigurationManager, WorldServer, 
 13//            EntityPlayerMP, NetServerHandler, Item, ItemStack, 
 14//            WorldSettings, ItemInWorldManager, Packet70Bed, Packet3Chat, 
 15//            PropertyManager
 16
 17public class ConsoleCommandHandler
 18{
 19
 20    private static Logger field_22117_a = Logger.getLogger("Minecraft");
 21    private MinecraftServer field_22116_b;
 22
 23    public ConsoleCommandHandler(MinecraftServer p_i461_1_)
 24    {
 25        field_22116_b = p_i461_1_;
 26    }
 27
 28    public synchronized void func_22114_a(ServerCommand p_22114_1_)
 29    {
 30        String s = p_22114_1_.field_1060_a;
 31        String as[] = s.split(" ");
 32        String s1 = as[0];
 33        String s2 = s.substring(s1.length()).trim();
 34        ICommandListener icommandlistener = p_22114_1_.field_1059_b;
 35        String s3 = icommandlistener.func_1_c();
 36        ServerConfigurationManager serverconfigurationmanager = field_22116_b.field_6033_f;
 37        if(s1.equalsIgnoreCase("help") || s1.equalsIgnoreCase("?"))
 38        {
 39            func_22111_a(icommandlistener);
 40        } else
 41        if(s1.equalsIgnoreCase("list"))
 42        {
 43            icommandlistener.func_2_b((new StringBuilder()).append("Connected players: ").append(serverconfigurationmanager.func_633_c()).toString());
 44        } else
 45        if(s1.equalsIgnoreCase("stop"))
 46        {
 47            func_22115_a(s3, "Stopping the server..");
 48            field_22116_b.func_6016_a();
 49        } else
 50        if(s1.equalsIgnoreCase("save-all"))
 51        {
 52            func_22115_a(s3, "Forcing save..");
 53            if(serverconfigurationmanager != null)
 54            {
 55                serverconfigurationmanager.func_617_d();
 56            }
 57            for(int i = 0; i < field_22116_b.field_6034_e.length; i++)
 58            {
 59                WorldServer worldserver = field_22116_b.field_6034_e[i];
 60                boolean flag = worldserver.field_816_A;
 61                worldserver.field_816_A = false;
 62                worldserver.func_485_a(true, null);
 63                worldserver.field_816_A = flag;
 64            }
 65
 66            func_22115_a(s3, "Save complete.");
 67        } else
 68        if(s1.equalsIgnoreCase("save-off"))
 69        {
 70            func_22115_a(s3, "Disabling level saving..");
 71            for(int j = 0; j < field_22116_b.field_6034_e.length; j++)
 72            {
 73                WorldServer worldserver1 = field_22116_b.field_6034_e[j];
 74                worldserver1.field_816_A = true;
 75            }
 76
 77        } else
 78        if(s1.equalsIgnoreCase("save-on"))
 79        {
 80            func_22115_a(s3, "Enabling level saving..");
 81            for(int k = 0; k < field_22116_b.field_6034_e.length; k++)
 82            {
 83                WorldServer worldserver2 = field_22116_b.field_6034_e[k];
 84                worldserver2.field_816_A = false;
 85            }
 86
 87        } else
 88        if(s1.equalsIgnoreCase("op"))
 89        {
 90            serverconfigurationmanager.func_35479_e(s2);
 91            func_22115_a(s3, (new StringBuilder()).append("Opping ").append(s2).toString());
 92            serverconfigurationmanager.func_628_a(s2, "\247eYou are now op!");
 93        } else
 94        if(s1.equalsIgnoreCase("deop"))
 95        {
 96            String s4 = s2;
 97            serverconfigurationmanager.func_35478_f(s4);
 98            serverconfigurationmanager.func_628_a(s4, "\247eYou are no longer op!");
 99            func_22115_a(s3, (new StringBuilder()).append("De-opping ").append(s4).toString());
100        } else
101        if(s1.equalsIgnoreCase("ban-ip"))
102        {
103            String s5 = s2;
104            serverconfigurationmanager.func_22162_c(s5);
105            func_22115_a(s3, (new StringBuilder()).append("Banning ip ").append(s5).toString());
106        } else
107        if(s1.equalsIgnoreCase("pardon-ip"))
108        {
109            String s6 = s2;
110            serverconfigurationmanager.func_22163_d(s6);
111            func_22115_a(s3, (new StringBuilder()).append("Pardoning ip ").append(s6).toString());
112        } else
113        if(s1.equalsIgnoreCase("ban"))
114        {
115            String s7 = s2;
116            serverconfigurationmanager.func_22159_a(s7);
117            func_22115_a(s3, (new StringBuilder()).append("Banning ").append(s7).toString());
118            EntityPlayerMP entityplayermp1 = serverconfigurationmanager.func_620_h(s7);
119            if(entityplayermp1 != null)
120            {
121                entityplayermp1.field_20908_a.func_43_c("Banned by admin");
122            }
123        } else
124        if(s1.equalsIgnoreCase("pardon"))
125        {
126            String s8 = s2;
127            serverconfigurationmanager.func_22161_b(s8);
128            func_22115_a(s3, (new StringBuilder()).append("Pardoning ").append(s8).toString());
129        } else
130        if(s1.equalsIgnoreCase("kick"))
131        {
132            String s9 = s2;
133            EntityPlayerMP entityplayermp2 = null;
134            for(int i1 = 0; i1 < serverconfigurationmanager.field_924_b.size(); i1++)
135            {
136                EntityPlayerMP entityplayermp7 = (EntityPlayerMP)serverconfigurationmanager.field_924_b.get(i1);
137                if(entityplayermp7.field_409_aq.equalsIgnoreCase(s9))
138                {
139                    entityplayermp2 = entityplayermp7;
140                }
141            }
142
143            if(entityplayermp2 != null)
144            {
145                entityplayermp2.field_20908_a.func_43_c("Kicked by admin");
146                func_22115_a(s3, (new StringBuilder()).append("Kicking ").append(entityplayermp2.field_409_aq).toString());
147            } else
148            {
149                icommandlistener.func_2_b((new StringBuilder()).append("Can't find user ").append(s9).append(". No kick.").toString());
150            }
151        } else
152        if(s1.equalsIgnoreCase("tp"))
153        {
154            if(as.length == 3)
155            {
156                EntityPlayerMP entityplayermp = serverconfigurationmanager.func_620_h(as[1]);
157                EntityPlayerMP entityplayermp3 = serverconfigurationmanager.func_620_h(as[2]);
158                if(entityplayermp == null)
159                {
160                    icommandlistener.func_2_b((new StringBuilder()).append("Can't find user ").append(as[1]).append(". No tp.").toString());
161                } else
162                if(entityplayermp3 == null)
163                {
164                    icommandlistener.func_2_b((new StringBuilder()).append("Can't find user ").append(as[2]).append(". No tp.").toString());
165                } else
166                if(entityplayermp.field_4110_as != entityplayermp3.field_4110_as)
167                {
168                    icommandlistener.func_2_b((new StringBuilder()).append("User ").append(as[1]).append(" and ").append(as[2]).append(" are in different dimensions. No tp.").toString());
169                } else
170                {
171                    entityplayermp.field_20908_a.func_41_a(entityplayermp3.field_322_l, entityplayermp3.field_321_m, entityplayermp3.field_320_n, entityplayermp3.field_316_r, entityplayermp3.field_315_s);
172                    func_22115_a(s3, (new StringBuilder()).append("Teleporting ").append(as[1]).append(" to ").append(as[2]).append(".").toString());
173                }
174            } else
175            {
176                icommandlistener.func_2_b("Syntax error, please provide a source and a target.");
177            }
178        } else
179        if(s1.equalsIgnoreCase("give"))
180        {
181            if(as.length != 3 && as.length != 4 && as.length != 5)
182            {
183                return;
184            }
185            String s10 = as[1];
186            EntityPlayerMP entityplayermp4 = serverconfigurationmanager.func_620_h(s10);
187            if(entityplayermp4 != null)
188            {
189                try
190                {
191                    int j1 = Integer.parseInt(as[2]);
192                    if(Item.field_176_c[j1] != null)
193                    {
194                        func_22115_a(s3, (new StringBuilder()).append("Giving ").append(entityplayermp4.field_409_aq).append(" some ").append(j1).toString());
195                        int k2 = 1;
196                        int l2 = 0;
197                        if(as.length > 3)
198                        {
199                            k2 = func_22112_a(as[3], 1);
200                        }
201                        if(as.length > 4)
202                        {
203                            l2 = func_22112_a(as[4], 1);
204                        }
205                        if(k2 < 1)
206                        {
207                            k2 = 1;
208                        }
209                        if(k2 > 64)
210                        {
211                            k2 = 64;
212                        }
213                        entityplayermp4.func_48348_b(new ItemStack(j1, k2, l2));
214                    } else
215                    {
216                        icommandlistener.func_2_b((new StringBuilder()).append("There's no item with id ").append(j1).toString());
217                    }
218                }
219                catch(NumberFormatException numberformatexception1)
220                {
221                    icommandlistener.func_2_b((new StringBuilder()).append("There's no item with id ").append(as[2]).toString());
222                }
223            } else
224            {
225                icommandlistener.func_2_b((new StringBuilder()).append("Can't find user ").append(s10).toString());
226            }
227        } else
228        if(s1.equalsIgnoreCase("xp"))
229        {
230            if(as.length != 3)
231            {
232                return;
233            }
234            String s11 = as[1];
235            EntityPlayerMP entityplayermp5 = serverconfigurationmanager.func_620_h(s11);
236            if(entityplayermp5 != null)
237            {
238                try
239                {
240                    int k1 = Integer.parseInt(as[2]);
241                    k1 = k1 <= 5000 ? k1 : 5000;
242                    func_22115_a(s3, (new StringBuilder()).append("Giving ").append(k1).append(" orbs to ").append(entityplayermp5.field_409_aq).toString());
243                    entityplayermp5.func_35195_d(k1);
244                }
245                catch(NumberFormatException numberformatexception2)
246                {
247                    icommandlistener.func_2_b((new StringBuilder()).append("Invalid orb count: ").append(as[2]).toString());
248                }
249            } else
250            {
251                icommandlistener.func_2_b((new StringBuilder()).append("Can't find user ").append(s11).toString());
252            }
253        } else
254        if(s1.equalsIgnoreCase("gamemode"))
255        {
256            if(as.length != 3)
257            {
258                return;
259            }
260            String s12 = as[1];
261            EntityPlayerMP entityplayermp6 = serverconfigurationmanager.func_620_h(s12);
262            if(entityplayermp6 != null)
263            {
264                try
265                {
266                    int l1 = Integer.parseInt(as[2]);
267                    l1 = WorldSettings.func_35037_a(l1);
268                    if(entityplayermp6.field_425_ad.func_35697_a() != l1)
269                    {
270                        func_22115_a(s3, (new StringBuilder()).append("Setting ").append(entityplayermp6.field_409_aq).append(" to game mode ").append(l1).toString());
271                        entityplayermp6.field_425_ad.func_35696_a(l1);
272                        entityplayermp6.field_20908_a.func_39_b(new Packet70Bed(3, l1));
273                    } else
274                    {
275                        func_22115_a(s3, (new StringBuilder()).append(entityplayermp6.field_409_aq).append(" already has game mode ").append(l1).toString());
276                    }
277                }
278                catch(NumberFormatException numberformatexception3)
279                {
280                    icommandlistener.func_2_b((new StringBuilder()).append("There's no game mode with id ").append(as[2]).toString());
281                }
282            } else
283            {
284                icommandlistener.func_2_b((new StringBuilder()).append("Can't find user ").append(s12).toString());
285            }
286        } else
287        if(s1.equalsIgnoreCase("time"))
288        {
289            if(as.length != 3)
290            {
291                return;
292            }
293            String s13 = as[1];
294            try
295            {
296                int l = Integer.parseInt(as[2]);
297                if("add".equalsIgnoreCase(s13))
298                {
299                    for(int i2 = 0; i2 < field_22116_b.field_6034_e.length; i2++)
300                    {
301                        WorldServer worldserver3 = field_22116_b.field_6034_e[i2];
302                        worldserver3.func_32005_b(worldserver3.func_22080_k() + (long)l);
303                    }
304
305                    func_22115_a(s3, (new StringBuilder()).append("Added ").append(l).append(" to time").toString());
306                } else
307                if("set".equalsIgnoreCase(s13))
308                {
309                    for(int j2 = 0; j2 < field_22116_b.field_6034_e.length; j2++)
310                    {
311                        WorldServer worldserver4 = field_22116_b.field_6034_e[j2];
312                        worldserver4.func_32005_b(l);
313                    }
314
315                    func_22115_a(s3, (new StringBuilder()).append("Set time to ").append(l).toString());
316                } else
317                {
318                    icommandlistener.func_2_b("Unknown method, use either \"add\" or \"set\"");
319                }
320            }
321            catch(NumberFormatException numberformatexception)
322            {
323                icommandlistener.func_2_b((new StringBuilder()).append("Unable to convert time value, ").append(as[2]).toString());
324            }
325        } else
326        if(s1.equalsIgnoreCase("say") && s2.length() > 0)
327        {
328            field_22117_a.info((new StringBuilder()).append("[").append(s3).append("] ").append(s2).toString());
329            serverconfigurationmanager.func_631_a(new Packet3Chat((new StringBuilder()).append("\247d[Server] ").append(s2).toString()));
330        } else
331        if(s1.equalsIgnoreCase("tell"))
332        {
333            if(as.length >= 3)
334            {
335                s = s.substring(s.indexOf(" ")).trim();
336                s = s.substring(s.indexOf(" ")).trim();
337                field_22117_a.info((new StringBuilder()).append("[").append(s3).append("->").append(as[1]).append("] ").append(s).toString());
338                s = (new StringBuilder()).append("\2477").append(s3).append(" whispers ").append(s).toString();
339                field_22117_a.info(s);
340                if(!serverconfigurationmanager.func_621_a(as[1], new Packet3Chat(s)))
341                {
342                    icommandlistener.func_2_b("There's no player by that name online.");
343                }
344            }
345        } else
346        if(s1.equalsIgnoreCase("whitelist"))
347        {
348            func_22113_a(s3, s, icommandlistener);
349        } else
350        if(s1.equalsIgnoreCase("toggledownfall"))
351        {
352            field_22116_b.field_6034_e[0].func_40218_j();
353            icommandlistener.func_2_b("Toggling rain and snow, hold on...");
354        } else
355        if(s1.equalsIgnoreCase("banlist"))
356        {
357            if(as.length == 2)
358            {
359                if(as[1].equals("ips"))
360                {
361                    icommandlistener.func_2_b((new StringBuilder()).append("IP Ban list:").append(func_40648_a(field_22116_b.func_40026_q(), ", ")).toString());
362                }
363            } else
364            {
365                icommandlistener.func_2_b((new StringBuilder()).append("Ban list:").append(func_40648_a(field_22116_b.func_40025_r(), ", ")).toString());
366            }
367        } else
368        {
369            field_22117_a.info("Unknown console command. Type \"help\" for help.");
370        }
371    }
372
373    private void func_22113_a(String p_22113_1_, String p_22113_2_, ICommandListener p_22113_3_)
374    {
375        String as[] = p_22113_2_.split(" ");
376        if(as.length < 2)
377        {
378            return;
379        }
380        String s = as[1].toLowerCase();
381        if("on".equals(s))
382        {
383            func_22115_a(p_22113_1_, "Turned on white-listing");
384            field_22116_b.field_6035_d.func_22118_b("white-list", true);
385        } else
386        if("off".equals(s))
387        {
388            func_22115_a(p_22113_1_, "Turned off white-listing");
389            field_22116_b.field_6035_d.func_22118_b("white-list", false);
390        } else
391        if("list".equals(s))
392        {
393            Set set = field_22116_b.field_6033_f.func_22167_e();
394            String s3 = "";
395            for(Iterator iterator = set.iterator(); iterator.hasNext();)
396            {
397                String s4 = (String)iterator.next();
398                s3 = (new StringBuilder()).append(s3).append(s4).append(" ").toString();
399            }
400
401            p_22113_3_.func_2_b((new StringBuilder()).append("White-listed players: ").append(s3).toString());
402        } else
403        if("add".equals(s) && as.length == 3)
404        {
405            String s1 = as[2].toLowerCase();
406            field_22116_b.field_6033_f.func_22169_k(s1);
407            func_22115_a(p_22113_1_, (new StringBuilder()).append("Added ").append(s1).append(" to white-list").toString());
408        } else
409        if("remove".equals(s) && as.length == 3)
410        {
411            String s2 = as[2].toLowerCase();
412            field_22116_b.field_6033_f.func_22170_l(s2);
413            func_22115_a(p_22113_1_, (new StringBuilder()).append("Removed ").append(s2).append(" from white-list").toString());
414        } else
415        if("reload".equals(s))
416        {
417            field_22116_b.field_6033_f.func_22171_f();
418            func_22115_a(p_22113_1_, "Reloaded white-list from file");
419        }
420    }
421
422    private void func_22111_a(ICommandListener p_22111_1_)
423    {
424        p_22111_1_.func_2_b("To run the server without a gui, start it like this:");
425        p_22111_1_.func_2_b("   java -Xmx1024M -Xms1024M -jar minecraft_server.jar nogui");
426        p_22111_1_.func_2_b("Console commands:");
427        p_22111_1_.func_2_b("   help  or  ?               shows this message");
428        p_22111_1_.func_2_b("   kick <player>             removes a player from the server");
429        p_22111_1_.func_2_b("   ban <player>              bans a player from the server");
430        p_22111_1_.func_2_b("   pardon <player>           pardons a banned player so that they can connect again");
431        p_22111_1_.func_2_b("   ban-ip <ip>               bans an IP address from the server");
432        p_22111_1_.func_2_b("   pardon-ip <ip>            pardons a banned IP address so that they can connect again");
433        p_22111_1_.func_2_b("   op <player>               turns a player into an op");
434        p_22111_1_.func_2_b("   deop <player>             removes op status from a player");
435        p_22111_1_.func_2_b("   tp <player1> <player2>    moves one player to the same location as another player");
436        p_22111_1_.func_2_b("   give <player> <id> [num]  gives a player a resource");
437        p_22111_1_.func_2_b("   tell <player> <message>   sends a private message to a player");
438        p_22111_1_.func_2_b("   stop                      gracefully stops the server");
439        p_22111_1_.func_2_b("   save-all                  forces a server-wide level save");
440        p_22111_1_.func_2_b("   save-off                  disables terrain saving (useful for backup scripts)");
441        p_22111_1_.func_2_b("   save-on                   re-enables terrain saving");
442        p_22111_1_.func_2_b("   list                      lists all currently connected players");
443        p_22111_1_.func_2_b("   say <message>             broadcasts a message to all players");
444        p_22111_1_.func_2_b("   time <add|set> <amount>   adds to or sets the world time (0-24000)");
445        p_22111_1_.func_2_b("   gamemode <player> <mode>  sets player's game mode (0 or 1)");
446        p_22111_1_.func_2_b("   toggledownfall            toggles rain on or off");
447        p_22111_1_.func_2_b("   xp <player> <amount>      gives the player the amount of xp (0-5000)");
448    }
449
450    private void func_22115_a(String p_22115_1_, String p_22115_2_)
451    {
452        String s = (new StringBuilder()).append(p_22115_1_).append(": ").append(p_22115_2_).toString();
453        field_22116_b.field_6033_f.func_630_i((new StringBuilder()).append("\2477(").append(s).append(")").toString());
454        field_22117_a.info(s);
455    }
456
457    private int func_22112_a(String p_22112_1_, int p_22112_2_)
458    {
459        try
460        {
461            return Integer.parseInt(p_22112_1_);
462        }
463        catch(NumberFormatException numberformatexception)
464        {
465            return p_22112_2_;
466        }
467    }
468
469    private String func_40648_a(String p_40648_1_[], String p_40648_2_)
470    {
471        int i = p_40648_1_.length;
472        if(0 == i)
473        {
474            return "";
475        }
476        StringBuilder stringbuilder = new StringBuilder();
477        stringbuilder.append(p_40648_1_[0]);
478        for(int j = 1; j < i; j++)
479        {
480            stringbuilder.append(p_40648_2_).append(p_40648_1_[j]);
481        }
482
483        return stringbuilder.toString();
484    }
485
486}