diff --git a/src/main/java/org/ultramine/commands/CommandContext.java b/src/main/java/org/ultramine/commands/CommandContext.java index 0810fd5..5628be8 100644 --- a/src/main/java/org/ultramine/commands/CommandContext.java +++ b/src/main/java/org/ultramine/commands/CommandContext.java @@ -101,8 +101,7 @@ public void notifyAdmins(String messageKey, Object... messageArgs) { - //Не помню, где теперь этот метод и как называется... - //CommandBase.notifyAdmins(sender, messageKey, messageArgs); + CommandBase.func_152373_a(sender, null, messageKey, messageArgs); } public void checkSenderPermission(String permission) diff --git a/src/main/java/org/ultramine/commands/basic/BasicCommands.java b/src/main/java/org/ultramine/commands/basic/BasicCommands.java index 9853e10..ffcf186 100644 --- a/src/main/java/org/ultramine/commands/basic/BasicCommands.java +++ b/src/main/java/org/ultramine/commands/basic/BasicCommands.java @@ -1,5 +1,9 @@ package org.ultramine.commands.basic; +import java.util.Map; + +import net.minecraft.server.MinecraftServer; + import org.ultramine.commands.Command; import org.ultramine.commands.CommandContext; import org.ultramine.server.Teleporter; @@ -50,4 +54,105 @@ } ctx.sendMessage("command.sethome.success"); } + + @Command( + name = "removehome", + group = "player", + aliases = {"rmhome"}, + permissions = {"command.home.multi"}, + syntax = {"<%name>"} + ) + public static void removehome(CommandContext ctx) + { + String name = ctx.get("name").asString(); + WarpLocation home = ctx.getSenderAsPlayer().getData().core().getHome(name); + ctx.check(home != null, "command.removehome.fail"); + ctx.getSenderAsPlayer().getData().core().getHomes().remove(name); + ctx.sendMessage("command.removehome.success"); + } + + @Command( + name = "homelist", + group = "player", + permissions = {"command.home.multi"} + ) + public static void homelist(CommandContext ctx) + { + ctx.getSenderAsPlayer(); + ctx.sendMessage("command.homelist.head"); + for(Map.Entry ent : ctx.getSenderAsPlayer().getData().core().getHomes().entrySet()) + ctx.sendMessage(" - %s [%s](%s, %s, %s)", ent.getKey(), ent.getValue().dimension, (int)ent.getValue().x, (int)ent.getValue().y, (int)ent.getValue().z); + } + + @Command( + name = "warp", + group = "player", + permissions = {"command.warp"}, + syntax = {"<%name>"} + ) + public static void warp(CommandContext ctx) + { + WarpLocation warp = MinecraftServer.getServer().getConfigurationManager().getDataLoader().getWarp(ctx.get("name").asString()); + ctx.check(warp != null, "command.warp.fail"); + Teleporter.tpLater(ctx.getSenderAsPlayer(), warp); + } + + @Command( + name = "setwarp", + group = "player", + permissions = {"command.setwarp"}, + syntax = {"<%name>", "<%name> <%radius>"} + ) + public static void setwarp(CommandContext ctx) + { + ctx.check(MinecraftServer.getServer().getConfigurationManager().getDataLoader().getWarp(ctx.get("name").asString()) == null, "command.setwarp.fail"); + WarpLocation warp = WarpLocation.getFromPlayer(ctx.getSenderAsPlayer()); + if(ctx.contains("radius")) + warp.randomRadius = ctx.get("radius").asDouble(); + MinecraftServer.getServer().getConfigurationManager().getDataLoader().setWarp(ctx.get("name").asString(), warp); + ctx.sendMessage("command.setwarp.success"); + } + + @Command( + name = "resetwarp", + group = "player", + permissions = {"command.resetwarp"}, + syntax = {"<%name>", "<%name> <%radius>"} + ) + public static void resetwarp(CommandContext ctx) + { + WarpLocation warp = WarpLocation.getFromPlayer(ctx.getSenderAsPlayer()); + if(ctx.contains("radius")) + warp.randomRadius = ctx.get("radius").asDouble(); + MinecraftServer.getServer().getConfigurationManager().getDataLoader().setWarp(ctx.get("name").asString(), warp); + ctx.sendMessage("command.resetwarp.success"); + } + + @Command( + name = "removewarp", + group = "player", + aliases = {"rmwarp"}, + permissions = {"command.removewarp"}, + syntax = {"<%name>"} + ) + public static void removewarp(CommandContext ctx) + { + String name = ctx.get("name").asString(); + ctx.check(MinecraftServer.getServer().getConfigurationManager().getDataLoader().getWarp(name) != null, "command.removewarp.fail"); + MinecraftServer.getServer().getConfigurationManager().getDataLoader().setWarp(name, null); + ctx.sendMessage("command.removewarp.success"); + } + + @Command( + name = "warplist", + group = "player", + permissions = {"command.warplist"} + ) + public static void warplist(CommandContext ctx) + { + ctx.getSenderAsPlayer(); + ctx.sendMessage("command.warplist.head"); + for(Map.Entry ent : MinecraftServer.getServer().getConfigurationManager().getDataLoader().getWarps().entrySet()) + ctx.sendMessage(" - %s [%s](%s, %s, %s)", ent.getKey(), ent.getValue().dimension, (int)ent.getValue().x, (int)ent.getValue().y, (int)ent.getValue().z); + } } diff --git a/src/main/resources/assets/ultramine/lang/en_US.lang b/src/main/resources/assets/ultramine/lang/en_US.lang index 5e76d21..83ae1f7 100644 --- a/src/main/resources/assets/ultramine/lang/en_US.lang +++ b/src/main/resources/assets/ultramine/lang/en_US.lang @@ -49,4 +49,35 @@ command.sethome.usage=/sethome [name] command.sethome.description=Sets your /home teleportation point command.sethome.success=Home set -command.sethome.multi.fail=You have no rights tp set multiple homes \ No newline at end of file +command.sethome.multi.fail=You have no rights tp set multiple homes + +command.removehome.usage=/removehome +command.removehome.description=Removes your home with specified name +command.removehome.fail=Home with specified name not found +command.removehome.success=Home removed + +command.homelist.usage=/homelist +command.homelist.description=Displays list of your homes +command.homelist.head=Home list: + +command.warp.usage=/warp +command.warp.description=Teleports you to specified warp point +command.warp.fail=Warp not found + +command.setwarp.usage=/setwarp [randomradius] +command.setwarp.description=Sets new warp ar current location +command.setwarp.fail=Warp with specified name already set +command.setwarp.success=Warp set + +command.resetwarp.usage=/resetwarp [randomradius] +command.resetwarp.description=Sets new or overrides exists warp at current location +command.resetwarp.success=Warp set + +command.removewarp.usage=/removewarp +command.removewarp.description=Removes warp with specified name +command.removewarp.fail=Warp not found +command.removewarp.success=Warp removed + +command.warplist.usage=/warplist +command.warplist.description=Displays list of all server warps +command.warplist.head=Warp list: