Add command/item to join/leave a redstone minigame

This commit is contained in:
kaenganxt
2014-10-26 16:44:39 +01:00
parent 0309e78657
commit 44770f619b
2 changed files with 89 additions and 4 deletions

View File

@@ -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"))
{

View File

@@ -72,4 +72,13 @@ commands:
usage: /<command> {<x1>, <y1>, <z1>}...
toggledbljump:
description: Toggles the double jump
usage: /<command>
usage: /<command>
joinminigame:
description: Join a redstone minigame
usage: /<command> (xpBattle|pool)
leaveminigame:
description: Leave a redstone minigame
usage: /<command> (xpBattle|pool)
toggleminigame:
description: Join/Leave a redstone minigame
usage: /<command> (xpBattle|pool)