Command rework (#1434)
* Network part finished. * Should be more reasonable now * This should be good enough. * Orb finished, needs strings * Bind finished. Needs strings. * Reformat & Help subcommand * Cleanup, strings, no negative amounts * Removed TODOs * Added missing MaxTier check for Blood Orbs. Added TODO: Test with custom Blood Orbs. * Ritual commands finished. Check for valid placement might be optimized. (TODO) * Access modifiers, moved TODO * Added TODOs for localized strings * DrainUtils postponed until the necessary functionality is available with SoulTickets (telling SoulTicket network from soul ticket, a list of all registered soul tickets per network) * Replaced all occurrences of TextHelper with TextComponentTranslation in the commands section * - Moved Teleports.java to teleport package - added teleposer command - added missing strings - cleanup * Fixed spelling of "Successful(ly)" * getUsage() now returns translation keys. getInfo() is now an explicit String ritual creation command now has proper tab completions help is an additional argument with "-h" or "?" cleanup * teleposerSet final cleanup. * Removed ritual removal command Signed-off-by: tobias <angryaeon@icloud.com> * Check if the tile has a ritual first Signed-off-by: tobias <angryaeon@icloud.com> * A bit more optimisation Signed-off-by: tobias <angryaeon@icloud.com> * Cleanup part 1 Signed-off-by: tobias <angryaeon@icloud.com> * Cleanup part 2 Signed-off-by: tobias <angryaeon@icloud.com> * Part 3 Signed-off-by: tobias <angryaeon@icloud.com> * Part 4 Signed-off-by: tobias <angryaeon@icloud.com> * Updated language file to reflect cleanup & continuity changes. Signed-off-by: tobias <angryaeon@icloud.com> * Change to use an abstract class that gets called instead of calling super on overriden execute() for commands Signed-off-by: tobias <angryaeon@icloud.com> * Use player facing for ritual creation. Signed-off-by: tobias <angryaeon@icloud.com>
This commit is contained in:
parent
2a8e1f1271
commit
95d99c0a01
src/main
java/WayofTime/bloodmagic
resources/assets/bloodmagic/lang
|
@ -1,12 +1,12 @@
|
|||
package WayofTime.bloodmagic.block;
|
||||
|
||||
import WayofTime.bloodmagic.BloodMagic;
|
||||
import WayofTime.bloodmagic.block.base.BlockInteger;
|
||||
import WayofTime.bloodmagic.ritual.IMasterRitualStone;
|
||||
import WayofTime.bloodmagic.ritual.portal.LocationsHandler;
|
||||
import WayofTime.bloodmagic.teleport.PortalLocation;
|
||||
import WayofTime.bloodmagic.teleport.TeleportQueue;
|
||||
import WayofTime.bloodmagic.block.base.BlockInteger;
|
||||
import WayofTime.bloodmagic.ritual.portal.LocationsHandler;
|
||||
import WayofTime.bloodmagic.ritual.portal.Teleports;
|
||||
import WayofTime.bloodmagic.teleport.Teleports;
|
||||
import WayofTime.bloodmagic.tile.TileDimensionalPortal;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
|
|
|
@ -2,6 +2,7 @@ package WayofTime.bloodmagic.block;
|
|||
|
||||
import WayofTime.bloodmagic.BloodMagic;
|
||||
import WayofTime.bloodmagic.client.IVariantProvider;
|
||||
import WayofTime.bloodmagic.command.sub.SubCommandTeleposer;
|
||||
import WayofTime.bloodmagic.item.ItemTelepositionFocus;
|
||||
import WayofTime.bloodmagic.tile.TileTeleposer;
|
||||
import WayofTime.bloodmagic.util.Constants;
|
||||
|
@ -48,8 +49,10 @@ public class BlockTeleposer extends BlockContainer implements IVariantProvider,
|
|||
@Override
|
||||
public void breakBlock(World world, BlockPos blockPos, IBlockState blockState) {
|
||||
TileTeleposer tileTeleposer = (TileTeleposer) world.getTileEntity(blockPos);
|
||||
if (tileTeleposer != null)
|
||||
if (tileTeleposer != null) {
|
||||
tileTeleposer.dropItems();
|
||||
SubCommandTeleposer.teleposerSet.remove(tileTeleposer);
|
||||
}
|
||||
|
||||
super.breakBlock(world, blockPos, blockState);
|
||||
}
|
||||
|
|
|
@ -1,18 +1,19 @@
|
|||
package WayofTime.bloodmagic.command;
|
||||
|
||||
import WayofTime.bloodmagic.command.sub.SubCommandBind;
|
||||
import WayofTime.bloodmagic.command.sub.SubCommandNetwork;
|
||||
import WayofTime.bloodmagic.command.sub.SubCommandOrb;
|
||||
import WayofTime.bloodmagic.util.helper.TextHelper;
|
||||
import WayofTime.bloodmagic.command.sub.*;
|
||||
import net.minecraft.command.ICommandSender;
|
||||
import net.minecraft.util.text.TextComponentString;
|
||||
import net.minecraftforge.server.command.CommandTreeBase;
|
||||
import net.minecraftforge.server.command.CommandTreeHelp;
|
||||
|
||||
public class CommandBloodMagic extends CommandTreeBase {
|
||||
|
||||
public CommandBloodMagic() {
|
||||
addSubcommand(new SubCommandBind());
|
||||
addSubcommand(new SubCommandNetwork());
|
||||
addSubcommand(new SubCommandOrb());
|
||||
addSubcommand(new SubCommandRitual());
|
||||
addSubcommand(new SubCommandTeleposer());
|
||||
addSubcommand(new CommandTreeHelp(this));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -30,15 +31,4 @@ public class CommandBloodMagic extends CommandTreeBase {
|
|||
return 2;
|
||||
}
|
||||
|
||||
public static void displayHelpString(ICommandSender commandSender, String display, Object... info) {
|
||||
commandSender.sendMessage(new TextComponentString(TextHelper.localizeEffect(display, info)));
|
||||
}
|
||||
|
||||
public static void displayErrorString(ICommandSender commandSender, String display, Object... info) {
|
||||
commandSender.sendMessage(new TextComponentString(TextHelper.localizeEffect(display, info)));
|
||||
}
|
||||
|
||||
public static void displaySuccessString(ICommandSender commandSender, String display, Object... info) {
|
||||
commandSender.sendMessage(new TextComponentString(TextHelper.localizeEffect(display, info)));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,17 +3,26 @@ package WayofTime.bloodmagic.command.sub;
|
|||
import WayofTime.bloodmagic.core.data.Binding;
|
||||
import WayofTime.bloodmagic.iface.IBindable;
|
||||
import WayofTime.bloodmagic.util.helper.BindableHelper;
|
||||
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.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.util.text.TextComponentTranslation;
|
||||
import net.minecraftforge.server.command.CommandTreeBase;
|
||||
import net.minecraftforge.server.command.CommandTreeHelp;
|
||||
|
||||
public class SubCommandBind extends CommandTreeBase {
|
||||
public EntityPlayerMP player;
|
||||
|
||||
public SubCommandBind() {
|
||||
addSubcommand(new CommandTreeHelp(this));
|
||||
}
|
||||
|
||||
public String getInfo() {
|
||||
return player.getName();
|
||||
}
|
||||
|
||||
public class SubCommandBind extends CommandBase {
|
||||
@Override
|
||||
public String getName() {
|
||||
return "bind";
|
||||
|
@ -21,7 +30,11 @@ public class SubCommandBind extends CommandBase {
|
|||
|
||||
@Override
|
||||
public String getUsage(ICommandSender commandSender) {
|
||||
return TextHelper.localizeEffect("commands.bloodmagic.bind.usage");
|
||||
return "commands.bloodmagic.bind.usage";
|
||||
}
|
||||
|
||||
public String getHelp() {
|
||||
return "commands.bloodmagic.bind.help";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -30,49 +43,49 @@ public class SubCommandBind extends CommandBase {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void execute(MinecraftServer server, ICommandSender commandSender, String[] args) throws CommandException {
|
||||
if (commandSender.getEntityWorld().isRemote)
|
||||
public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
|
||||
if (args.length == 1 && (args[0].equals("?") || args[0].equals("help"))) {
|
||||
sender.sendMessage(new TextComponentTranslation(getHelp()));
|
||||
return;
|
||||
|
||||
try {
|
||||
EntityPlayer player = CommandBase.getCommandSenderAsPlayer(commandSender);
|
||||
ItemStack held = player.getHeldItemMainhand();
|
||||
boolean bind = true;
|
||||
|
||||
if (held.getItem() instanceof IBindable) {
|
||||
if (args.length > 0) {
|
||||
|
||||
if (args[0].equalsIgnoreCase("help"))
|
||||
return;
|
||||
|
||||
if (isBoolean(args[0])) {
|
||||
bind = Boolean.parseBoolean(args[0]);
|
||||
|
||||
if (args.length > 2)
|
||||
player = CommandBase.getPlayer(server, commandSender, args[1]);
|
||||
} else {
|
||||
player = CommandBase.getPlayer(server, commandSender, args[0]);
|
||||
}
|
||||
}
|
||||
|
||||
if (bind) {
|
||||
Binding binding = new Binding(player.getGameProfile().getId(), player.getGameProfile().getName());
|
||||
BindableHelper.applyBinding(held, binding);
|
||||
commandSender.sendMessage(new TextComponentTranslation("commands.bloodmagic.bind.success"));
|
||||
} else {
|
||||
Binding binding = ((IBindable) held.getItem()).getBinding(held);
|
||||
if (binding != null) {
|
||||
held.getTagCompound().removeTag("binding");
|
||||
commandSender.sendMessage(new TextComponentTranslation("commands.bloodmagic.bind.remove.success"));
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (PlayerNotFoundException e) {
|
||||
commandSender.sendMessage(new TextComponentTranslation(TextHelper.localizeEffect("commands.bloodmagic.error.404")));
|
||||
}
|
||||
if (sender.getEntityWorld().isRemote)
|
||||
return;
|
||||
EntityPlayerMP player = args.length < 2 ? getCommandSenderAsPlayer(sender) : getPlayer(server, sender, args[0]);
|
||||
ItemStack held = player.getHeldItemMainhand();
|
||||
boolean bind = true;
|
||||
if (held.getItem() instanceof IBindable) {
|
||||
Binding binding = ((IBindable) held.getItem()).getBinding(held);
|
||||
if (binding != null)
|
||||
bind = false;
|
||||
if (args.length < 2)
|
||||
if (args.length == 1)
|
||||
if (isBoolean(args[0]))
|
||||
bind = Boolean.parseBoolean(args[0]);
|
||||
else
|
||||
player = getPlayer(server, sender, args[0]);
|
||||
if (bind) {
|
||||
if (binding.getOwnerName().equals(player.getName())) {
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.bind.error.ownerEqualsTarget"));
|
||||
return;
|
||||
}
|
||||
binding = new Binding(player.getGameProfile().getId(), player.getGameProfile().getName());
|
||||
BindableHelper.applyBinding(held, binding);
|
||||
this.player = player;
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.bind.success", getInfo()));
|
||||
} else {
|
||||
if (binding == null) {
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.bind.error.notBound"));
|
||||
}
|
||||
held.getTagCompound().removeTag("binding");
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.bind.remove.success"));
|
||||
}
|
||||
} else
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.bind.error.notBindable"));
|
||||
|
||||
|
||||
}
|
||||
|
||||
private boolean isBoolean(String string) {
|
||||
return string.equalsIgnoreCase("true") || string.equalsIgnoreCase("false");
|
||||
}
|
||||
}
|
||||
}
|
|
@ -2,21 +2,33 @@ 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 WayofTime.bloodmagic.util.helper.NetworkHelper;
|
||||
import WayofTime.bloodmagic.util.helper.PlayerHelper;
|
||||
import net.minecraft.command.CommandException;
|
||||
import net.minecraft.command.ICommandSender;
|
||||
import net.minecraft.command.PlayerNotFoundException;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.util.text.TextComponentString;
|
||||
import net.minecraft.util.text.TextComponentTranslation;
|
||||
import net.minecraftforge.server.command.CommandTreeBase;
|
||||
import net.minecraftforge.server.command.CommandTreeHelp;
|
||||
|
||||
import java.util.Locale;
|
||||
import java.util.List;
|
||||
|
||||
public class SubCommandNetwork extends CommandTreeBase {
|
||||
|
||||
public SubCommandNetwork() {
|
||||
addSubcommand(new Syphon());
|
||||
addSubcommand(new Add());
|
||||
addSubcommand(new Set());
|
||||
addSubcommand(new Get());
|
||||
addSubcommand(new Cap());
|
||||
addSubcommand(new Fill());
|
||||
addSubcommand(new Tickets());
|
||||
addSubcommand(new CommandTreeHelp(this));
|
||||
}
|
||||
|
||||
public class SubCommandNetwork extends CommandBase {
|
||||
@Override
|
||||
public String getName() {
|
||||
return "network";
|
||||
|
@ -24,160 +36,190 @@ public class SubCommandNetwork extends CommandBase {
|
|||
|
||||
@Override
|
||||
public String getUsage(ICommandSender commandSender) {
|
||||
return TextHelper.localizeEffect("commands.bloodmagic.network.usage");
|
||||
return "commands.bloodmagic.network.usage";
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRequiredPermissionLevel() {
|
||||
return 2;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(MinecraftServer server, ICommandSender commandSender, String[] args) throws CommandException {
|
||||
if (args.length > 1) {
|
||||
if (args[0].equalsIgnoreCase("help"))
|
||||
abstract class NetworkCommand extends CommandTreeBase {
|
||||
|
||||
public EntityPlayerMP player;
|
||||
public SoulNetwork network;
|
||||
public String uuid;
|
||||
|
||||
public Integer commandHelperAmount(MinecraftServer server, ICommandSender sender, String[] args) {
|
||||
int amount;
|
||||
if (args.length == 0)
|
||||
amount = 1000;
|
||||
else if (Utils.isInteger(args[0]))
|
||||
amount = Integer.parseInt(args[0]);
|
||||
else if (args.length > 1 && Utils.isInteger(args[1]))
|
||||
amount = Integer.parseInt(args[1]);
|
||||
else {
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.error.arg.invalid"));
|
||||
sender.sendMessage(new TextComponentTranslation(this.getUsage(sender)));
|
||||
return null;
|
||||
}
|
||||
if (amount < 0) {
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.error.negative"));
|
||||
return null;
|
||||
}
|
||||
return amount;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUsage(ICommandSender sender) {
|
||||
return "commands.bloodmagic.network." + getName() + ".usage";
|
||||
}
|
||||
|
||||
public String getHelp() {
|
||||
return "commands.bloodmagic.network." + getName() + ".help";
|
||||
}
|
||||
|
||||
public String getInfo() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
|
||||
if (!getName().equals("get")) {
|
||||
if (args.length == 1 && (args[0].equals("?") || args[0].equals("help"))) {
|
||||
sender.sendMessage(new TextComponentTranslation(getHelp()));
|
||||
return;
|
||||
}
|
||||
this.player = args.length < 2 ? getCommandSenderAsPlayer(sender) : getPlayer(server, sender, args[0]);
|
||||
this.uuid = PlayerHelper.getUUIDFromPlayer(player).toString();
|
||||
this.network = NetworkHelper.getSoulNetwork(uuid);
|
||||
}
|
||||
subExecute(server, sender, args);
|
||||
}
|
||||
|
||||
protected abstract void subExecute(MinecraftServer server, ICommandSender sender, String... args) throws CommandException;
|
||||
}
|
||||
|
||||
class Syphon extends NetworkCommand {
|
||||
@Override
|
||||
public String getName() {
|
||||
return "syphon";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void subExecute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
|
||||
Integer amount = commandHelperAmount(server, sender, args);
|
||||
if (amount == null)
|
||||
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());
|
||||
int currE = network.getCurrentEssence();
|
||||
if (amount > currE) {
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.network.syphon.amountTooHigh"));
|
||||
if (currE == 0)
|
||||
return;
|
||||
amount = Math.min(amount, currE);
|
||||
}
|
||||
} else {
|
||||
CommandBloodMagic.displayErrorString(commandSender, "commands.bloodmagic.error.arg.missing");
|
||||
network.syphonAndDamage(player, SoulTicket.command(sender, this.getName(), amount));
|
||||
int newE = network.getCurrentEssence();
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.network.syphon.success", currE - newE, player.getDisplayName().getFormattedText()));
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
class Add extends NetworkCommand {
|
||||
@Override
|
||||
public String getName() {
|
||||
return "add";
|
||||
}
|
||||
|
||||
public abstract void run(EntityPlayer player, ICommandSender sender, boolean displayHelp, String... args);
|
||||
@Override
|
||||
public void subExecute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
|
||||
Integer amount = commandHelperAmount(server, sender, args);
|
||||
if (amount == null)
|
||||
return;
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.network.add.success", network.add(SoulTicket.command(sender, getName(), amount), NetworkHelper.getMaximumForTier(network.getOrbTier())), player.getDisplayName().getFormattedText()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class Set extends NetworkCommand {
|
||||
@Override
|
||||
public String getName() {
|
||||
return "set";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void subExecute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
|
||||
Integer amount = commandHelperAmount(server, sender, args);
|
||||
if (amount == null)
|
||||
return;
|
||||
network.setCurrentEssence(amount);
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.network.set.success", player.getDisplayName().getFormattedText(), amount));
|
||||
}
|
||||
}
|
||||
|
||||
class Get extends NetworkCommand {
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "get";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void subExecute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
|
||||
if (args.length == 1 && (args[0].equals("?") || args[0].equals("help"))) {
|
||||
sender.sendMessage(new TextComponentTranslation(getHelp()));
|
||||
return;
|
||||
}
|
||||
this.player = args.length < 1 ? getCommandSenderAsPlayer(sender) : getPlayer(server, sender, args[0]);
|
||||
sender.sendMessage(new TextComponentString((player != sender ? player.getDisplayName().getFormattedText() + " " : "" + new TextComponentTranslation("tooltip.bloodmagic.sigil.divination.currentEssence", network.getCurrentEssence()).getFormattedText())));
|
||||
}
|
||||
}
|
||||
|
||||
class Cap extends NetworkCommand {
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "cap";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void subExecute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
|
||||
network.setCurrentEssence(NetworkHelper.getMaximumForTier(network.getOrbTier()));
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.network.cap.success", player.getDisplayName().getFormattedText()));
|
||||
}
|
||||
}
|
||||
|
||||
class Fill extends NetworkCommand {
|
||||
|
||||
@Override
|
||||
public String getInfo() {
|
||||
return "" + Integer.MAX_VALUE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "fill";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void subExecute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
|
||||
network.setCurrentEssence(Integer.MAX_VALUE);
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.network.fill.success", player.getDisplayName().getFormattedText()));
|
||||
}
|
||||
}
|
||||
|
||||
class Tickets extends NetworkCommand {
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "tickethistory";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void subExecute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
|
||||
List<SoulTicket> tickethistory = network.getTicketHistory();
|
||||
if (tickethistory.isEmpty())
|
||||
for (SoulTicket i : network.getTicketHistory())
|
||||
sender.sendMessage(i.getDescription());
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.success", player.getDisplayName().getFormattedText()));
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,22 +1,25 @@
|
|||
package WayofTime.bloodmagic.command.sub;
|
||||
|
||||
import WayofTime.bloodmagic.core.data.SoulNetwork;
|
||||
import WayofTime.bloodmagic.core.registry.OrbRegistry;
|
||||
import WayofTime.bloodmagic.util.Utils;
|
||||
import WayofTime.bloodmagic.util.helper.NetworkHelper;
|
||||
import WayofTime.bloodmagic.util.helper.PlayerHelper;
|
||||
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.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.util.text.TextComponentString;
|
||||
import net.minecraft.util.text.TextComponentTranslation;
|
||||
import net.minecraftforge.server.command.CommandTreeBase;
|
||||
import net.minecraftforge.server.command.CommandTreeHelp;
|
||||
|
||||
import java.util.Locale;
|
||||
public class SubCommandOrb extends CommandTreeBase {
|
||||
public SubCommandOrb() {
|
||||
addSubcommand(new Get());
|
||||
addSubcommand(new Set());
|
||||
addSubcommand(new CommandTreeHelp(this));
|
||||
}
|
||||
|
||||
public class SubCommandOrb extends CommandBase {
|
||||
@Override
|
||||
public String getName() {
|
||||
return "orb";
|
||||
|
@ -24,7 +27,7 @@ public class SubCommandOrb extends CommandBase {
|
|||
|
||||
@Override
|
||||
public String getUsage(ICommandSender commandSender) {
|
||||
return TextHelper.localizeEffect("commands.bloodmagic.orb.usage");
|
||||
return "commands.bloodmagic.orb.usage";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -32,76 +35,93 @@ public class SubCommandOrb extends CommandBase {
|
|||
return 2;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(MinecraftServer server, ICommandSender commandSender, String[] args) throws CommandException {
|
||||
if (args.length > 0) {
|
||||
abstract class OrbCommand extends CommandTreeBase {
|
||||
|
||||
if (args[0].equalsIgnoreCase("help"))
|
||||
public EntityPlayerMP player;
|
||||
public String uuid;
|
||||
public SoulNetwork network;
|
||||
public Object info;
|
||||
|
||||
@Override
|
||||
public String getUsage(ICommandSender sender) {
|
||||
return "commands.bloodmagic.orb." + getName() + ".usage";
|
||||
}
|
||||
|
||||
public String getHelp() {
|
||||
return "commands.bloodmagic.orb." + getName() + ".help";
|
||||
}
|
||||
|
||||
public String getInfo() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
|
||||
if (args.length == 1 && (args[0].equals("?") || args[0].equals("help"))) {
|
||||
sender.sendMessage(new TextComponentTranslation(getHelp()));
|
||||
return;
|
||||
|
||||
try {
|
||||
String givenName = commandSender.getName();
|
||||
|
||||
if (args.length > 1)
|
||||
givenName = args[1];
|
||||
|
||||
EntityPlayer player = CommandBase.getPlayer(server, commandSender, givenName);
|
||||
String uuid = PlayerHelper.getUUIDFromPlayer(player).toString();
|
||||
SoulNetwork network = NetworkHelper.getSoulNetwork(uuid);
|
||||
|
||||
boolean displayHelp = args.length > 0 && args.length < 2;
|
||||
|
||||
try {
|
||||
switch (ValidCommands.valueOf(args[0].toUpperCase(Locale.ENGLISH))) {
|
||||
case SET: {
|
||||
if (displayHelp) {
|
||||
CommandBloodMagic.displayHelpString(commandSender, ValidCommands.SET.help);
|
||||
break;
|
||||
}
|
||||
|
||||
if (args.length == 3) {
|
||||
if (Utils.isInteger(args[2])) {
|
||||
int amount = Integer.parseInt(args[2]);
|
||||
network.setOrbTier(amount);
|
||||
CommandBloodMagic.displaySuccessString(commandSender, "commands.bloodmagic.success");
|
||||
} else {
|
||||
CommandBloodMagic.displayErrorString(commandSender, "commands.bloodmagic.error.arg.invalid");
|
||||
}
|
||||
} else {
|
||||
CommandBloodMagic.displayErrorString(commandSender, "commands.bloodmagic.error.arg.missing");
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case GET: {
|
||||
if (displayHelp) {
|
||||
CommandBloodMagic.displayHelpString(commandSender, ValidCommands.GET.help);
|
||||
break;
|
||||
}
|
||||
|
||||
if (args.length > 1)
|
||||
commandSender.sendMessage(new TextComponentString(TextHelper.localizeEffect("message.orb.currenttier", network.getOrbTier())));
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (IllegalArgumentException e) {
|
||||
CommandBloodMagic.displayErrorString(commandSender, "commands.bloodmagic.error.404");
|
||||
}
|
||||
} catch (PlayerNotFoundException e) {
|
||||
CommandBloodMagic.displayErrorString(commandSender, "commands.bloodmagic.error.404");
|
||||
}
|
||||
player = args.length < 2 ? getCommandSenderAsPlayer(sender) : getPlayer(server, sender, args[0]);
|
||||
uuid = PlayerHelper.getUUIDFromPlayer(player).toString();
|
||||
network = NetworkHelper.getSoulNetwork(uuid);
|
||||
|
||||
subExecute(server, sender, args);
|
||||
}
|
||||
|
||||
protected abstract void subExecute(MinecraftServer server, ICommandSender sender, String... args) throws CommandException;
|
||||
}
|
||||
|
||||
class Get extends OrbCommand {
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "get";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void subExecute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
|
||||
super.execute(server, sender, args);
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.orb.currenttier", network.getOrbTier()));
|
||||
}
|
||||
}
|
||||
|
||||
private enum ValidCommands {
|
||||
SET("commands.bloodmagic.orb.set.help"),
|
||||
GET("commands.bloodmagic.orb.get.help");
|
||||
class Set extends OrbCommand {
|
||||
//TODO: check whether maxTier check works with custom Blood Orbs
|
||||
int maxTier = OrbRegistry.getTierMap().size() - 1;
|
||||
|
||||
public String help;
|
||||
@Override
|
||||
public String getInfo() {
|
||||
return "" + maxTier;
|
||||
}
|
||||
|
||||
ValidCommands(String help) {
|
||||
this.help = help;
|
||||
@Override
|
||||
public String getName() {
|
||||
return "set";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void subExecute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
|
||||
super.execute(server, sender, args);
|
||||
|
||||
int targetTier;
|
||||
if (args.length == 1 && Utils.isInteger(args[0]))
|
||||
targetTier = Integer.parseInt(args[0]);
|
||||
else if (args.length == 2 && Utils.isInteger(args[1]))
|
||||
targetTier = Integer.parseInt(args[1]);
|
||||
else {
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.error.arg.invalid"));
|
||||
sender.sendMessage(new TextComponentTranslation(this.getUsage(sender)));
|
||||
return;
|
||||
}
|
||||
if (targetTier < 0) {
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.error.negative"));
|
||||
return;
|
||||
} else if (targetTier > maxTier) {
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.orb.error.tierTooHigh", getInfo()));
|
||||
return;
|
||||
}
|
||||
network.setOrbTier(targetTier);
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.success"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,144 @@
|
|||
package WayofTime.bloodmagic.command.sub;
|
||||
|
||||
import WayofTime.bloodmagic.BloodMagic;
|
||||
import WayofTime.bloodmagic.ritual.Ritual;
|
||||
import WayofTime.bloodmagic.tile.TileMasterRitualStone;
|
||||
import WayofTime.bloodmagic.util.helper.RitualHelper;
|
||||
import net.minecraft.command.CommandException;
|
||||
import net.minecraft.command.ICommandSender;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.text.TextComponentTranslation;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.server.command.CommandTreeBase;
|
||||
import net.minecraftforge.server.command.CommandTreeHelp;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class SubCommandRitual extends CommandTreeBase {
|
||||
public SubCommandRitual() {
|
||||
addSubcommand(new RitualCreate());
|
||||
addSubcommand(new RitualRepair());
|
||||
addSubcommand(new CommandTreeHelp(this));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "ritual";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUsage(ICommandSender sender) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public TileMasterRitualStone getMRS(ICommandSender sender) {
|
||||
BlockPos pos = sender.getPosition().down();
|
||||
World world = sender.getEntityWorld();
|
||||
TileEntity tile = world.getTileEntity(pos);
|
||||
if (tile instanceof TileMasterRitualStone) {
|
||||
return (TileMasterRitualStone) tile;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
class RitualCreate extends CommandTreeBase {
|
||||
public List<String> ritualList = new ArrayList<>();
|
||||
public RitualCreate() {
|
||||
for (Ritual ritual : BloodMagic.RITUAL_MANAGER.getRituals()) {
|
||||
ritualList.add(BloodMagic.RITUAL_MANAGER.getId(ritual));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getTabCompletions(MinecraftServer server, ICommandSender sender, String[] args, @Nullable BlockPos targetPos) {
|
||||
return ritualList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "create";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(MinecraftServer server, ICommandSender sender, String... args) throws CommandException {
|
||||
if (args.length == 0) {
|
||||
sender.sendMessage(new TextComponentTranslation("commands.blooodmagic.ritual.create.noRitual"));
|
||||
return;
|
||||
} else if (args.length == 2 && (args[1].equals("help") || args[1].equals("?"))) {
|
||||
sender.sendMessage(new TextComponentTranslation(BloodMagic.RITUAL_MANAGER.getRitual(args[0]).getUnlocalizedName() + ".info"));
|
||||
return;
|
||||
}
|
||||
EntityPlayerMP player = args.length < 3 ? getCommandSenderAsPlayer(sender) : getPlayer(server, sender, args[1]);
|
||||
boolean safe = false;
|
||||
if (args.length > 1 && args.length < 4) {
|
||||
int k = args.length - 1;
|
||||
if (args[k].equals("true") || args[k].equals("false")) {
|
||||
safe = Boolean.parseBoolean(args[k]);
|
||||
} else if (args[1].equals("safe"))
|
||||
safe = true;
|
||||
else
|
||||
player = getPlayer(server, sender, args[1]);
|
||||
}
|
||||
|
||||
BlockPos pos = player.getPosition().down();
|
||||
World world = player.getEntityWorld();
|
||||
EnumFacing direction = player.getHorizontalFacing();
|
||||
|
||||
if (RitualHelper.createRitual(world, pos, direction, BloodMagic.RITUAL_MANAGER.getRitual(args[0]), safe))
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.success"));
|
||||
else if (!safe)
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.ritual.create.error.outOfWorldBoundaries"));
|
||||
else
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.ritaul.create.error.unsafe"));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUsage(ICommandSender sender) {
|
||||
return "commands.bloodmagic.ritual.create.help";
|
||||
}
|
||||
}
|
||||
|
||||
class RitualRepair extends CommandTreeBase {
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "repair";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUsage(ICommandSender sender) {
|
||||
return "commands.bloodmagic.ritual.repair.usage";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(MinecraftServer server, ICommandSender sender, String... args) throws CommandException {
|
||||
EntityPlayerMP player = args.length < 2 ? getCommandSenderAsPlayer(sender) : getPlayer(server, sender, args[0]);
|
||||
TileMasterRitualStone tile = getMRS(player);
|
||||
boolean safe = false;
|
||||
if (args.length > 0 && args.length < 3) {
|
||||
int k = args.length - 1;
|
||||
if (args[k].equals("true") || args[k].equals("false")) {
|
||||
safe = Boolean.parseBoolean(args[k]);
|
||||
} else if (args[0].equals("safe"))
|
||||
safe = true;
|
||||
}
|
||||
if (tile != null)
|
||||
if (RitualHelper.repairRitualFromRuins(tile, safe))
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.success"));
|
||||
else if (!safe)
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.ritual.create.error.outOfWorldBoundaries"));
|
||||
else
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.ritaul.create.error.unsafe"));
|
||||
else
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.ritual.error.noMRS"));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,329 @@
|
|||
package WayofTime.bloodmagic.command.sub;
|
||||
|
||||
import WayofTime.bloodmagic.core.data.Binding;
|
||||
import WayofTime.bloodmagic.item.ItemTelepositionFocus;
|
||||
import WayofTime.bloodmagic.teleport.Teleports;
|
||||
import WayofTime.bloodmagic.tile.TileTeleposer;
|
||||
import WayofTime.bloodmagic.util.Utils;
|
||||
import net.minecraft.command.CommandException;
|
||||
import net.minecraft.command.ICommandSender;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.text.TextComponentString;
|
||||
import net.minecraft.util.text.TextComponentTranslation;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.server.command.CommandTreeBase;
|
||||
import net.minecraftforge.server.command.CommandTreeHelp;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
public class SubCommandTeleposer extends CommandTreeBase {
|
||||
public static final Set<TileTeleposer> teleposerSet = new HashSet<>(); //contains "valid" teleposers (teleposers with focus), teleposers check themselves every 100 ticks.
|
||||
public static TileTeleposer[] teleposerArray;
|
||||
|
||||
public SubCommandTeleposer() {
|
||||
addSubcommand(new OutputTeleposerList());
|
||||
addSubcommand(new TeleportToTeleposer());
|
||||
addSubcommand(new TeleportToTeleposerFocus());
|
||||
addSubcommand(new RemoveTeleposer());
|
||||
addSubcommand(new RecursiveRemoveTeleposer());
|
||||
addSubcommand(new RemoveAllOfPlayer());
|
||||
addSubcommand(new CommandTreeHelp(this));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRequiredPermissionLevel() {
|
||||
return 2;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "teleposer";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUsage(ICommandSender sender) {
|
||||
return "commands.bloodmagic.teleposer.usage";
|
||||
}
|
||||
|
||||
abstract class TeleposeHelper extends CommandTreeBase {
|
||||
public EntityPlayer player;
|
||||
|
||||
@Override
|
||||
public String getUsage(ICommandSender sender) {
|
||||
return "commands.bloodmagic.teleposer." + getName() + ".usage";
|
||||
}
|
||||
|
||||
public String getHelp() {
|
||||
return "commands.bloodmagic.teleposer." + getName() + ".help";
|
||||
}
|
||||
|
||||
public String getInfo() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRequiredPermissionLevel() {
|
||||
return 2;
|
||||
}
|
||||
|
||||
public TileTeleposer[] cleanUpAndCreateArrayFromTeleposerList(EntityPlayer player) {
|
||||
if (player == null)
|
||||
for (TileTeleposer i : teleposerSet) {
|
||||
if (i == null || i.isInvalid() || i.isEmpty()) {
|
||||
teleposerSet.remove(i);
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (TileTeleposer i : teleposerSet) {
|
||||
if (i == null || i.isInvalid() || i.isEmpty()) {
|
||||
teleposerSet.remove(i);
|
||||
continue;
|
||||
}
|
||||
ItemStack stack = i.getStackInSlot(0);
|
||||
ItemTelepositionFocus focus = (ItemTelepositionFocus) stack.getItem();
|
||||
Binding binding = focus.getBinding(stack);
|
||||
if (binding != null && !binding.getOwnerName().equals(player.getName())) {
|
||||
teleposerSet.remove(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
teleposerArray = teleposerSet.toArray(new TileTeleposer[0]);
|
||||
return teleposerArray;
|
||||
|
||||
}
|
||||
|
||||
public void sendOwnedTeleposerList(ICommandSender sender, EntityPlayer player) {
|
||||
teleposerArray = cleanUpAndCreateArrayFromTeleposerList(player);
|
||||
for (int i = 0; i < teleposerArray.length; i++) {
|
||||
ItemStack stack = teleposerArray[i].getStackInSlot(0);
|
||||
ItemTelepositionFocus focus = (ItemTelepositionFocus) stack.getItem();
|
||||
Binding binding = focus.getBinding(stack);
|
||||
if (binding != null) {
|
||||
String name = binding.getOwnerName();
|
||||
if (player != null) {
|
||||
if (name.equals(player.getName()))
|
||||
sender.sendMessage(new TextComponentString(i + new TextComponentTranslation("commands.bloodmagic.teleposer.anddimension").getFormattedText() + teleposerArray[i].getWorld().provider.getDimension() + " " + teleposerArray[i].getPos() + " " + new TextComponentTranslation("commands.bloodmagic.teleposer.focusanddim").getFormattedText() + " " + focus.getWorld(stack).provider.getDimension() + " " + focus.getBlockPos(stack) + " " + new TextComponentTranslation("commands.bloodmagic.teleposer.owner").getFormattedText() + " " + name));
|
||||
} else
|
||||
sender.sendMessage(new TextComponentString(i + new TextComponentTranslation("commands.bloodmagic.teleposer.anddimension").getFormattedText() + teleposerArray[i].getWorld().provider.getDimension() + " " + teleposerArray[i].getPos() + " " + new TextComponentTranslation("commands.bloodmagic.teleposer.focusanddim").getFormattedText() + " " + focus.getWorld(stack).provider.getDimension() + " " + focus.getBlockPos(stack) + " " + new TextComponentTranslation("commands.bloodmagic.teleposer.owner").getFormattedText() + " " + name));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Integer getIDFromArgs(ICommandSender sender, String[] args) {
|
||||
int teleposerID;
|
||||
if (args.length == 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (Utils.isInteger(args[0]))
|
||||
teleposerID = Integer.parseInt(args[0]);
|
||||
else if (args.length > 1 && Utils.isInteger(args[1]))
|
||||
teleposerID = Integer.parseInt(args[1]);
|
||||
else {
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.error.arg.invalid"));
|
||||
sender.sendMessage(new TextComponentTranslation(this.getUsage(sender)));
|
||||
return null;
|
||||
}
|
||||
if (teleposerID < 0) {
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.error.negative"));
|
||||
return null;
|
||||
}
|
||||
return teleposerID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
|
||||
if (args.length == 1 && args[0].equals("?") || args[0].equals("help")) {
|
||||
sender.sendMessage(new TextComponentTranslation(getHelp()));
|
||||
return;
|
||||
}
|
||||
if (!(getName().equals("rmrf") || getName().equals("remove"))) {
|
||||
this.player = args.length < 2 ? getCommandSenderAsPlayer(sender) : getPlayer(server, sender, args[0]);
|
||||
}
|
||||
subExecute(server, sender, args);
|
||||
}
|
||||
|
||||
protected abstract void subExecute(MinecraftServer server, ICommandSender sender, String... args) throws CommandException;
|
||||
}
|
||||
|
||||
class OutputTeleposerList extends TeleposeHelper {
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "list";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void subExecute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
|
||||
sendOwnedTeleposerList(sender, player);
|
||||
}
|
||||
}
|
||||
|
||||
class TeleportToTeleposer extends TeleposeHelper {
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "teleport";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void subExecute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
|
||||
Integer teleposerID = getIDFromArgs(sender, args);
|
||||
if (teleposerID == null)
|
||||
sendOwnedTeleposerList(sender, null);
|
||||
else if (!sender.getEntityWorld().isRemote) {
|
||||
if (teleposerID > teleposerArray.length) {
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.error.outofbounds"));
|
||||
return;
|
||||
}
|
||||
TileTeleposer brunhilde = teleposerArray[teleposerID]; // every teleposer is a brunhilde!
|
||||
BlockPos brunhildePos = brunhilde.getPos();
|
||||
World brunhildeWorld = brunhilde.getWorld();
|
||||
if (player.getEntityWorld().equals(brunhildeWorld))
|
||||
new Teleports.TeleportSameDim(brunhildePos, player, player.getUniqueID(), false).teleport();
|
||||
else
|
||||
new Teleports.TeleportToDim(brunhildePos, player, player.getUniqueID(), player.getEntityWorld(), brunhildeWorld.provider.getDimension(), false).teleport();
|
||||
} else
|
||||
return;
|
||||
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.success"));
|
||||
}
|
||||
}
|
||||
|
||||
class TeleportToTeleposerFocus extends TeleposeHelper {
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "teleportfocus";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void subExecute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
|
||||
Integer teleposerID = getIDFromArgs(sender, args);
|
||||
if (teleposerID == null)
|
||||
sendOwnedTeleposerList(sender, null);
|
||||
else if (!sender.getEntityWorld().isRemote) {
|
||||
if (teleposerID > teleposerArray.length) {
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.outofbounds"));
|
||||
return;
|
||||
}
|
||||
TileTeleposer brunhilde = teleposerArray[teleposerID]; // every teleposer is a brunhilde!
|
||||
ItemStack stack = brunhilde.getStackInSlot(0);
|
||||
ItemTelepositionFocus focus = (ItemTelepositionFocus) stack.getItem();
|
||||
BlockPos brunhildeFocusPos = focus.getBlockPos(stack);
|
||||
World brunhildeFocusWorld = focus.getWorld(stack);
|
||||
if (player.getEntityWorld().equals(brunhildeFocusWorld))
|
||||
new Teleports.TeleportSameDim(brunhildeFocusPos, player, player.getUniqueID(), false).teleport();
|
||||
else
|
||||
new Teleports.TeleportToDim(brunhildeFocusPos, player, player.getUniqueID(), player.getEntityWorld(), brunhildeFocusWorld.provider.getDimension(), false).teleport();
|
||||
} else
|
||||
return;
|
||||
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.success"));
|
||||
}
|
||||
}
|
||||
|
||||
class RemoveTeleposer extends TeleposeHelper {
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "remove";
|
||||
}
|
||||
|
||||
public void subExecute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
|
||||
Integer teleposerID = getIDFromArgs(sender, args);
|
||||
if (teleposerID == null)
|
||||
sendOwnedTeleposerList(sender, null);
|
||||
else if (!sender.getEntityWorld().isRemote) {
|
||||
if (teleposerID > teleposerArray.length) {
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.outofbounds"));
|
||||
return;
|
||||
}
|
||||
TileTeleposer brunhilde = teleposerArray[teleposerID]; // every teleposer is a brunhilde!
|
||||
BlockPos brunhildePos = brunhilde.getPos();
|
||||
World brunhildeWorld = brunhilde.getWorld();
|
||||
brunhildeWorld.setBlockToAir(brunhildePos);
|
||||
cleanUpAndCreateArrayFromTeleposerList(null);
|
||||
} else
|
||||
return;
|
||||
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.success"));
|
||||
}
|
||||
}
|
||||
|
||||
class RecursiveRemoveTeleposer extends TeleposeHelper {
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "rmrf";
|
||||
}
|
||||
|
||||
public void subExecute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
|
||||
Integer teleposerID = getIDFromArgs(sender, args);
|
||||
if (teleposerID == null)
|
||||
sendOwnedTeleposerList(sender, null);
|
||||
else if (!sender.getEntityWorld().isRemote) {
|
||||
if (teleposerID > teleposerArray.length) {
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.outofbounds"));
|
||||
return;
|
||||
}
|
||||
TileTeleposer brunhilde = teleposerArray[teleposerID]; // every teleposer is a brunhilde!
|
||||
do {
|
||||
BlockPos brunhildePos = brunhilde.getPos();
|
||||
World brunhildeWorld = brunhilde.getWorld();
|
||||
ItemStack stack = brunhilde.getStackInSlot(0);
|
||||
ItemTelepositionFocus focus = (ItemTelepositionFocus) stack.getItem();
|
||||
BlockPos brunhildeFocusPos = focus.getBlockPos(stack);
|
||||
World brunhildeFocusWorld = focus.getWorld(stack);
|
||||
brunhilde.setInventorySlotContents(0, ItemStack.EMPTY);
|
||||
brunhildeWorld.setBlockToAir(brunhildePos);
|
||||
TileEntity testTile = brunhildeFocusWorld.getTileEntity(brunhildeFocusPos);
|
||||
if (!(testTile instanceof TileTeleposer) || ((TileTeleposer) testTile).getStackInSlot(0).isEmpty())
|
||||
break;
|
||||
for (TileTeleposer i : teleposerArray) {
|
||||
if (i.getPos().equals(brunhildeFocusPos)) {
|
||||
brunhilde = i;
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
} while (true);
|
||||
cleanUpAndCreateArrayFromTeleposerList(null);
|
||||
} else
|
||||
return;
|
||||
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.success"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class RemoveAllOfPlayer extends TeleposeHelper {
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "removeall";
|
||||
}
|
||||
|
||||
public void subExecute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
|
||||
cleanUpAndCreateArrayFromTeleposerList(player);
|
||||
|
||||
if (!sender.getEntityWorld().isRemote) {
|
||||
for (TileTeleposer i : teleposerArray) {
|
||||
i.setInventorySlotContents(0, ItemStack.EMPTY);
|
||||
i.getWorld().setBlockToAir(i.getPos());
|
||||
}
|
||||
|
||||
}
|
||||
cleanUpAndCreateArrayFromTeleposerList(null);
|
||||
|
||||
sender.sendMessage(new TextComponentTranslation("commands.bloodmagic.success"));
|
||||
|
||||
}
|
||||
}
|
||||
}
|
|
@ -3,10 +3,10 @@ package WayofTime.bloodmagic.item.sigil;
|
|||
import WayofTime.bloodmagic.core.data.Binding;
|
||||
import WayofTime.bloodmagic.iface.ISigil;
|
||||
import WayofTime.bloodmagic.teleport.TeleportQueue;
|
||||
import WayofTime.bloodmagic.teleport.Teleports;
|
||||
import WayofTime.bloodmagic.tile.TileTeleposer;
|
||||
import WayofTime.bloodmagic.util.helper.NBTHelper;
|
||||
import WayofTime.bloodmagic.util.helper.PlayerHelper;
|
||||
import WayofTime.bloodmagic.ritual.portal.Teleports;
|
||||
import WayofTime.bloodmagic.tile.TileTeleposer;
|
||||
import WayofTime.bloodmagic.util.helper.TextHelper;
|
||||
import net.minecraft.client.util.ITooltipFlag;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
package WayofTime.bloodmagic.ritual.portal;
|
||||
package WayofTime.bloodmagic.teleport;
|
||||
|
||||
import WayofTime.bloodmagic.core.data.SoulNetwork;
|
||||
import WayofTime.bloodmagic.core.data.SoulTicket;
|
||||
import WayofTime.bloodmagic.event.TeleposeEvent;
|
||||
import WayofTime.bloodmagic.teleport.Teleport;
|
||||
import WayofTime.bloodmagic.util.helper.NetworkHelper;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityList;
|
||||
|
@ -148,7 +147,7 @@ public class Teleports {
|
|||
|
||||
network.syphon(ticket(oldWorld, player, getTeleportCost()));
|
||||
|
||||
/* begin brandon3055 "BrandonsCore" intedimensional teleportation code */
|
||||
/* begin brandon3055 "BrandonsCore" interdimensional teleportation code */
|
||||
|
||||
PlayerList playerList = server.getPlayerList();
|
||||
|
|
@ -1,12 +1,13 @@
|
|||
package WayofTime.bloodmagic.tile;
|
||||
|
||||
import WayofTime.bloodmagic.block.BlockTeleposer;
|
||||
import WayofTime.bloodmagic.command.sub.SubCommandTeleposer;
|
||||
import WayofTime.bloodmagic.core.data.Binding;
|
||||
import WayofTime.bloodmagic.core.data.SoulTicket;
|
||||
import WayofTime.bloodmagic.event.TeleposeEvent;
|
||||
import WayofTime.bloodmagic.item.ItemTelepositionFocus;
|
||||
import WayofTime.bloodmagic.ritual.portal.Teleports;
|
||||
import WayofTime.bloodmagic.teleport.TeleportQueue;
|
||||
import WayofTime.bloodmagic.teleport.Teleports;
|
||||
import WayofTime.bloodmagic.util.Constants;
|
||||
import WayofTime.bloodmagic.util.Utils;
|
||||
import WayofTime.bloodmagic.util.helper.NetworkHelper;
|
||||
|
@ -56,6 +57,17 @@ public class TileTeleposer extends TileInventory implements ITickable {
|
|||
}
|
||||
|
||||
previousInput = currentInput;
|
||||
|
||||
if (world.getTotalWorldTime() % 100 == 0) {
|
||||
ItemStack focusStack = getStackInSlot(0);
|
||||
if (!focusStack.isEmpty()) {
|
||||
if (((ItemTelepositionFocus) focusStack.getItem()).getBinding(focusStack) != null)
|
||||
SubCommandTeleposer.teleposerSet.add(this);
|
||||
else
|
||||
SubCommandTeleposer.teleposerSet.remove(this);
|
||||
} else
|
||||
SubCommandTeleposer.teleposerSet.remove(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -66,14 +78,14 @@ public class TileTeleposer extends TileInventory implements ITickable {
|
|||
Binding binding = focus.getBinding(focusStack);
|
||||
if (binding == null)
|
||||
return;
|
||||
BlockPos focusPos = focus.getBlockPos(getStackInSlot(0));
|
||||
World focusWorld = focus.getWorld(getStackInSlot(0));
|
||||
BlockPos focusPos = focus.getBlockPos(focusStack);
|
||||
World focusWorld = focus.getWorld(focusStack);
|
||||
if (focusWorld == null)
|
||||
return;
|
||||
|
||||
TileEntity boundTile = focusWorld.getTileEntity(focusPos);
|
||||
if (boundTile instanceof TileTeleposer && boundTile != this) {
|
||||
final int focusLevel = (getStackInSlot(0).getItemDamage() + 1);
|
||||
final int focusLevel = (focusStack.getItemDamage() + 1);
|
||||
final int lpToBeDrained = (int) (0.5F * Math.sqrt((pos.getX() - focusPos.getX()) * (pos.getX() - focusPos.getX()) + (pos.getY() - focusPos.getY() + 1) * (pos.getY() - focusPos.getY() + 1) + (pos.getZ() - focusPos.getZ()) * (pos.getZ() - focusPos.getZ())));
|
||||
|
||||
if (NetworkHelper.syphonFromContainer(focusStack, SoulTicket.block(world, pos, lpToBeDrained * (focusLevel * 2 - 1) * (focusLevel * 2 - 1) * (focusLevel * 2 - 1)))) {
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
package WayofTime.bloodmagic.util.helper;
|
||||
|
||||
import WayofTime.bloodmagic.BloodMagic;
|
||||
import WayofTime.bloodmagic.core.RegistrarBloodMagicBlocks;
|
||||
import WayofTime.bloodmagic.ritual.EnumRuneType;
|
||||
import WayofTime.bloodmagic.ritual.IRitualStone;
|
||||
import WayofTime.bloodmagic.ritual.Ritual;
|
||||
import WayofTime.bloodmagic.ritual.RitualComponent;
|
||||
import WayofTime.bloodmagic.tile.TileMasterRitualStone;
|
||||
import com.google.common.collect.Lists;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
|
@ -14,6 +16,7 @@ import net.minecraft.util.math.BlockPos;
|
|||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.capabilities.Capability;
|
||||
import net.minecraftforge.common.capabilities.CapabilityInject;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
@ -96,10 +99,8 @@ public class RitualHelper {
|
|||
return true;
|
||||
else if (tile instanceof IRitualStone.Tile)
|
||||
return true;
|
||||
else if (tile != null && tile.hasCapability(RUNE_CAPABILITY, null))
|
||||
return true;
|
||||
else return tile != null && tile.hasCapability(RUNE_CAPABILITY, null);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public static void setRuneType(World world, BlockPos pos, EnumRuneType type) {
|
||||
|
@ -117,4 +118,94 @@ public class RitualHelper {
|
|||
world.notifyBlockUpdate(pos, state, state, 3);
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean createRitual(World world, BlockPos pos, EnumFacing direction, Ritual ritual, boolean safe) {
|
||||
|
||||
List<RitualComponent> components = Lists.newArrayList();
|
||||
ritual.gatherComponents(components::add);
|
||||
|
||||
if (abortConstruction(world, pos, direction, safe, components)) return false;
|
||||
|
||||
IBlockState mrs = RegistrarBloodMagicBlocks.RITUAL_CONTROLLER.getDefaultState();
|
||||
world.setBlockState(pos, mrs);
|
||||
|
||||
setRitualStones(direction, world, pos, components);
|
||||
return true;
|
||||
}
|
||||
|
||||
public static boolean abortConstruction(World world, BlockPos pos, EnumFacing direction, boolean safe, List<RitualComponent> components) {
|
||||
//TODO: can be optimized to check only for the first and last component if every ritual has those at the highest and lowest y-level respectivly.
|
||||
for (RitualComponent component : components) {
|
||||
BlockPos offset = component.getOffset(direction);
|
||||
BlockPos newPos = pos.add(offset);
|
||||
if (world.isOutsideBuildHeight(newPos) || (safe && !world.isAirBlock(newPos)))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean repairRitualFromRuins(TileMasterRitualStone tile, boolean safe) {
|
||||
Ritual ritual = tile.getCurrentRitual();
|
||||
EnumFacing direction;
|
||||
Pair<Ritual, EnumFacing> pair;
|
||||
if (ritual == null) {
|
||||
pair = getRitualFromRuins(tile);
|
||||
ritual = pair.getKey();
|
||||
direction = pair.getValue();
|
||||
} else
|
||||
direction = tile.getDirection();
|
||||
|
||||
World world = tile.getWorld();
|
||||
BlockPos pos = tile.getPos();
|
||||
|
||||
List<RitualComponent> components = Lists.newArrayList();
|
||||
ritual.gatherComponents(components::add);
|
||||
|
||||
if (abortConstruction(world, pos, direction, safe, components)) return false;
|
||||
|
||||
setRitualStones(direction, world, pos, components);
|
||||
return true;
|
||||
}
|
||||
|
||||
public static void setRitualStones(EnumFacing direction, World world, BlockPos pos, List<RitualComponent> gatheredComponents) {
|
||||
for (RitualComponent component : gatheredComponents) {
|
||||
BlockPos offset = component.getOffset(direction);
|
||||
BlockPos newPos = pos.add(offset);
|
||||
int meta = component.getRuneType().ordinal();
|
||||
IBlockState newState = RegistrarBloodMagicBlocks.RITUAL_STONE.getStateFromMeta(meta);
|
||||
world.setBlockState(newPos, newState);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static Pair<Ritual, EnumFacing> getRitualFromRuins(TileMasterRitualStone tile) {
|
||||
BlockPos pos = tile.getPos();
|
||||
World world = tile.getWorld();
|
||||
Ritual possibleRitual = tile.getCurrentRitual();
|
||||
EnumFacing possibleDirection = tile.getDirection();
|
||||
int highestCount = 0;
|
||||
|
||||
if (possibleRitual == null || possibleDirection == null)
|
||||
for (Ritual ritual : BloodMagic.RITUAL_MANAGER.getRituals()) {
|
||||
for (EnumFacing direction : EnumFacing.HORIZONTALS) {
|
||||
List<RitualComponent> components = Lists.newArrayList();
|
||||
ritual.gatherComponents(components::add);
|
||||
int currentCount = 0;
|
||||
|
||||
for (RitualComponent component : components) {
|
||||
BlockPos newPos = pos.add(component.getOffset(direction));
|
||||
if (isRuneType(world, newPos, component.getRuneType()))
|
||||
currentCount += 1;
|
||||
}
|
||||
if (currentCount > highestCount) {
|
||||
highestCount = currentCount;
|
||||
possibleRitual = ritual;
|
||||
possibleDirection = direction;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
return Pair.of(possibleRitual, possibleDirection);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -817,9 +817,8 @@ entity.bloodmagic.Mimic.name=Mimic
|
|||
commands.bloodmagic.error.arg.invalid=Invalid arguments
|
||||
commands.bloodmagic.error.arg.missing=Not enough arguments
|
||||
commands.bloodmagic.error.arg.player.missing=You must specify which player you wish to perform this action on.
|
||||
commands.bloodmagic.error.404=Command not found!
|
||||
commands.bloodmagic.error.unknown=Unknown command!
|
||||
commands.bloodmagic.error.perm=You do not have permission to use this command.
|
||||
commands.bloodmagic.error.negative=Amount must be a positive Integer.
|
||||
commands.bloodmagic.error.outofbounds=Given integer is too large (must be within list ID boundaries).
|
||||
|
||||
commands.bloodmagic.success=Executed successfully
|
||||
|
||||
|
@ -833,42 +832,67 @@ commands.bloodmagic.network.usage=/bloodmagic network [syphon|add|get|fill|cap]
|
|||
commands.bloodmagic.network.help=LP network utilities
|
||||
commands.bloodmagic.network.syphon.help=Removes the given amount of LP from the given player's LP network.
|
||||
commands.bloodmagic.network.syphon.success=Successfully syphoned %d LP from %s.
|
||||
commands.bloodmagic.network.syphon.usage=/bloodmagic network syphon [player] [amount]
|
||||
commands.bloodmagic.network.syphon.amountTooHigh=Cannot syphon more LP than available.
|
||||
commands.bloodmagic.network.add.help=Adds the given amount of LP to the given player's LP network. Follows standard LP gain rules.
|
||||
commands.bloodmagic.network.add.usage=/bloodmagic network add [player] [amount]
|
||||
commands.bloodmagic.network.add.success=Successfully added %d LP to %s's LP network.
|
||||
commands.bloodmagic.network.set.help=Sets the given player's LP to the given amount.
|
||||
commands.bloodmagic.network.set.usage=/bloodmagic network set [player] [amount]
|
||||
commands.bloodmagic.network.set.success=Successfully set %s's LP network to %d LP.
|
||||
commands.bloodmagic.network.get.help=Returns the amount of LP in the given player's LP network.
|
||||
commands.bloodmagic.network.get.usage=/bloodmagic network get [player]
|
||||
commands.bloodmagic.network.fill.help=Fills the given player's LP network to %d.
|
||||
commands.bloodmagic.network.fill.usage=/bloodmagic network fill [player]
|
||||
commands.bloodmagic.network.fill.success=Successfully filled %s's LP network.
|
||||
commands.bloodmagic.network.cap.help=Fills the given player's LP network to the max that their highest Blood Orb can store.
|
||||
commands.bloodmagic.network.cap.usage=/bloodmagic network cap [player]
|
||||
commands.bloodmagic.network.cap.success=Successfully capped off %s's LP network.
|
||||
|
||||
commands.bloodmagic.bind.usage=/bloodmagic bind [true|false] [player]
|
||||
|
||||
commands.bloodmagic.bind.usage=/bloodmagic bind [true|false] [player] ("?" or "help" for help)
|
||||
commands.bloodmagic.bind.help=Attempts to (un)bind the currently held item.
|
||||
commands.bloodmagic.bind.success=Binding successful
|
||||
commands.bloodmagic.bind.success=Successfully bound to %d.
|
||||
commands.bloodmagic.bind.remove.success=Unbinding successful
|
||||
commands.bloodmagic.bind.error.ownerEqualsTarget=Nothing changed: Target and current owner are equal.
|
||||
commands.bloodmagic.bind.error.notBound=Cannot unbind: Item not bound.
|
||||
commands.bloodmagic.bind.error.notBindable=Cannot bind: Item not bindable.
|
||||
|
||||
commands.bloodmagic.orb.usage=/bloodmagic orb [set|get] player [tier]
|
||||
commands.bloodmagic.orb.usage=/bloodmagic orb [set|get] player [tier] ("?" or "help" for help)
|
||||
commands.bloodmagic.orb.help=Used to set or get the Player's max Blood Orb tier.
|
||||
commands.bloodmagic.orb.get.help=Used to get the Player's max Blood Orb tier.
|
||||
commands.bloodmagic.orb.get.usage=/bloodmagic orb get [player|?|help]
|
||||
commands.bloodmagic.orb.set.help=Used to set the Player's max Blood Orb tier.
|
||||
commands.bloodmagic.orb.set.usage=/bloodmagic orb set [player|?|help]
|
||||
commands.bloodmagic.orb.currenttier=Current Orb tier is %d.
|
||||
commands.bloodmagic.orb.error.tierTooHigh=Orb tier cannot be higher than %d.
|
||||
|
||||
commands.bloodmagic.bind.failed.noPlayer=There is no player specified
|
||||
commands.bloodmagic.bind.failed.alreadyBound=Item is already bound; use /unbind to unbind it
|
||||
commands.bloodmagic.bind.failed.notBindable=Item cannot be bound
|
||||
commands.bloodmagic.unbind.usage=/unbind
|
||||
commands.bloodmagic.unbind.success=Item successfully unbound!
|
||||
commands.bloodmagic.unbind.failed.notBindable=Item cannot be unbound
|
||||
commands.bloodmagic.soulnetwork.usage=/soulnetwork <player> <add|subtract|fill|empty|get> [amount]
|
||||
commands.bloodmagic.soulnetwork.add.success=Successfully added %dLP to %s's Soul Network!
|
||||
commands.bloodmagic.soulnetwork.subtract.success=Successfully subtracted %dLP from %s's Soul Network!
|
||||
commands.bloodmagic.soulnetwork.fill.success=Successfully filled %s's Soul Network!
|
||||
commands.bloodmagic.soulnetwork.empty.success=Successfully emptied %s's Soul Network!
|
||||
commands.bloodmagic.soulnetwork.get.success=There is %dLP in %s's Soul Network!
|
||||
commands.bloodmagic.soulnetwork.noPlayer=There is no player specified
|
||||
commands.bloodmagic.soulnetwork.noCommand=There is no command specified
|
||||
commands.bloodmagic.soulnetwork.notACommand=That is not a valid command
|
||||
commands.bloodmagic.soulnetwork.fillMax.success=Successfully filled %s's Soul Network to their orb max!
|
||||
commands.bloodmagic.soulnetwork.create.success=Successfully created %s's Soul Network (Orb tier: %d)
|
||||
commands.bloodmagic.ritual.create.help=Creates the specified ritual with the MRS at your feet, ignores other blocks by default. (Optional parameters: ([<player> (safe|true|false)] | [safe|true|false]))
|
||||
commands.bloodmagic.ritual.repair.help=Repairs the ritual with the closest match to the remaining ritual stones, ignores other blocks by default. (Optional parameters: ([<player> (safe|true|false)] | [safe|true|false]))
|
||||
|
||||
commands.bloodmagic.ritual.create.noRitual=You must select a ritual. (Tab-completions are available!)
|
||||
commands.bloodmagic.ritaul.create.error.unsafe=Created or repaired ritual cannot be placed safely.
|
||||
commands.bloodmagic.ritual.create.error.outOfWorldBoundaries=Created or repaired ritual would be out of world boundaries.
|
||||
commands.bloodmagic.ritual.error.noMRS=You need to stand on a Master Ritual Stone to execute the command!
|
||||
|
||||
commands.bloodmagic.teleposer.usage=Teleposer Utilities ("?" or "help" for help)
|
||||
commands.bloodmagic.teleposer.list.help=Returns a list of all valid teleposers, optionally possessed by [player].
|
||||
commands.bloodmagic.teleposer.list.usage=/bloodmagic teleposer list [player|?|help]
|
||||
commands.bloodmagic.teleposer.teleport.help=Teleports to the location of the specified teleposer.
|
||||
commands.bloodmagic.teleposer.teleport.usage=/bloodmagic teleposer teleport [ID|?|help]
|
||||
commands.bloodmagic.teleposer.teleportfocus.help=Teleports to the location stored in the specified teleposer's focus.
|
||||
commands.bloodmagic.teleposer.teleportfocus.usage=/bloodmagic teleposer teleportfocus [ID|?|help]
|
||||
commands.bloodmagic.teleposer.rmrf.help=Follows teleposer foci and removes all teleposers along the path, starting with the specified teleposer.
|
||||
commands.bloodmagic.teleposer.rmrf.usage=/bloodmagic teleposer rmrf [ID|?|help]
|
||||
commands.bloodmagic.teleposer.remove.help=Removes the specified teleposer.
|
||||
commands.bloodmagic.teleposer.remove.usage=/bloodmagic teleposer remove [ID|?|help]
|
||||
commands.bloodmagic.teleposer.removeall.help=Removes all teleposers or all teleposers containing a focus bound to [player], if specified.
|
||||
commands.bloodmagic.teleposer.removeall.usage=/bloodmagic teleposer removeall [player|?|help]
|
||||
|
||||
#Used by commands.bloodmagic.teleposer.list for the dump sent to the player
|
||||
commands.bloodmagic.teleposer.anddimension=: Teleposer: DimID:
|
||||
commands.bloodmagic.teleposer.focusanddim=Focus: DimID:
|
||||
commands.bloodmagic.teleposer.owner=Owner:
|
||||
|
||||
|
||||
# GUI
|
||||
|
|
Loading…
Reference in a new issue