use of au.com.mineauz.minigames.MinigamePlayer in project Minigames by AddstarMC.
the class FinishSign method signUse.
@Override
public boolean signUse(Sign sign, MinigamePlayer player) {
if (player.isInMinigame() && player.getPlayer().getInventory().getItemInMainHand().getType() == Material.AIR) {
Minigame minigame = player.getMinigame();
if (minigame.isSpectator(player) || minigame.getState() == MinigameState.ENDED) {
return false;
}
if (!minigame.getFlags().isEmpty()) {
if (player.getPlayer().isOnGround()) {
if (plugin.pdata.checkRequiredFlags(player, minigame.getName(false)).isEmpty()) {
if (sign.getLine(2).isEmpty() || sign.getLine(2).equals(player.getMinigame().getName(false))) {
if (player.getMinigame().isTeamGame()) {
List<MinigamePlayer> w = new ArrayList<MinigamePlayer>(player.getTeam().getPlayers());
List<MinigamePlayer> l = new ArrayList<MinigamePlayer>(minigame.getPlayers().size() - player.getTeam().getPlayers().size());
for (Team t : TeamsModule.getMinigameModule(minigame).getTeams()) {
if (t != player.getTeam())
l.addAll(t.getPlayers());
}
plugin.pdata.endMinigame(minigame, w, l);
} else {
if (minigame.getType() == MinigameType.MULTIPLAYER) {
List<MinigamePlayer> w = new ArrayList<MinigamePlayer>(1);
w.add(player);
List<MinigamePlayer> l = new ArrayList<MinigamePlayer>(minigame.getPlayers().size());
l.addAll(minigame.getPlayers());
l.remove(player);
plugin.pdata.endMinigame(minigame, w, l);
} else
plugin.pdata.endMinigame(player);
}
plugin.pdata.partyMode(player, 3, 10L);
}
} else {
List<String> requiredFlags = plugin.pdata.checkRequiredFlags(player, minigame.getName(false));
String flags = "";
int num = requiredFlags.size();
for (int i = 0; i < num; i++) {
flags += requiredFlags.get(i);
if (i != num - 1) {
flags += ", ";
}
}
player.sendMessage(ChatColor.AQUA + "[Minigames] " + ChatColor.WHITE + MinigameUtils.getLang("sign.finish.requireFlags"));
player.sendMessage(ChatColor.GRAY + flags);
}
}
return true;
} else {
if (player.getPlayer().isOnGround()) {
if (player.getMinigame().isTeamGame()) {
List<MinigamePlayer> w = new ArrayList<MinigamePlayer>(player.getTeam().getPlayers());
List<MinigamePlayer> l = new ArrayList<MinigamePlayer>(minigame.getPlayers().size() - player.getTeam().getPlayers().size());
for (Team t : TeamsModule.getMinigameModule(minigame).getTeams()) {
if (t != player.getTeam())
l.addAll(t.getPlayers());
}
plugin.pdata.endMinigame(minigame, w, l);
} else {
if (minigame.getType() == MinigameType.MULTIPLAYER) {
List<MinigamePlayer> w = new ArrayList<MinigamePlayer>(1);
w.add(player);
List<MinigamePlayer> l = new ArrayList<MinigamePlayer>(minigame.getPlayers().size());
l.addAll(minigame.getPlayers());
l.remove(player);
plugin.pdata.endMinigame(minigame, w, l);
} else
plugin.pdata.endMinigame(player);
}
plugin.pdata.partyMode(player);
return true;
}
}
} else if (player.getPlayer().getInventory().getItemInMainHand().getType() != Material.AIR) {
player.sendMessage(ChatColor.RED + "[Minigames] " + ChatColor.WHITE + MinigameUtils.getLang("sign.emptyHand"));
}
return false;
}
use of au.com.mineauz.minigames.MinigamePlayer in project Minigames by AddstarMC.
the class MinigameTool method openMenu.
public void openMenu(MinigamePlayer player) {
Menu men = new Menu(2, "Set Tool Mode", player);
final MenuItemCustom miselect = new MenuItemCustom("Select", MinigameUtils.stringToList("Selects and area;or points visually"), Material.DIAMOND_BLOCK);
final MenuItemCustom mideselect = new MenuItemCustom("Deselect", MinigameUtils.stringToList("Deselects an;area or points"), Material.GLASS);
final MinigamePlayer fply = player;
miselect.setClick(new InteractionInterface() {
@Override
public Object interact(Object object) {
if (mode != null) {
mode.select(fply, minigame, TeamsModule.getMinigameModule(minigame).getTeam(team));
}
return miselect.getItem();
}
});
mideselect.setClick(new InteractionInterface() {
@Override
public Object interact(Object object) {
if (mode != null) {
mode.deselect(fply, minigame, TeamsModule.getMinigameModule(minigame).getTeam(team));
}
return mideselect.getItem();
}
});
men.addItem(mideselect, men.getSize() - 1);
men.addItem(miselect, men.getSize() - 2);
List<String> teams = new ArrayList<String>(TeamColor.values().length + 1);
for (TeamColor col : TeamColor.values()) teams.add(MinigameUtils.capitalize(col.toString().replace("_", " ")));
teams.add("None");
men.addItem(new MenuItemToolTeam("Team", Material.PAPER, new Callback<String>() {
@Override
public void setValue(String value) {
setTeam(TeamColor.matchColor(value.replace(" ", "_")));
}
@Override
public String getValue() {
if (getTeam() != null)
return MinigameUtils.capitalize(getTeam().toString().replace("_", " "));
return "None";
}
}, teams), men.getSize() - 3);
for (ToolMode m : ToolModes.getToolModes()) {
men.addItem(new MenuItemToolMode(m.getDisplayName(), MinigameUtils.stringToList(m.getDescription()), m.getIcon(), m));
}
men.displayMenu(player);
}
use of au.com.mineauz.minigames.MinigamePlayer in project Minigames by AddstarMC.
the class RegionDisplayManager method update.
public void update(Region region) {
Set<MinigamePlayer> watchers = Sets.newHashSet(activeWatchers.get(region));
ArmorStand stand = nameDisplay.remove(region);
if (stand != null)
stand.remove();
for (MinigamePlayer player : watchers) {
hide(region, player);
show(region, player);
}
}
use of au.com.mineauz.minigames.MinigamePlayer in project Minigames by AddstarMC.
the class RegionDisplayManager method hideAll.
public void hideAll(Player player) {
MinigamePlayer mplayer = Minigames.plugin.pdata.getMinigamePlayer(player);
Map<Region, IDisplayObject> regions = regionDisplays.remove(player);
if (regions != null) {
for (IDisplayObject display : regions.values()) {
display.remove();
}
for (Region region : regions.keySet()) {
hideInfo(region, mplayer);
}
}
Map<Node, IDisplayObject> nodes = nodeDisplays.remove(player);
if (nodes != null) {
for (IDisplayObject display : nodes.values()) {
display.remove();
}
for (Node node : nodes.keySet()) {
hideInfo(node, mplayer);
}
}
}
use of au.com.mineauz.minigames.MinigamePlayer in project Minigames by AddstarMC.
the class RegionDisplayManager method update.
public void update(Node node) {
Set<MinigamePlayer> watchers = Sets.newHashSet(activeWatchers.get(node));
ArmorStand stand = nameDisplay.remove(node);
if (stand != null)
stand.remove();
for (MinigamePlayer player : watchers) {
hide(node, player);
show(node, player);
}
}
Aggregations