diff --git a/src/de/anura/core/AnuraCore.java b/src/de/anura/core/AnuraCore.java index a2026a0..01f3840 100644 --- a/src/de/anura/core/AnuraCore.java +++ b/src/de/anura/core/AnuraCore.java @@ -45,6 +45,7 @@ import org.bukkit.material.MaterialData; import org.bukkit.material.Stairs; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.messaging.PluginMessageListener; +import org.bukkit.scoreboard.Objective; import org.bukkit.util.Vector; public class AnuraCore extends JavaPlugin implements PluginMessageListener { @@ -153,12 +154,16 @@ public class AnuraCore extends JavaPlugin implements PluginMessageListener { Inventories.registerInventory("LOBBY", "lobby_inv", ChatColor.DARK_BLUE); Inventories.putIntoInventory("LOBBY", 0, Inventories.buildItems(Material.SLIME_BALL, "inv_lobby_jump", ChatColor.DARK_GREEN)); - Inventories.putIntoInventory("LOBBY", 3, Inventories.buildItems(Material.WATER_BUCKET, "inv_lobby_swim", ChatColor.DARK_BLUE)); + Inventories.putIntoInventory("LOBBY", 1, Inventories.buildItems(Material.WATER_BUCKET, "inv_lobby_swim", ChatColor.DARK_AQUA)); + Inventories.putIntoInventory("LOBBY", 3, Inventories.buildItems(Material.EXP_BOTTLE, "inv_lobby_xpbattle", ChatColor.GREEN)); + Inventories.putIntoInventory("LOBBY", 4, Inventories.buildItems(Material.POTION, "inv_lobby_pool", ChatColor.BLUE)); Inventories.putIntoInventory("LOBBY", 6, Inventories.buildItems(Material.WOOD_DOOR, "tp_to_spawn", ChatColor.GOLD)); Inventories.putIntoInventory("LOBBY", 8, Inventories.buildItems(Material.ENDER_PEARL, "inv_lobby_back", ChatColor.YELLOW)); Inventories.registerAction("LOBBY", 0, Inventories.Action.COMMAND, "jumpinv"); - Inventories.registerAction("LOBBY", 3, Inventories.Action.TELEPORT, new Location(Bukkit.getWorld("lobby"), -288, 32, -1714)); + Inventories.registerAction("LOBBY", 1, Inventories.Action.TELEPORT, new Location(Bukkit.getWorld("lobby"), -288, 32, -1714)); + Inventories.registerAction("LOBBY", 3, Inventories.Action.COMMAND, "toggleminigame xpbattle"); + Inventories.registerAction("LOBBY", 1, Inventories.Action.COMMAND, "toggleminigame pool"); Inventories.registerAction("LOBBY", 6, Inventories.Action.COMMAND, "spawn"); Inventories.registerAction("LOBBY", 8, Inventories.Action.OPEN_INV, "GAMEMODES"); @@ -328,7 +333,7 @@ public class AnuraCore extends JavaPlugin implements PluginMessageListener { return true; } else if(cmd.getName().equalsIgnoreCase("toggledbljump")) { - if(!(sender instanceof Player)) { + if(P == null) { API.statusMsg(sender, "only_player_cmd", false); return true; } @@ -338,6 +343,77 @@ public class AnuraCore extends JavaPlugin implements PluginMessageListener { features.enableFeature(P, Features.Feature.DOUBLE_JUMP); } return true; + } else if (cmd.getName().equalsIgnoreCase("joinminigame")) { + if (P == null) { + API.statusMsg(sender, "only_player_cmd", false); + return true; + } + if (args.length != 1) { + return false; + } + if (args[0].equalsIgnoreCase("xpbattle")) { + Objective o = Bukkit.getScoreboardManager().getMainScoreboard().getObjective("xpBattleJoin"); + if (o == null) return true; + o.getScore(P).setScore(1); + API.statusMsg(sender, "joined_xpBattle", true); + return true; + } else if (args[0].equalsIgnoreCase("pool")) { + Objective o = Bukkit.getScoreboardManager().getMainScoreboard().getObjective("poolJoin"); + if (o == null) return true; + o.getScore(P).setScore(1); + API.statusMsg(sender, "joined_pool", true); + return true; + } + } else if (cmd.getName().equalsIgnoreCase("leaveminigame")) { + if (P == null) { + API.statusMsg(sender, "only_player_cmd", false); + return true; + } + if (args.length != 1) { + return false; + } + if (args[0].equalsIgnoreCase("xpbattle")) { + Objective o = Bukkit.getScoreboardManager().getMainScoreboard().getObjective("xpBattleJoin"); + if (o == null) return true; + o.getScore(P).setScore(0); + API.statusMsg(sender, "left_xpBattle", true); + return true; + } else if (args[0].equalsIgnoreCase("pool")) { + Objective o = Bukkit.getScoreboardManager().getMainScoreboard().getObjective("poolJoin"); + if (o == null) return true; + o.getScore(P).setScore(0); + API.statusMsg(sender, "left_pool", true); + return true; + } + } else if (cmd.getName().equalsIgnoreCase("toggleminigame")) { + if (P == null) { + API.statusMsg(sender, "only_player_cmd", false); + return true; + } + if (args.length != 1) { + return false; + } + if (args[0].equalsIgnoreCase("xpbattle")) { + Objective o = Bukkit.getScoreboardManager().getMainScoreboard().getObjective("xpBattleJoin"); + if (o == null) return true; + if (o.getScore(P).getScore() == 0) { + Bukkit.dispatchCommand(sender, "joinminigame xpBattle"); + return true; + } else { + Bukkit.dispatchCommand(sender, "leaveminigame xpBattle"); + return true; + } + } else if (args[0].equalsIgnoreCase("pool")) { + Objective o = Bukkit.getScoreboardManager().getMainScoreboard().getObjective("poolJoin"); + if (o == null) return true; + if (o.getScore(P).getScore() == 0) { + Bukkit.dispatchCommand(sender, "joinminigame pool"); + return true; + } else { + Bukkit.dispatchCommand(sender, "leaveminigame pool"); + return true; + } + } } else if(cmd.getName().equalsIgnoreCase("updatecommandblocks")) { diff --git a/src/plugin.yml b/src/plugin.yml index 6735878..18cdfc4 100644 --- a/src/plugin.yml +++ b/src/plugin.yml @@ -72,4 +72,13 @@ commands: usage: / {, , }... toggledbljump: description: Toggles the double jump - usage: / \ No newline at end of file + usage: / + joinminigame: + description: Join a redstone minigame + usage: / (xpBattle|pool) + leaveminigame: + description: Leave a redstone minigame + usage: / (xpBattle|pool) + toggleminigame: + description: Join/Leave a redstone minigame + usage: / (xpBattle|pool) \ No newline at end of file