Saber-Factions/src/main/java/com/massivecraft/factions/cmd/check/CheckSettingsFrame.java

116 lines
4.5 KiB
Java

package com.massivecraft.factions.cmd.check;
import com.massivecraft.factions.FPlayer;
import com.massivecraft.factions.Faction;
import com.massivecraft.factions.FactionsPlugin;
import com.massivecraft.factions.zcore.frame.FactionGUI;
import com.massivecraft.factions.util.XMaterial;
import com.massivecraft.factions.zcore.util.TL;
import org.bukkit.ChatColor;
import org.bukkit.event.inventory.ClickType;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryHolder;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import java.util.Collections;
public class CheckSettingsFrame implements InventoryHolder, FactionGUI {
/**
* @author Driftay
*/
private FactionsPlugin plugin;
private FPlayer fPlayer;
private Inventory inventory;
public CheckSettingsFrame(FactionsPlugin plugin, FPlayer fPlayer) {
this.plugin = plugin;
this.fPlayer = fPlayer;
this.inventory = plugin.getServer().createInventory(this, plugin.getConfig().getInt("f-check.gui-rows") * 9, TL.CHECK_SETTINGS_GUI_TITLE.toString());
}
public void onClick(int slot, ClickType action) {
Faction faction = this.fPlayer.getFaction();
if (slot == FactionsPlugin.getInstance().getConfig().getInt("f-check.wall-check.slot")) {
faction.setWallCheckMinutes(getNext(faction.getWallCheckMinutes()));
} else {
if (slot == FactionsPlugin.getInstance().getConfig().getInt("f-check.history.slot")) {
CheckHistoryFrame checkHistoryFrame = new CheckHistoryFrame(plugin, fPlayer.getFaction());
checkHistoryFrame.build();
fPlayer.getPlayer().openInventory(checkHistoryFrame.getInventory());
return;
}
if (slot == FactionsPlugin.getInstance().getConfig().getInt("f-check.buffer-check.slot")) {
faction.setBufferCheckMinutes(getNext(faction.getBufferCheckMinutes()));
}
}
build();
fPlayer.getPlayer().openInventory(inventory);
}
public void build() {
Faction faction = fPlayer.getFaction();
ItemStack wallsStack = XMaterial.matchXMaterial(FactionsPlugin.getInstance().getConfig().getString("f-check.wall-check.Type")).get().parseItem();
ItemMeta wallsMeta = wallsStack.getItemMeta();
wallsMeta.setDisplayName(TL.CHECK_WALL_CHECK_GUI_ICON.toString());
wallsMeta.setLore(Collections.singletonList(TL.CHECK_CHECK_LORE_LINE.format(getFormatted(faction.getWallCheckMinutes()))));
wallsStack.setItemMeta(wallsMeta);
inventory.setItem(FactionsPlugin.getInstance().getConfig().getInt("f-check.wall-check.slot"), wallsStack);
ItemStack bufferStack = XMaterial.matchXMaterial(FactionsPlugin.getInstance().getConfig().getString("f-check.buffer-check.Type")).get().parseItem();
ItemMeta bufferMeta = bufferStack.getItemMeta();
bufferMeta.setDisplayName(TL.CHECK_BUFFER_CHECK_GUI_ICON.toString());
bufferMeta.setLore(Collections.singletonList(TL.CHECK_CHECK_LORE_LINE.format(getFormatted(faction.getBufferCheckMinutes()))));
bufferStack.setItemMeta(bufferMeta);
inventory.setItem(FactionsPlugin.getInstance().getConfig().getInt("f-check.buffer-check.slot"), bufferStack);
ItemStack historyStack = XMaterial.matchXMaterial(FactionsPlugin.getInstance().getConfig().getString("f-check.history.Type")).get().parseItem();
ItemMeta historyMeta = historyStack.getItemMeta();
historyMeta.setDisplayName(TL.CHECK_HISTORY_GUI_ICON.toString());
historyStack.setItemMeta(historyMeta);
inventory.setItem(FactionsPlugin.getInstance().getConfig().getInt("f-check.history.slot"), historyStack);
}
public Inventory getInventory() {
return this.inventory;
}
private int getNext(int current) {
switch (current) {
case 0: {
return 3;
}
case 3: {
return 5;
}
case 5: {
return 10;
}
case 10: {
return 15;
}
case 15: {
return 30;
}
case 30: {
return 0;
}
default: {
return 0;
}
}
}
private String getFormatted(int minutes) {
if (minutes == 0) {
return "Offline";
}
return minutes + " Minutes";
}
public String color(String message) {
return ChatColor.translateAlternateColorCodes('&', message);
}
}