mirror of
https://github.com/DRE2N/DungeonsXL.git
synced 2024-11-08 11:51:24 +01:00
Fixed announcers
This commit is contained in:
parent
704caef70b
commit
a3e890d704
@ -24,6 +24,7 @@ import io.github.dre2n.dungeonsxl.config.DMessage;
|
||||
import io.github.dre2n.dungeonsxl.dungeon.Dungeon;
|
||||
import io.github.dre2n.dungeonsxl.event.dgroup.DGroupCreateEvent;
|
||||
import io.github.dre2n.dungeonsxl.player.DGroup;
|
||||
import io.github.dre2n.dungeonsxl.util.DColor;
|
||||
import io.github.dre2n.dungeonsxl.util.GUIUtil;
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
@ -42,6 +43,7 @@ import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.bukkit.material.Wool;
|
||||
|
||||
/**
|
||||
* Represents a game announcement.
|
||||
@ -356,7 +358,6 @@ public class Announcer {
|
||||
updateButtons();
|
||||
Inventory gui = GUIUtil.createGUI(plugin, ChatColor.DARK_RED + name, buttons);
|
||||
plugin.addGUI(gui);
|
||||
player.closeInventory();
|
||||
player.openInventory(gui);
|
||||
}
|
||||
|
||||
@ -367,6 +368,7 @@ public class Announcer {
|
||||
public void clickGroupButton(Player player, ItemStack button) {
|
||||
DGroup dGroup = getDGroupByButton(button);
|
||||
DGroup pGroup = DGroup.getByPlayer(player);
|
||||
DColor color = DColor.getByDyeColor(((Wool) button.getData()).getColor());
|
||||
|
||||
for (DGroup group : dGroups) {
|
||||
if (dGroups.contains(pGroup) && pGroup != null && pGroup.isCustom() && pGroup.getCaptain() == player) {
|
||||
@ -387,14 +389,16 @@ public class Announcer {
|
||||
DGroupCreateEvent event = new DGroupCreateEvent(dGroup, player, DGroupCreateEvent.Cause.ANNOUNCER);
|
||||
Bukkit.getPluginManager().callEvent(event);
|
||||
if (!event.isCancelled()) {
|
||||
dGroups.set(buttons.indexOf(button), new DGroup(player));
|
||||
dGroups.set(buttons.indexOf(button), new DGroup(player, color));
|
||||
}
|
||||
|
||||
} else if (dGroup == null && pGroup != null) {
|
||||
pGroup.setName(color);
|
||||
dGroups.set(buttons.indexOf(button), pGroup);
|
||||
|
||||
} else if (pGroup != null && dGroups.contains(pGroup) && pGroup != dGroup) {
|
||||
dGroups.set(dGroups.indexOf(pGroup), null);
|
||||
pGroup.setName(color);
|
||||
dGroups.set(buttons.indexOf(button), pGroup);
|
||||
}
|
||||
|
||||
|
@ -21,6 +21,7 @@ import io.github.dre2n.dungeonsxl.DungeonsXL;
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.scheduler.BukkitTask;
|
||||
@ -45,6 +46,7 @@ public class AnnouncerCache {
|
||||
}
|
||||
}
|
||||
startAnnouncerTask(plugin.getMainConfig().getAnnouncmentInterval());
|
||||
Bukkit.getPluginManager().registerEvents(new AnnouncerListener(), plugin);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -77,7 +77,11 @@ public class DGroup {
|
||||
private int lives = -1;
|
||||
|
||||
public DGroup(Player player) {
|
||||
this(DungeonsXL.getInstance().getMainConfig().getGroupColorPriority().get(DungeonsXL.getInstance().getDGroups().size()).toString(), player);
|
||||
this("Group " + DungeonsXL.getInstance().getDGroups().size(), player);
|
||||
}
|
||||
|
||||
public DGroup(Player player, DColor color) {
|
||||
this(color.toString().replace("_", " "), player);
|
||||
}
|
||||
|
||||
public DGroup(String name, Player player) {
|
||||
@ -189,6 +193,14 @@ public class DGroup {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param name
|
||||
* the name to set
|
||||
*/
|
||||
public void setName(DColor color) {
|
||||
name = color.toString().replace("_", " ");
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the captain
|
||||
*/
|
||||
|
@ -18,6 +18,7 @@ package io.github.dre2n.dungeonsxl.util;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.DyeColor;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
/**
|
||||
* Links different color types together.
|
||||
@ -79,4 +80,32 @@ public enum DColor {
|
||||
return dye.getWoolData();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param color
|
||||
* the DyeColor to check
|
||||
* @return the matching DColor or null
|
||||
*/
|
||||
public static DColor getByDyeColor(DyeColor color) {
|
||||
for (DColor dColor : values()) {
|
||||
if (dColor.dye == color) {
|
||||
return dColor;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param color
|
||||
* the ChatColor to check
|
||||
* @return the matching DColor or null
|
||||
*/
|
||||
public static DColor getByChatColor(ChatColor color) {
|
||||
for (DColor dColor : values()) {
|
||||
if (dColor.chat == color) {
|
||||
return dColor;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user