equivalent-exchange-3/src/main/java/com/pahimar/ee3/command/CommandPlayerForgetItem.java

112 lines
3.9 KiB
Java
Raw Normal View History

2015-02-06 03:03:08 +01:00
package com.pahimar.ee3.command;
2023-01-03 17:47:36 +01:00
import java.util.List;
import com.pahimar.ee3.api.knowledge.PlayerKnowledgeRegistryProxy;
2015-02-06 03:03:08 +01:00
import com.pahimar.ee3.reference.Messages;
import com.pahimar.ee3.reference.Names;
import cpw.mods.fml.common.FMLCommonHandler;
import net.minecraft.command.CommandBase;
import net.minecraft.command.ICommandSender;
import net.minecraft.command.WrongUsageException;
import net.minecraft.entity.player.EntityPlayer;
2015-02-06 03:03:08 +01:00
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.JsonToNBT;
import net.minecraft.nbt.NBTBase;
import net.minecraft.nbt.NBTTagCompound;
2015-02-06 03:03:08 +01:00
2023-01-03 17:47:36 +01:00
public class CommandPlayerForgetItem extends CommandBase {
2015-02-06 03:03:08 +01:00
@Override
2023-01-03 17:47:36 +01:00
public String getCommandName() {
2015-02-06 03:03:08 +01:00
return Names.Commands.PLAYER_FORGET_ITEM;
}
@Override
2023-01-03 17:47:36 +01:00
public int getRequiredPermissionLevel() {
2015-02-06 03:03:08 +01:00
return 2;
}
@Override
2023-01-03 17:47:36 +01:00
public String getCommandUsage(ICommandSender commandSender) {
2015-02-06 03:03:08 +01:00
return Messages.Commands.PLAYER_FORGET_ITEM_USAGE;
}
@Override
2023-01-03 17:47:36 +01:00
public void processCommand(ICommandSender commandSender, String[] args) {
if (args.length < 3) {
throw new WrongUsageException(Messages.Commands.PLAYER_FORGET_ITEM_USAGE);
2023-01-03 17:47:36 +01:00
} else {
EntityPlayer entityPlayer = getPlayer(commandSender, args[1]);
2023-01-03 17:47:36 +01:00
if (entityPlayer != null) {
Item item = getItemByText(commandSender, args[2]);
int metaData = 0;
2023-01-03 17:47:36 +01:00
if (args.length >= 4) {
metaData = parseInt(commandSender, args[3]);
}
ItemStack itemStack = new ItemStack(item, 1, metaData);
2023-01-03 17:47:36 +01:00
if (args.length >= 5) {
String stringNBTData
= func_147178_a(commandSender, args, 4).getUnformattedText();
2023-01-03 17:47:36 +01:00
try {
NBTBase nbtBase = JsonToNBT.func_150315_a(stringNBTData);
2023-01-03 17:47:36 +01:00
if (!(nbtBase instanceof NBTTagCompound)) {
func_152373_a(
commandSender,
this,
Messages.Commands.INVALID_NBT_TAG_ERROR,
new Object[] { "Not a valid tag" }
);
return;
}
itemStack.setTagCompound((NBTTagCompound) nbtBase);
2023-01-03 17:47:36 +01:00
} catch (Exception exception) {
func_152373_a(
commandSender,
this,
Messages.Commands.INVALID_NBT_TAG_ERROR,
new Object[] { exception.getMessage() }
);
return;
}
}
PlayerKnowledgeRegistryProxy.makePlayerForget(entityPlayer, itemStack);
2023-01-03 17:47:36 +01:00
func_152373_a(
commandSender,
this,
Messages.Commands.PLAYER_FORGET_ITEM_SUCCESS,
new Object[] { commandSender.getCommandSenderName(),
entityPlayer.getCommandSenderName(),
itemStack.func_151000_E() }
);
} else {
throw new WrongUsageException(Messages.Commands.PLAYER_NOT_FOUND_ERROR);
}
}
2015-02-06 03:03:08 +01:00
}
@Override
2023-01-03 17:47:36 +01:00
public List addTabCompletionOptions(ICommandSender commandSender, String[] args) {
if (args.length == 2) {
return getListOfStringsMatchingLastWord(
args,
FMLCommonHandler.instance().getMinecraftServerInstance().getAllUsernames()
);
} else if (args.length == 3) {
return getListOfStringsFromIterableMatchingLastWord(
args, Item.itemRegistry.getKeys()
);
2015-02-06 03:03:08 +01:00
}
return null;
}
}