Fix memmory leaks
This commit is contained in:
parent
416c555e0d
commit
a3ddeaac9a
|
@ -11,7 +11,7 @@ import java.util.List;
|
|||
|
||||
public class Interface {
|
||||
|
||||
private Player player;
|
||||
protected Player player;
|
||||
private List<Button> buttons = new ArrayList<>();
|
||||
private List<Object> data = new ArrayList<>();
|
||||
|
||||
|
@ -19,6 +19,7 @@ public class Interface {
|
|||
setData(data);
|
||||
setPlayer(viewer);
|
||||
setButtons(buttons);
|
||||
InterfaceManager.cleanUp(this);
|
||||
}
|
||||
|
||||
public void setData(Object... data) {
|
||||
|
@ -72,4 +73,10 @@ public class Interface {
|
|||
return null;
|
||||
}
|
||||
|
||||
public void cleanUp() {
|
||||
player = null;
|
||||
buttons = null;
|
||||
data = null;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package tc.oc.commons.bukkit.gui;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.InventoryHolder;
|
||||
import org.bukkit.inventory.InventoryView;
|
||||
|
@ -65,4 +66,22 @@ public class InterfaceManager {
|
|||
return null;
|
||||
}
|
||||
|
||||
public static void cleanUp(Interface inventory) {
|
||||
for (Interface inv: inventories) {
|
||||
if (inv != inventory && inv.getPlayer() == inventory.getPlayer()) {
|
||||
inv.cleanUp();
|
||||
inventories.remove(inv);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void cleanUp(Player player) {
|
||||
for (Interface inventory: inventories) {
|
||||
if (inventory.getPlayer() == player) {
|
||||
inventory.cleanUp();
|
||||
inventories.remove(inventory);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,68 +0,0 @@
|
|||
package tc.oc.commons.bukkit.gui.buttons.lastPage;
|
||||
|
||||
import tc.oc.commons.bukkit.gui.Interface;
|
||||
import tc.oc.commons.bukkit.gui.InterfaceManager;
|
||||
import tc.oc.commons.bukkit.gui.buttons.Button;
|
||||
import tc.oc.commons.bukkit.gui.interfaces.ChestInterface;
|
||||
import tc.oc.commons.bukkit.gui.interfaces.SinglePageInterface;
|
||||
import tc.oc.commons.bukkit.util.Constants;
|
||||
import tc.oc.commons.bukkit.util.ItemCreator;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
||||
public class LastPageButton extends Button {
|
||||
|
||||
private SinglePageInterface page;
|
||||
|
||||
public LastPageButton(int slot) {
|
||||
super(null, slot);
|
||||
}
|
||||
|
||||
public LastPageButton(SinglePageInterface gui, int slot) {
|
||||
super(null, slot);
|
||||
this.page = gui;
|
||||
this.setIcon(new ItemCreator(Material.BARRIER)
|
||||
.setName(Constants.PREFIX + "Previous"));
|
||||
}
|
||||
|
||||
public SinglePageInterface getPage() {
|
||||
return this.page;
|
||||
}
|
||||
|
||||
public Interface getLastPage(ChestInterface gui) {
|
||||
if (this.page == null) {
|
||||
return gui.getParent();
|
||||
}
|
||||
try {
|
||||
int page = this.page.page;
|
||||
Interface previousInterface = getPage().getParent() != null ? getPage().getParent() : gui;
|
||||
try {
|
||||
Interface gui1 = /*page != 0 ? new SinglePageInterface(this.page.rawButtons, this.page.getSize(), this.page.rawTitle, this.page.getParent(), this.page.page - 1) :*/ previousInterface;
|
||||
if (gui1 instanceof SinglePageInterface) {
|
||||
// ((SinglePageInterface)gui1).updateButtons();
|
||||
}
|
||||
return gui1;
|
||||
} catch (Exception e) {
|
||||
return previousInterface;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
return gui;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void function(Player player) {
|
||||
Interface currentInterface = InterfaceManager.getInterface(player.getOpenInventory());
|
||||
//Interface lastPage = getLastPage((ChestInterface)currentInterface);
|
||||
//player.openInventory(lastPage.getInventory());
|
||||
if (currentInterface instanceof SinglePageInterface) {
|
||||
((SinglePageInterface)currentInterface).openLastPage(player);
|
||||
} else {
|
||||
Interface parent = ((ChestInterface) currentInterface).getParent();
|
||||
player.openInventory(parent.getInventory());
|
||||
//parent.updateButtons();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -10,9 +10,6 @@ import tc.oc.commons.bukkit.util.ItemCreator;
|
|||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
/**
|
||||
* Created by ShinyDialga45 on 4/10/2015.
|
||||
*/
|
||||
public class NextPageButton extends Button {
|
||||
|
||||
private SinglePageInterface page;
|
||||
|
@ -33,7 +30,7 @@ public class NextPageButton extends Button {
|
|||
nextPage.update();
|
||||
return nextPage != null ? nextPage : chestInterface;
|
||||
}
|
||||
SinglePageInterface nextPage = new SinglePageInterface(this.page.getPlayer(), this.page.rawButtons, this.page.getSize(), this.page.rawTitle, this.page, this.page.page + 1);
|
||||
SinglePageInterface nextPage = new SinglePageInterface(this.page.getPlayer(), this.page.rawButtons, this.page.getSize(), this.page.rawTitle, this.page.page + 1);
|
||||
nextPage.update();
|
||||
return nextPage != null ? nextPage : chestInterface;
|
||||
} catch (Exception e) {
|
||||
|
|
|
@ -12,15 +12,13 @@ import java.util.List;
|
|||
public class ChestInterface extends Interface {
|
||||
|
||||
private int size;
|
||||
public Interface parent;
|
||||
private Inventory inventory;
|
||||
private String title;
|
||||
|
||||
public ChestInterface(Player player, List<Button> buttons, int size, String title, Interface parent) {
|
||||
public ChestInterface(Player player, List<Button> buttons, int size, String title) {
|
||||
super(player, buttons);
|
||||
setSize(size);
|
||||
setTitle(title);
|
||||
setParent(parent);
|
||||
this.inventory = Bukkit.createInventory(new SimpleInterfaceHolder(inventory, this, player.getWorld()), getSize(), getTitle());
|
||||
//setInventory(new InterfaceInventory(this, inventory));
|
||||
}
|
||||
|
@ -47,17 +45,15 @@ public class ChestInterface extends Interface {
|
|||
return this.title;
|
||||
}
|
||||
|
||||
public void setParent(Interface parent) {
|
||||
this.parent = parent;
|
||||
}
|
||||
|
||||
public Interface getParent() {
|
||||
return this.parent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Inventory getInventory() {
|
||||
return this.inventory;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cleanUp() {
|
||||
super.cleanUp();
|
||||
inventory = null;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -35,7 +35,7 @@ public class ChestOptionsPageInterface extends SinglePageInterface {
|
|||
}
|
||||
|
||||
public ChestOptionsPageInterface(Player player, List<Button> buttons, int size, String title, Interface parent, int i, Object... data) {
|
||||
super(player, buttons, size, title + (i > 1 ? " - " + i : ""), parent, 1, data);
|
||||
super(player, buttons, size, title + (i > 1 ? " - " + i : ""), 1, data);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -78,9 +78,7 @@ public class ChestOptionsPageInterface extends SinglePageInterface {
|
|||
if (buttons.size() != 0) {
|
||||
ArrayList<Button> currentButtons = new ArrayList<>();
|
||||
for (Button button : getDefaultButtons()) {
|
||||
if (button.equals(this.lastPageButton)) {
|
||||
button.setIcon(button.getIcon().setSize(page - 1));
|
||||
} else if (button.equals(this.nextPageButton)) {
|
||||
if (button.equals(this.nextPageButton)) {
|
||||
button.setIcon(button.getIcon().setSize(page + 1));
|
||||
}
|
||||
button.setSlot(button.getSlot());
|
||||
|
@ -139,7 +137,6 @@ public class ChestOptionsPageInterface extends SinglePageInterface {
|
|||
EmptyButton button = new EmptyButton(integer);
|
||||
defaultButtons.add(button);
|
||||
}
|
||||
defaultButtons.add(this.lastPageButton);
|
||||
defaultButtons.add(this.nextPageButton);
|
||||
}
|
||||
|
||||
|
|
|
@ -31,8 +31,8 @@ public class ChestPageInterface extends ChestInterface {
|
|||
this(null, buttons, size, title, parent);
|
||||
}
|
||||
|
||||
public ChestPageInterface(Player player, List<Button> buttons, int size, String title, Interface parent, Object... data) {
|
||||
super(player, buttons, size, title, parent);
|
||||
public ChestPageInterface(Player player, List<Button> buttons, int size, String title, Object... data) {
|
||||
super(player, buttons, size, title);
|
||||
/*
|
||||
MultiPageInterfaces must be contain necessary default items, if it cannot contain the next page item
|
||||
(currently has the highest slot value of a necessary default item), it won't allow proper navagation.
|
||||
|
@ -58,7 +58,7 @@ public class ChestPageInterface extends ChestInterface {
|
|||
if (empty.getSlot() < getSize()) {
|
||||
buttons.add(empty);
|
||||
}
|
||||
pages.add(new ChestInterface(null, buttons, getSize(), getTitle(), getParent()));
|
||||
pages.add(new ChestInterface(null, buttons, getSize(), getTitle()));
|
||||
return;
|
||||
}
|
||||
int allButtons = getDefaultButtons().size() + getButtons().size();
|
||||
|
@ -98,7 +98,7 @@ public class ChestPageInterface extends ChestInterface {
|
|||
// currentButtons.remove(this.nextPageButton);
|
||||
}
|
||||
String suffix = i > 1 ? " - " + i : "";
|
||||
ChestInterface gui = new ChestInterface(null, currentButtons, getSize(), getTitle() + suffix, getParent());
|
||||
ChestInterface gui = new ChestInterface(null, currentButtons, getSize(), getTitle() + suffix);
|
||||
gui.updateInventory();
|
||||
pages.add(gui);
|
||||
}
|
||||
|
|
|
@ -13,14 +13,12 @@ import java.util.List;
|
|||
public class HopperInterface extends Interface {
|
||||
|
||||
private int size;
|
||||
private Interface parent;
|
||||
private Inventory inventory;
|
||||
private String title;
|
||||
|
||||
public HopperInterface(Player player, List<Button> buttons, String title, Interface parent) {
|
||||
super(player, buttons);
|
||||
setTitle(title);
|
||||
setParent(parent);
|
||||
this.inventory = Bukkit.createInventory(new SimpleInterfaceHolder(inventory, this, player.getWorld()), InventoryType.HOPPER, getTitle());
|
||||
/*//this.inventory = player.getInventory();
|
||||
//inventory = Bukkit.createInventory(new SimpleInterfaceHolder(inventory, this), InventoryType.valueOf(args), getTitle());
|
||||
|
@ -38,17 +36,15 @@ public class HopperInterface extends Interface {
|
|||
return this.title;
|
||||
}
|
||||
|
||||
public void setParent(Interface parent) {
|
||||
this.parent = parent;
|
||||
}
|
||||
|
||||
public Interface getParent() {
|
||||
return this.parent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Inventory getInventory() {
|
||||
return this.inventory;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cleanUp() {
|
||||
super.cleanUp();
|
||||
inventory = null;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,25 +0,0 @@
|
|||
package tc.oc.commons.bukkit.gui.interfaces;
|
||||
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import tc.oc.commons.bukkit.gui.Interface;
|
||||
|
||||
public class InterfaceInventory {
|
||||
|
||||
private Interface gui;
|
||||
private Inventory inventory;
|
||||
|
||||
public InterfaceInventory(Interface gui, Inventory inventory) {
|
||||
//InterfaceManager.registerInventory(this);
|
||||
this.gui = gui;
|
||||
this.inventory = inventory;
|
||||
}
|
||||
|
||||
public Interface getInterface() {
|
||||
return this.gui;
|
||||
}
|
||||
|
||||
public Inventory getInventory() {
|
||||
return this.inventory;
|
||||
}
|
||||
|
||||
}
|
|
@ -3,7 +3,6 @@ package tc.oc.commons.bukkit.gui.interfaces;
|
|||
import tc.oc.commons.bukkit.gui.Interface;
|
||||
import tc.oc.commons.bukkit.gui.buttons.Button;
|
||||
import tc.oc.commons.bukkit.gui.buttons.empty.EmptyButton;
|
||||
import tc.oc.commons.bukkit.gui.buttons.lastPage.LastPageButton;
|
||||
import tc.oc.commons.bukkit.gui.buttons.nextPage.NextPageButton;
|
||||
import tc.oc.commons.bukkit.util.Constants;
|
||||
import tc.oc.commons.bukkit.util.ItemCreator;
|
||||
|
@ -28,15 +27,14 @@ public class SinglePageInterface extends ChestInterface {
|
|||
public String rawTitle;
|
||||
public List<Button> rawButtons = new ArrayList<>();
|
||||
|
||||
public final LastPageButton lastPageButton = new LastPageButton(this, 0);
|
||||
public final NextPageButton nextPageButton = new NextPageButton(this, 8);
|
||||
|
||||
public SinglePageInterface(Player player, List<Button> buttons, int size, String title, Interface parent) {
|
||||
this(player, buttons, size, title, parent, 1);
|
||||
public SinglePageInterface(Player player, List<Button> buttons, int size, String title) {
|
||||
this(player, buttons, size, title, 1);
|
||||
}
|
||||
|
||||
public SinglePageInterface(Player player, List<Button> buttons, int size, String title, Interface parent, int page, Object... data) {
|
||||
super(player, buttons, size, title + (page > 1 ? " - " + page : ""), parent);
|
||||
public SinglePageInterface(Player player, List<Button> buttons, int size, String title, int page, Object... data) {
|
||||
super(player, buttons, size, title + (page > 1 ? " - " + page : ""));
|
||||
this.rawTitle = title;
|
||||
this.rawButtons = buttons;
|
||||
/*
|
||||
|
@ -53,7 +51,7 @@ public class SinglePageInterface extends ChestInterface {
|
|||
if (page > 0) {
|
||||
update();
|
||||
} else {
|
||||
player.openInventory(getParent().getInventory());
|
||||
player.openInventory(getInventory());
|
||||
//getParent().updateButtons();
|
||||
}
|
||||
}
|
||||
|
@ -155,7 +153,6 @@ public class SinglePageInterface extends ChestInterface {
|
|||
|
||||
public void setDefaultButtons() {
|
||||
defaultButtons.clear();
|
||||
defaultButtons.add(this.lastPageButton);
|
||||
defaultButtons.add(this.nextPageButton);
|
||||
for (Integer integer : new Integer[]{1, 2, 3, 4, 5, 6, 7, 9, 17, 18, 26, 27, 35, 36, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53}) {
|
||||
if (integer > getSize()) {
|
||||
|
@ -198,4 +195,10 @@ public class SinglePageInterface extends ChestInterface {
|
|||
return this.defaultButtons;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cleanUp() {
|
||||
super.cleanUp();
|
||||
defaultButtons = null;
|
||||
rawButtons = null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,8 +16,8 @@ public class ChestRenderInterface extends ChestInterface {
|
|||
|
||||
private Coordinate origin;
|
||||
|
||||
public ChestRenderInterface(Player player, List<Button> buttons, int size, String title, Interface parent) {
|
||||
super(player, buttons, size, title, parent);
|
||||
public ChestRenderInterface(Player player, List<Button> buttons, int size, String title) {
|
||||
super(player, buttons, size, title);
|
||||
this.origin = new Coordinate(0, 0);
|
||||
}
|
||||
|
||||
|
|
|
@ -16,8 +16,8 @@ public class GridTextRenderInterface extends ChestRenderInterface {
|
|||
|
||||
private String text;
|
||||
|
||||
public GridTextRenderInterface(Player player, List<Button> buttons, int size, String title, Interface parent, String text) {
|
||||
super(player, buttons, size, title, parent);
|
||||
public GridTextRenderInterface(Player player, List<Button> buttons, int size, String title, String text) {
|
||||
super(player, buttons, size, title);
|
||||
this.text = text;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,24 +1,19 @@
|
|||
package tc.oc.pgm.listeners;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.event.EventBus;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
import tc.oc.commons.bukkit.event.InterfaceOpenEvent;
|
||||
import tc.oc.commons.bukkit.gui.Interface;
|
||||
import tc.oc.commons.bukkit.gui.InterfaceManager;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.Action;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.event.inventory.InventoryOpenEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import tc.oc.commons.bukkit.gui.buttons.Button;
|
||||
import tc.oc.commons.core.plugin.PluginFacet;
|
||||
import tc.oc.pgm.events.ObserverInteractEvent;
|
||||
import tc.oc.pgm.tokens.gui.MainTokenButton;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
|
@ -83,4 +78,9 @@ public class InterfaceListener implements Listener, PluginFacet {
|
|||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerleave(PlayerQuitEvent event) {
|
||||
InterfaceManager.cleanUp(event.getPlayer());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,33 +1,20 @@
|
|||
package tc.oc.pgm.menu;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import tc.oc.commons.bukkit.event.ObserverKitApplyEvent;
|
||||
import tc.oc.commons.bukkit.raindrops.RaindropConstants;
|
||||
import tc.oc.commons.bukkit.tokens.TokenUtil;
|
||||
import tc.oc.commons.core.util.Comparables;
|
||||
import tc.oc.pgm.events.MatchEndEvent;
|
||||
import tc.oc.pgm.events.ObserverInteractEvent;
|
||||
import tc.oc.pgm.match.Match;
|
||||
import tc.oc.pgm.match.MatchPlayer;
|
||||
import tc.oc.pgm.menu.gui.MainMenuButton;
|
||||
import tc.oc.pgm.teams.Team;
|
||||
import tc.oc.pgm.tokens.gui.MainTokenButton;
|
||||
|
||||
import java.time.Duration;
|
||||
|
||||
public class MenuListener implements Listener {
|
||||
|
||||
@EventHandler
|
||||
public void onObserverInteract(ObserverInteractEvent event) {
|
||||
if (event.getClickType() == ClickType.RIGHT) {
|
||||
MainMenuButton button = new MainMenuButton(event.getPlayer().getBukkit());
|
||||
MainMenuButton button = new MainMenuButton();
|
||||
ItemStack main = button.getIcon().create();
|
||||
//isSimilar so that stacks of the item will still open the menu
|
||||
if (event.getPlayer().getBukkit().getItemInHand().isSimilar(main)) {
|
||||
|
@ -39,7 +26,7 @@ public class MenuListener implements Listener {
|
|||
@EventHandler
|
||||
public void giveKitToObservers(ObserverKitApplyEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
ItemStack main = new MainMenuButton(player).getIcon().create();
|
||||
ItemStack main = new MainMenuButton().getIcon().create();
|
||||
player.getInventory().setItem(5, main);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ import tc.oc.pgm.tokens.gui.MainTokenMenu;
|
|||
|
||||
public class MainMenuButton extends Button {
|
||||
|
||||
public MainMenuButton(Player player) {
|
||||
public MainMenuButton() {
|
||||
super(new ItemCreator(Material.ENCHANTED_BOOK)
|
||||
.setName(Constants.PREFIX + "Main Menu")
|
||||
.addLore(Constants.SUBTEXT + "Open the Main Menu",
|
||||
|
|
|
@ -21,29 +21,20 @@ import java.util.HashMap;
|
|||
import java.util.List;
|
||||
|
||||
public class MainMenuInterface extends ChestInterface {
|
||||
private static MainMenuInterface instance;
|
||||
|
||||
public MainMenuInterface(Player player) {
|
||||
super(player, new ArrayList<>(), 27, "Main Menu", getInstance());
|
||||
super(player, new ArrayList<>(), 27, "Main Menu");
|
||||
updateButtons();
|
||||
instance = this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ChestInterface getParent() {
|
||||
return getInstance();
|
||||
}
|
||||
|
||||
public static MainMenuInterface getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateButtons() {
|
||||
List<Button> buttons = new ArrayList<>();
|
||||
|
||||
MainTokenButton.getInstance().setSlot(11);
|
||||
buttons.add(MainTokenButton.getInstance());
|
||||
MainTokenButton button = new MainTokenButton();
|
||||
|
||||
button.setSlot(11);
|
||||
buttons.add(button);
|
||||
|
||||
HashMap<String, Double> stats = StatsUtil.getStats(getPlayer());
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ import java.util.*;
|
|||
public class SettingsInterface extends SinglePageInterface {
|
||||
|
||||
public SettingsInterface(Player player) {
|
||||
super(player, new ArrayList<>(), 54, "Settings", MainMenuInterface.getInstance());
|
||||
super(player, new ArrayList<>(), 54, "Settings");
|
||||
update();
|
||||
}
|
||||
|
||||
|
@ -80,11 +80,14 @@ public class SettingsInterface extends SinglePageInterface {
|
|||
@Override
|
||||
public void setDefaultButtons() {
|
||||
defaultButtons.clear();
|
||||
defaultButtons.add(this.lastPageButton);
|
||||
this.lastPageButton.setSlot(49);
|
||||
this.lastPageButton.setIcon(new ItemCreator(Material.WOOL)
|
||||
.setData(14)
|
||||
.setName(ChatColor.GREEN + "Go Back"));
|
||||
defaultButtons.add(new Button(new ItemCreator(Material.WOOL)
|
||||
.setData(14)
|
||||
.setName(ChatColor.GREEN + "Go Back"), 49) {
|
||||
@Override
|
||||
public void function(Player player) {
|
||||
player.openInventory(new MainMenuInterface(player).getInventory());
|
||||
}
|
||||
});
|
||||
for (Integer integer : new Integer[]{
|
||||
0, 1, 2, 3, 4, 5, 6, 7, 8,
|
||||
9, 17,
|
||||
|
|
|
@ -33,10 +33,11 @@ public class TokenListener implements Listener {
|
|||
@EventHandler
|
||||
public void onObserverInteract(ObserverInteractEvent event) {
|
||||
if (event.getClickType() == ClickType.RIGHT) {
|
||||
ItemStack main = MainTokenButton.getInstance().getIcon().create();
|
||||
MainTokenButton button = new MainTokenButton();
|
||||
ItemStack main = button.getIcon().create();
|
||||
//isSimilar so that stacks of the item will still open the menu
|
||||
if (event.getPlayer().getBukkit().getItemInHand().isSimilar(main)) {
|
||||
MainTokenButton.getInstance().function(event.getPlayer().getBukkit());
|
||||
button.function(event.getPlayer().getBukkit());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,15 +7,9 @@ import org.bukkit.Material;
|
|||
import org.bukkit.entity.Player;
|
||||
|
||||
public class MainTokenButton extends Button {
|
||||
private static MainTokenButton instance;
|
||||
|
||||
public MainTokenButton() {
|
||||
super(13);
|
||||
instance = this;
|
||||
}
|
||||
|
||||
public static MainTokenButton getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -14,24 +14,10 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
|
||||
public class MainTokenMenu extends ChestInterface {
|
||||
private static MainTokenMenu instance;
|
||||
|
||||
private Player player;
|
||||
|
||||
public MainTokenMenu(Player player) {
|
||||
super(player, new ArrayList<Button>(), 36, "Token Menu", getInstance());
|
||||
this.player = player;
|
||||
super(player, new ArrayList<Button>(), 36, "Token Menu");
|
||||
updateButtons();
|
||||
instance = this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ChestInterface getParent() {
|
||||
return getInstance();
|
||||
}
|
||||
|
||||
public static MainTokenMenu getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -19,28 +19,14 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
|
||||
public class MutationConfirmInterface extends ChestInterface {
|
||||
private static MutationConfirmInterface instance;
|
||||
|
||||
private Player player;
|
||||
private Mutation mutation;
|
||||
|
||||
public MutationConfirmInterface(Player player, Mutation mutation) {
|
||||
super(player, new ArrayList<Button>(), 27, "Confirmation Menu", getInstance());
|
||||
this.player = player;
|
||||
super(player, new ArrayList<Button>(), 27, "Confirmation Menu");
|
||||
updateButtons();
|
||||
instance = this;
|
||||
this.mutation = mutation;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ChestInterface getParent() {
|
||||
return getInstance();
|
||||
}
|
||||
|
||||
public static MutationConfirmInterface getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateButtons() {
|
||||
List<Button> buttons = new ArrayList<>();
|
||||
|
|
|
@ -12,6 +12,7 @@ import tc.oc.commons.bukkit.util.Constants;
|
|||
import tc.oc.commons.bukkit.util.ItemCreator;
|
||||
import tc.oc.pgm.PGM;
|
||||
import tc.oc.pgm.PGMTranslations;
|
||||
import tc.oc.pgm.menu.gui.MainMenuInterface;
|
||||
import tc.oc.pgm.mutation.Mutation;
|
||||
import tc.oc.pgm.mutation.MutationMatchModule;
|
||||
import tc.oc.pgm.mutation.command.MutationCommands;
|
||||
|
@ -22,7 +23,7 @@ import java.util.List;
|
|||
public class MutationTokenInterface extends SinglePageInterface {
|
||||
|
||||
public MutationTokenInterface(Player player) {
|
||||
super(player, new ArrayList<>(), 54, "Token Menu - Mutations", new MainTokenMenu(player));
|
||||
super(player, new ArrayList<>(), 54, "Token Menu - Mutations");
|
||||
update();
|
||||
}
|
||||
|
||||
|
@ -86,11 +87,14 @@ public class MutationTokenInterface extends SinglePageInterface {
|
|||
@Override
|
||||
public void setDefaultButtons() {
|
||||
defaultButtons.clear();
|
||||
defaultButtons.add(this.lastPageButton);
|
||||
this.lastPageButton.setSlot(49);
|
||||
this.lastPageButton.setIcon(new ItemCreator(Material.WOOL)
|
||||
.setData(14)
|
||||
.setName(ChatColor.GREEN + "Go Back"));
|
||||
defaultButtons.add(new Button(new ItemCreator(Material.WOOL)
|
||||
.setData(14)
|
||||
.setName(ChatColor.GREEN + "Go Back"), 49) {
|
||||
@Override
|
||||
public void function(Player player) {
|
||||
player.openInventory(new MainTokenMenu(player).getInventory());
|
||||
}
|
||||
});
|
||||
for (Integer integer : new Integer[]{
|
||||
0, 1, 2, 3, 4, 5, 6, 7, 8,
|
||||
9, 17,
|
||||
|
|
|
@ -15,24 +15,9 @@ import java.util.List;
|
|||
|
||||
public class TokenPurchaseInterface extends ChestInterface {
|
||||
|
||||
private static TokenPurchaseInterface instance;
|
||||
|
||||
private Player player;
|
||||
|
||||
public TokenPurchaseInterface(Player player) {
|
||||
super(player, new ArrayList<Button>(), 36, "Purchase Tokens", getInstance());
|
||||
this.player = player;
|
||||
super(player, new ArrayList<Button>(), 36, "Purchase Tokens");
|
||||
updateButtons();
|
||||
instance = this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ChestInterface getParent() {
|
||||
return getInstance();
|
||||
}
|
||||
|
||||
public static TokenPurchaseInterface getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -108,4 +93,10 @@ public class TokenPurchaseInterface extends ChestInterface {
|
|||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cleanUp() {
|
||||
super.cleanUp();
|
||||
player = null;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue