summaryrefslogtreecommitdiff
path: root/src/main/java/darkknight/jewelrycraft/commands/JewelrycraftCommands.java
diff options
context:
space:
mode:
authorOnyxDarkKnight <sor1n.iliutza16@gmail.com>2015-03-23 14:51:06 +0000
committerOnyxDarkKnight <sor1n.iliutza16@gmail.com>2015-03-23 14:51:06 +0000
commit6312636fd9a4d0f56dc7c9ff474a99d879bcb4e9 (patch)
treee3279753210bfb169a00cd3f146a80baf624150e /src/main/java/darkknight/jewelrycraft/commands/JewelrycraftCommands.java
parente86949a1ad3269ec66c9de65e2c92f5e66251411 (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.java124
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;
+ }
+}