diff options
| author | OnyxDarkKnight <sor1n.iliutza16@gmail.com> | 2015-03-23 14:51:06 +0000 |
|---|---|---|
| committer | OnyxDarkKnight <sor1n.iliutza16@gmail.com> | 2015-03-23 14:51:06 +0000 |
| commit | 6312636fd9a4d0f56dc7c9ff474a99d879bcb4e9 (patch) | |
| tree | e3279753210bfb169a00cd3f146a80baf624150e /src/main/java/darkknight/jewelrycraft/commands/JewelrycraftCommands.java | |
| parent | e86949a1ad3269ec66c9de65e2c92f5e66251411 (diff) | |
Reworked the whole repo.
Diffstat (limited to 'src/main/java/darkknight/jewelrycraft/commands/JewelrycraftCommands.java')
| -rw-r--r-- | src/main/java/darkknight/jewelrycraft/commands/JewelrycraftCommands.java | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/src/main/java/darkknight/jewelrycraft/commands/JewelrycraftCommands.java b/src/main/java/darkknight/jewelrycraft/commands/JewelrycraftCommands.java new file mode 100644 index 0000000..e8f639d --- /dev/null +++ b/src/main/java/darkknight/jewelrycraft/commands/JewelrycraftCommands.java @@ -0,0 +1,124 @@ +/** + * + */ +package darkknight.jewelrycraft.commands; + +/** + * @author Sorin + * + */ +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import net.minecraft.command.CommandBase; +import net.minecraft.command.ICommandSender; +import net.minecraft.command.WrongUsageException; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IChatComponent; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.events.EntityEventHandler; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; + +public class JewelrycraftCommands extends CommandBase +{ + private List aliases; + + public JewelrycraftCommands() + { + this.aliases = new ArrayList(); + this.aliases.add("jw"); + this.aliases.add("jc"); + this.aliases.add("jcrft"); + this.aliases.add("jCraft"); + this.aliases.add("jewelry"); + } + + @Override + public String getCommandName() + { + return "jewelrycraft"; + } + + @Override + public String getCommandUsage(ICommandSender var1) + { + String use = "/jewelrycraft <addCursePoints:getCursePoints:setCursePoints> <user> [points] | "; + use += "/jewelrycraft <addModifier> <modifier> |"; + use += "/jewelrycraft <addCurse> <user> <curseID> <curseGrade>"; + return use; + } + + @Override + public List getCommandAliases() + { + return aliases; + } + + @Override + public void processCommand(ICommandSender commandSender, String[] astring) + { + if (astring.length == 0 || astring[0].equals("help")) throw new WrongUsageException(getCommandUsage(commandSender)); + if (astring[0].equals("getCursePoints")){ + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + commandSender.addChatMessage(new ChatComponentTranslation(Integer.toString(JewelrycraftUtil.getCursePoints(entityplayermp)))); + }else if (astring[0].equals("addCursePoints")){ + int points = CommandBase.parseIntWithMin(commandSender, astring[2], 0); + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + JewelrycraftUtil.addCursePoints(entityplayermp, points); + }else if (astring[0].equals("setCursePoints")){ + int points = CommandBase.parseIntWithMin(commandSender, astring[2], 0); + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + JewelrycraftUtil.addCursePoints(entityplayermp, points - JewelrycraftUtil.getCursePoints(entityplayermp)); + }else if (astring[0].equals("addModifier")){ + ItemStack item = new ItemStack(CommandBase.getItemByText(commandSender, astring[1])); + EntityPlayerMP entityplayermp = getPlayer(commandSender, commandSender.getCommandSenderName()); + ArrayList<ItemStack> modifier = new ArrayList<ItemStack>(); + modifier.add(item); + JewelryNBT.addModifiers(entityplayermp.getCurrentEquippedItem(), modifier); + }else if (astring[0].equals("addCurse")){ + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + int curse = Integer.valueOf(astring[2]); + int grade = Integer.valueOf(astring[3]); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(entityplayermp, "Jewelrycraft"); + if(curse < Curse.getCurseList().size() && grade <= 2) + { + EntityEventHandler.addCurse(entityplayermp, playerInfo, curse, grade); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + else if(curse >= Curse.getCurseList().size()) entityplayermp.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Curse ID exceedes the maximum value of " + (Curse.getCurseList().size() - 1))); + else entityplayermp.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Curse grade exceedes the maximum value of 2")); + + } + } + + @Override + public List addTabCompletionOptions(ICommandSender icommandsender, String[] astring) + { + final List<String> MATCHES = new LinkedList<String>(); + final String ARG_LC = astring[astring.length - 1].toLowerCase(); + if (astring.length == 1){ + if ("addCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addCursePoints"); + if ("getCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("getCursePoints"); + if ("setCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("setCursePoints"); + if ("addModifier".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addModifier"); + if ("addCurse".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addCurse"); + }else if (astring.length == 2){ + if (!astring[0].equals("addModifier")){ + for(String un: MinecraftServer.getServer().getAllUsernames()) + if (un.toLowerCase().startsWith(ARG_LC)) MATCHES.add(un); + }else if (!astring[0].equals("addCurse")) return getListOfStringsFromIterableMatchingLastWord(astring, Item.itemRegistry.getKeys()); + } + return MATCHES.isEmpty() ? null : MATCHES; + } +} |
