BloodMagic/src/main/java/WayofTime/bloodmagic/command/sub/SubCommandBind.java

96 lines
3.2 KiB
Java
Raw Normal View History

package WayofTime.bloodmagic.command.sub;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.iface.IBindable;
import WayofTime.bloodmagic.api.util.helper.BindableHelper;
import WayofTime.bloodmagic.api.util.helper.PlayerHelper;
import WayofTime.bloodmagic.util.helper.TextHelper;
import com.google.common.base.Strings;
2017-01-02 05:43:34 +00:00
import net.minecraft.command.*;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.text.TextComponentTranslation;
2017-01-02 05:43:34 +00:00
public class SubCommandBind extends CommandBase
2016-03-16 22:41:06 +00:00
{
@Override
2017-01-02 05:43:34 +00:00
public String getName()
2016-03-16 22:41:06 +00:00
{
2017-01-02 05:43:34 +00:00
return "bind";
}
@Override
2017-01-02 05:43:34 +00:00
public String getUsage(ICommandSender commandSender)
2016-03-16 22:41:06 +00:00
{
2017-01-02 05:43:34 +00:00
return TextHelper.localizeEffect("commands.bind.usage");
}
@Override
public int getRequiredPermissionLevel()
{
return 2;
}
@Override
2017-01-02 05:43:34 +00:00
public void execute(MinecraftServer server, ICommandSender commandSender, String[] args) throws CommandException
2016-03-16 22:41:06 +00:00
{
if (commandSender.getEntityWorld().isRemote)
return;
2016-03-16 22:41:06 +00:00
try
{
EntityPlayer player = CommandBase.getCommandSenderAsPlayer(commandSender);
String playerName = player.getName();
String uuid = PlayerHelper.getUUIDFromPlayer(player).toString();
ItemStack held = player.getHeldItemMainhand();
boolean bind = true;
2017-01-02 05:43:34 +00:00
if (held.getItem() instanceof IBindable)
2016-03-16 22:41:06 +00:00
{
if (args.length > 0)
{
if (args[0].equalsIgnoreCase("help"))
return;
2016-03-16 22:41:06 +00:00
if (isBoolean(args[0]))
{
bind = Boolean.parseBoolean(args[0]);
if (args.length > 2)
playerName = args[1];
2016-03-16 22:41:06 +00:00
} else
{
playerName = args[0];
uuid = PlayerHelper.getUUIDFromPlayer(CommandBase.getPlayer(server, commandSender, playerName)).toString();
}
}
2016-03-16 22:41:06 +00:00
if (bind)
{
BindableHelper.setItemOwnerName(held, playerName);
BindableHelper.setItemOwnerUUID(held, uuid);
2017-01-02 05:43:34 +00:00
commandSender.sendMessage(new TextComponentTranslation("commands.bind.success"));
2016-03-16 22:41:06 +00:00
} else
{
if (!Strings.isNullOrEmpty(((IBindable) held.getItem()).getOwnerUUID(held)))
{
held.getTagCompound().removeTag(Constants.NBT.OWNER_UUID);
held.getTagCompound().removeTag(Constants.NBT.OWNER_NAME);
2017-01-02 05:43:34 +00:00
commandSender.sendMessage(new TextComponentTranslation("commands.bind.remove.success"));
}
}
}
2016-03-16 22:41:06 +00:00
} catch (PlayerNotFoundException e)
{
2017-01-02 05:43:34 +00:00
commandSender.sendMessage(new TextComponentTranslation(TextHelper.localizeEffect("commands.error.404")));
}
}
2016-03-16 22:41:06 +00:00
private boolean isBoolean(String string)
{
return string.equalsIgnoreCase("true") || string.equalsIgnoreCase("false");
}
}