
* Fix the Blood Tank BB * Add modid to command localizations to prevent conflicts * Fixed the items not being drawn on the right Y-level for the Sigil of Holding HUD Corrected localizations of other lang files * SoulTicket internal implementation * do what TehNut says * implement hashCode() * Fix toggleable sigils draining on r-click when it shouldn't Also moved the ItemSigil and ItemSigilToggleable to the sigil package (why wasn't it there???)
184 lines
7.8 KiB
Java
184 lines
7.8 KiB
Java
package WayofTime.bloodmagic.command.sub;
|
|
|
|
import WayofTime.bloodmagic.core.data.SoulNetwork;
|
|
import WayofTime.bloodmagic.core.data.SoulTicket;
|
|
import WayofTime.bloodmagic.util.helper.NetworkHelper;
|
|
import WayofTime.bloodmagic.command.CommandBloodMagic;
|
|
import WayofTime.bloodmagic.util.Utils;
|
|
import WayofTime.bloodmagic.util.helper.TextHelper;
|
|
import net.minecraft.command.CommandBase;
|
|
import net.minecraft.command.CommandException;
|
|
import net.minecraft.command.ICommandSender;
|
|
import net.minecraft.command.PlayerNotFoundException;
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
import net.minecraft.server.MinecraftServer;
|
|
import net.minecraft.util.text.TextComponentString;
|
|
|
|
import java.util.Locale;
|
|
|
|
public class SubCommandNetwork extends CommandBase {
|
|
@Override
|
|
public String getName() {
|
|
return "network";
|
|
}
|
|
|
|
@Override
|
|
public String getUsage(ICommandSender commandSender) {
|
|
return TextHelper.localizeEffect("commands.bloodmagic.network.usage");
|
|
}
|
|
|
|
@Override
|
|
public int getRequiredPermissionLevel() {
|
|
return 2;
|
|
}
|
|
|
|
@Override
|
|
public void execute(MinecraftServer server, ICommandSender commandSender, String[] args) throws CommandException {
|
|
if (args.length > 1) {
|
|
if (args[0].equalsIgnoreCase("help"))
|
|
return;
|
|
|
|
try {
|
|
EntityPlayer player = CommandBase.getPlayer(server, commandSender, args[1]);
|
|
|
|
try {
|
|
ValidCommands command = ValidCommands.valueOf(args[0].toUpperCase(Locale.ENGLISH));
|
|
command.run(player, commandSender, args.length > 0 && args.length < 2, args);
|
|
} catch (IllegalArgumentException e) {
|
|
|
|
}
|
|
} catch (PlayerNotFoundException e) {
|
|
CommandBloodMagic.displayErrorString(commandSender, e.getLocalizedMessage());
|
|
}
|
|
} else {
|
|
CommandBloodMagic.displayErrorString(commandSender, "commands.bloodmagic.error.arg.missing");
|
|
}
|
|
}
|
|
|
|
private enum ValidCommands {
|
|
SYPHON("commands.bloodmagic.network.syphon.help") {
|
|
@Override
|
|
public void run(EntityPlayer player, ICommandSender sender, boolean displayHelp, String... args) {
|
|
if (displayHelp) {
|
|
CommandBloodMagic.displayHelpString(sender, this.help);
|
|
return;
|
|
}
|
|
|
|
if (args.length == 3) {
|
|
if (Utils.isInteger(args[2])) {
|
|
int amount = Integer.parseInt(args[2]);
|
|
NetworkHelper.getSoulNetwork(player).syphonAndDamage(player, SoulTicket.command(sender, "syphon", amount));
|
|
CommandBloodMagic.displaySuccessString(sender, "commands.bloodmagic.network.syphon.success", amount, player.getDisplayName().getFormattedText());
|
|
} else {
|
|
CommandBloodMagic.displayErrorString(sender, "commands.bloodmagic.error.arg.invalid");
|
|
}
|
|
} else {
|
|
CommandBloodMagic.displayErrorString(sender, "commands.bloodmagic.error.arg.missing");
|
|
}
|
|
}
|
|
},
|
|
ADD("commands.bloodmagic.network.add.help") {
|
|
@Override
|
|
public void run(EntityPlayer player, ICommandSender sender, boolean displayHelp, String... args) {
|
|
if (displayHelp) {
|
|
CommandBloodMagic.displayHelpString(sender, this.help);
|
|
return;
|
|
}
|
|
|
|
SoulNetwork network = NetworkHelper.getSoulNetwork(player);
|
|
|
|
if (args.length == 3) {
|
|
if (Utils.isInteger(args[2])) {
|
|
int amount = Integer.parseInt(args[2]);
|
|
int maxOrb = NetworkHelper.getMaximumForTier(network.getOrbTier());
|
|
CommandBloodMagic.displaySuccessString(sender, "commands.bloodmagic.network.add.success", network.add(SoulTicket.command(sender, "add", amount), maxOrb), player.getDisplayName().getFormattedText());
|
|
} else {
|
|
CommandBloodMagic.displayErrorString(sender, "commands.bloodmagic.error.arg.invalid");
|
|
}
|
|
} else {
|
|
CommandBloodMagic.displayErrorString(sender, "commands.bloodmagic.error.arg.missing");
|
|
}
|
|
}
|
|
},
|
|
SET("commands.bloodmagic.network.set.help") {
|
|
@Override
|
|
public void run(EntityPlayer player, ICommandSender sender, boolean displayHelp, String... args) {
|
|
if (displayHelp) {
|
|
CommandBloodMagic.displayHelpString(sender, this.help);
|
|
return;
|
|
}
|
|
|
|
SoulNetwork network = NetworkHelper.getSoulNetwork(player);
|
|
|
|
if (args.length == 3) {
|
|
if (Utils.isInteger(args[2])) {
|
|
int amount = Integer.parseInt(args[2]);
|
|
network.setCurrentEssence(amount);
|
|
CommandBloodMagic.displaySuccessString(sender, "commands.bloodmagic.network.set.success", player.getDisplayName().getFormattedText(), amount);
|
|
} else {
|
|
CommandBloodMagic.displayErrorString(sender, "commands.bloodmagic.error.arg.invalid");
|
|
}
|
|
} else {
|
|
CommandBloodMagic.displayErrorString(sender, "commands.bloodmagic.error.arg.missing");
|
|
}
|
|
}
|
|
},
|
|
GET("commands.bloodmagic.network.get.help") {
|
|
@Override
|
|
public void run(EntityPlayer player, ICommandSender sender, boolean displayHelp, String... args) {
|
|
if (displayHelp) {
|
|
CommandBloodMagic.displayHelpString(sender, this.help);
|
|
return;
|
|
}
|
|
|
|
SoulNetwork network = NetworkHelper.getSoulNetwork(player);
|
|
|
|
if (args.length > 1)
|
|
sender.sendMessage(new TextComponentString(TextHelper.localizeEffect("tooltip.bloodmagic.sigil.divination.currentEssence", network.getCurrentEssence())));
|
|
|
|
}
|
|
},
|
|
FILL("commands.bloodmagic.network.fill.help") {
|
|
@Override
|
|
public void run(EntityPlayer player, ICommandSender sender, boolean displayHelp, String... args) {
|
|
if (displayHelp) {
|
|
CommandBloodMagic.displayHelpString(sender, this.help, Integer.MAX_VALUE);
|
|
return;
|
|
}
|
|
|
|
SoulNetwork network = NetworkHelper.getSoulNetwork(player);
|
|
|
|
if (args.length > 1) {
|
|
network.setCurrentEssence(Integer.MAX_VALUE);
|
|
CommandBloodMagic.displaySuccessString(sender, "commands.bloodmagic.network.fill.success", player.getDisplayName().getFormattedText());
|
|
}
|
|
}
|
|
},
|
|
CAP("commands.bloodmagic.network.cap.help") {
|
|
@Override
|
|
public void run(EntityPlayer player, ICommandSender sender, boolean displayHelp, String... args) {
|
|
if (displayHelp) {
|
|
CommandBloodMagic.displayHelpString(sender, this.help);
|
|
return;
|
|
}
|
|
|
|
SoulNetwork network = NetworkHelper.getSoulNetwork(player);
|
|
|
|
if (args.length > 1) {
|
|
int maxOrb = NetworkHelper.getMaximumForTier(network.getOrbTier());
|
|
network.setCurrentEssence(maxOrb);
|
|
CommandBloodMagic.displaySuccessString(sender, "commands.bloodmagic.network.cap.success", player.getDisplayName().getFormattedText());
|
|
}
|
|
}
|
|
},;
|
|
|
|
public String help;
|
|
|
|
ValidCommands(String help) {
|
|
this.help = help;
|
|
}
|
|
|
|
public abstract void run(EntityPlayer player, ICommandSender sender, boolean displayHelp, String... args);
|
|
}
|
|
}
|