001 package net.minecraft.src; 002 003 import java.util.List; 004 import net.minecraft.server.MinecraftServer; 005 006 public class CommandXP extends CommandBase 007 { 008 public String getCommandName() 009 { 010 return "xp"; 011 } 012 013 public int func_82362_a() 014 { 015 return 2; 016 } 017 018 public String getCommandUsage(ICommandSender par1ICommandSender) 019 { 020 return par1ICommandSender.translateString("commands.xp.usage", new Object[0]); 021 } 022 023 public void processCommand(ICommandSender par1ICommandSender, String[] par2ArrayOfStr) 024 { 025 if (par2ArrayOfStr.length <= 0) 026 { 027 throw new WrongUsageException("commands.xp.usage", new Object[0]); 028 } 029 else 030 { 031 String var4 = par2ArrayOfStr[0]; 032 boolean var5 = var4.endsWith("l") || var4.endsWith("L"); 033 034 if (var5 && var4.length() > 1) 035 { 036 var4 = var4.substring(0, var4.length() - 1); 037 } 038 039 int var6 = parseInt(par1ICommandSender, var4); 040 boolean var7 = var6 < 0; 041 042 if (var7) 043 { 044 var6 *= -1; 045 } 046 047 EntityPlayerMP var3; 048 049 if (par2ArrayOfStr.length > 1) 050 { 051 var3 = func_82359_c(par1ICommandSender, par2ArrayOfStr[1]); 052 } 053 else 054 { 055 var3 = getCommandSenderAsPlayer(par1ICommandSender); 056 } 057 058 if (var5) 059 { 060 if (var7) 061 { 062 var3.func_82242_a(-var6); 063 notifyAdmins(par1ICommandSender, "commands.xp.success.negative.levels", new Object[] {Integer.valueOf(var6), var3.getEntityName()}); 064 } 065 else 066 { 067 var3.func_82242_a(var6); 068 notifyAdmins(par1ICommandSender, "commands.xp.success.levels", new Object[] {Integer.valueOf(var6), var3.getEntityName()}); 069 } 070 } 071 else 072 { 073 if (var7) 074 { 075 throw new WrongUsageException("commands.xp.failure.widthdrawXp", new Object[0]); 076 } 077 078 var3.addExperience(var6); 079 notifyAdmins(par1ICommandSender, "commands.xp.success", new Object[] {Integer.valueOf(var6), var3.getEntityName()}); 080 } 081 } 082 } 083 084 /** 085 * Adds the strings available in this command to the given list of tab completion options. 086 */ 087 public List addTabCompletionOptions(ICommandSender par1ICommandSender, String[] par2ArrayOfStr) 088 { 089 return par2ArrayOfStr.length == 2 ? getListOfStringsMatchingLastWord(par2ArrayOfStr, this.getAllUsernames()) : null; 090 } 091 092 protected String[] getAllUsernames() 093 { 094 return MinecraftServer.getServer().getAllUsernames(); 095 } 096 097 public boolean func_82358_a(int par1) 098 { 099 return par1 == 1; 100 } 101 }