2315 lines
89 KiB
Java
2315 lines
89 KiB
Java
package me.jacobculley.customgui;
|
|
|
|
import java.io.File;
|
|
import java.io.FileNotFoundException;
|
|
import java.io.IOException;
|
|
import java.util.ArrayList;
|
|
import java.util.Iterator;
|
|
import java.util.List;
|
|
import java.util.Set;
|
|
|
|
import me.clip.placeholderapi.PlaceholderAPI;
|
|
import net.milkbowl.vault.economy.Economy;
|
|
import net.milkbowl.vault.permission.Permission;
|
|
|
|
import org.bukkit.Bukkit;
|
|
import org.bukkit.ChatColor;
|
|
import org.bukkit.Material;
|
|
import org.bukkit.Sound;
|
|
import org.bukkit.command.Command;
|
|
import org.bukkit.command.CommandSender;
|
|
import org.bukkit.configuration.InvalidConfigurationException;
|
|
import org.bukkit.configuration.file.YamlConfiguration;
|
|
import org.bukkit.enchantments.Enchantment;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.event.EventHandler;
|
|
import org.bukkit.event.EventPriority;
|
|
import org.bukkit.event.Listener;
|
|
import org.bukkit.event.block.Action;
|
|
import org.bukkit.event.inventory.InventoryClickEvent;
|
|
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
|
import org.bukkit.event.player.PlayerDropItemEvent;
|
|
import org.bukkit.event.player.PlayerInteractEvent;
|
|
import org.bukkit.inventory.Inventory;
|
|
import org.bukkit.inventory.InventoryHolder;
|
|
import org.bukkit.inventory.ItemStack;
|
|
import org.bukkit.inventory.meta.ItemMeta;
|
|
import org.bukkit.inventory.meta.SkullMeta;
|
|
import org.bukkit.plugin.RegisteredServiceProvider;
|
|
import org.bukkit.plugin.java.JavaPlugin;
|
|
|
|
import com.google.common.io.ByteArrayDataOutput;
|
|
import com.google.common.io.ByteStreams;
|
|
|
|
public class Main extends JavaPlugin implements Listener {
|
|
public static Economy econ;
|
|
public static Permission perms;
|
|
File Messages;
|
|
YamlConfiguration messagesFile;
|
|
|
|
static {
|
|
Main.econ = null;
|
|
Main.perms = null;
|
|
}
|
|
|
|
public Main() {
|
|
this.Messages = new File(this.getDataFolder(), "messages.yml");
|
|
this.messagesFile = YamlConfiguration.loadConfiguration(this.Messages);
|
|
}
|
|
|
|
@Override
|
|
public void onEnable() {
|
|
this.getServer().getPluginManager().registerEvents(this, this);
|
|
this.getLogger().info("CustomGUI has been enabled!");
|
|
this.saveDefaultConfig();
|
|
this.reloadConfig();
|
|
this.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
|
|
if (!this.Messages.exists()) {
|
|
try {
|
|
this.Messages.createNewFile();
|
|
final ArrayList<String> list = new ArrayList<String>();
|
|
list.add("&aCustomGUI Commands");
|
|
list.add("&7-----------------------------------");
|
|
list.add("&e/customgui reload &7- Reloads the config file");
|
|
list.add("&e/customgui open <GUI Command> &7- Opens the specified GUI");
|
|
list.add("&e/customgui setitem <GUI Name> <Click Type> &7- Binds your item to the specified GUI");
|
|
list.add("&e/customgui deleteitem <GUI Name> &7- Unbinds your item from the specified GUI");
|
|
this.messagesFile.set("HelpFormat", list);
|
|
this.messagesFile.set("NoPermsCommandMessage",
|
|
"&cYou do not have permission to execute this command!");
|
|
this.messagesFile.set("NoPermsItemMessage",
|
|
"&cYou do not have permission to use this item!");
|
|
this.messagesFile.set("InsufficientFundsMessage",
|
|
"&c&cYou need $%COMMANDSCOST% to use this item!");
|
|
this.messagesFile.set("WhitelistedWorldMessage",
|
|
"&cYou cannot use this GUI in your current world!");
|
|
this.messagesFile.set("InvalidGUIMessage", "&cPlease specify a valid GUI!");
|
|
this.messagesFile.set("ItemAddedMessage",
|
|
"&aThe item has been added to the %GUI% inventory item list!");
|
|
this.messagesFile.set("ItemRemovedMessage",
|
|
"&aThis item has been removed from the %GUI% inventory item list!");
|
|
this.messagesFile.set("ItemDoesExistMessage",
|
|
"&cThis item already exists in the %GUI% inventory item list!");
|
|
this.messagesFile.set("ItemDoesntExistMessage",
|
|
"&cThis item does not exist in the %GUI% inventory item list!");
|
|
this.messagesFile.set("UnknownClickMethod",
|
|
"&cPlease specify right, left, or both as the click method!");
|
|
this.messagesFile.set("UnknownCommandMessage",
|
|
"&cPlease enter /customgui help for a list of commands!");
|
|
this.messagesFile.set("ReloadMessage", "&aCustomGUI has been reloaded!");
|
|
} catch (IOException ex2) {
|
|
this.getLogger().severe(
|
|
String.format("[%s] - CustomGUI could not generate messages.yml", this
|
|
.getDescription().getName()));
|
|
}
|
|
}
|
|
try {
|
|
this.messagesFile.save(this.Messages);
|
|
} catch (IOException ex) {
|
|
ex.printStackTrace();
|
|
}
|
|
if (this.setupEconomy()) {
|
|
this.getLogger().severe(
|
|
String.format("[%s] - CustomGUI has hooked into Vault", this.getDescription()
|
|
.getName()));
|
|
return;
|
|
}
|
|
if (this.setupAPI()) {
|
|
this.getLogger().severe(
|
|
String.format("[%s] - CustomGUI has hooked into PlaceholderAPI", this
|
|
.getDescription().getName()));
|
|
return;
|
|
}
|
|
this.setupPermissions();
|
|
}
|
|
|
|
@Override
|
|
public void onDisable() {
|
|
this.getLogger().info("CustomGUI has been disabled!");
|
|
}
|
|
|
|
private boolean setupAPI() {
|
|
return this.getServer().getPluginManager().getPlugin("PlaceholderAPI") != null;
|
|
}
|
|
|
|
private boolean setupPermissions() {
|
|
Main.perms = (Permission) this.getServer().getServicesManager()
|
|
.getRegistration((Class<?>) Permission.class).getProvider();
|
|
return Main.perms != null;
|
|
}
|
|
|
|
private boolean setupEconomy() {
|
|
if (this.getServer().getPluginManager().getPlugin("Vault") == null) {
|
|
return false;
|
|
}
|
|
final RegisteredServiceProvider<?> registration = this.getServer().getServicesManager()
|
|
.getRegistration((Class<?>) Economy.class);
|
|
if (registration == null) {
|
|
return false;
|
|
}
|
|
Main.econ = (Economy) registration.getProvider();
|
|
return Main.econ != null;
|
|
}
|
|
|
|
public String sendMessage(final Player player, String setPlaceholders) {
|
|
return setPlaceholders = PlaceholderAPI.setPlaceholders(player, setPlaceholders);
|
|
}
|
|
|
|
@EventHandler(
|
|
priority = EventPriority.HIGHEST)
|
|
public void commandProcess(final PlayerCommandPreprocessEvent playerCommandPreprocessEvent) {
|
|
final Player player = playerCommandPreprocessEvent.getPlayer();
|
|
final Iterator<String> commands = this.getConfig().getConfigurationSection("GUI")
|
|
.getKeys(false).iterator();
|
|
while (commands.hasNext()) {
|
|
for (final String s : this.getConfig().getStringList(
|
|
"GUI." + commands.next() + ".GUICommand")) {
|
|
if (playerCommandPreprocessEvent.getMessage().equalsIgnoreCase("/" + s)) {
|
|
player.performCommand("customgui open " + s);
|
|
playerCommandPreprocessEvent.setCancelled(true);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
@SuppressWarnings("deprecation")
|
|
@EventHandler
|
|
public void onInventoryClick(final InventoryClickEvent inventoryClickEvent) {
|
|
final Player player = (Player) inventoryClickEvent.getWhoClicked();
|
|
for (final String guiName : this.getConfig().getConfigurationSection("GUI").getKeys(false)) {
|
|
final String guiChestName = this.getConfig().getString("GUI." + guiName + ".ChestName", "");
|
|
for (final String guiItemName : this.getConfig()
|
|
.getConfigurationSection("GUI." + guiName + ".GUIItems").getKeys(false)) {
|
|
if (inventoryClickEvent
|
|
.getInventory()
|
|
.getTitle()
|
|
.contentEquals(
|
|
ChatColor.translateAlternateColorCodes(
|
|
'&',
|
|
guiChestName.replace("%PLAYER%", player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder().append(
|
|
Main.econ.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder().append(
|
|
player.getLevel()).toString())))) {
|
|
if (inventoryClickEvent.getRawSlot() == this.getConfig().getInt(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName + ".ItemSlot")) {
|
|
for (final String guiItem : this.getConfig()
|
|
.getConfigurationSection("GUI." + guiName + ".GUIItems." + guiItemName)
|
|
.getKeys(false)) {
|
|
final String strPermission = this.getConfig().getString(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName + ".Permission", "");
|
|
final List<String> strlConsoleCommands = this.getConfig()
|
|
.getStringList(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName + "." + guiItem
|
|
+ ".ConsoleCommands");
|
|
final List<String> strlPlayerCommands = this.getConfig().getStringList(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName + "." + guiItem + ".PlayerCommands");
|
|
final List<String> strlPlayerMessages = this.getConfig().getStringList(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName + "." + guiItem + ".PlayerMessages");
|
|
final List<String> strlBroadcastMessages = this.getConfig()
|
|
.getStringList(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName + "." + guiItem
|
|
+ ".BroadcastMessages");
|
|
final String strClickSound = this
|
|
.getConfig()
|
|
.getString(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName + "." + guiItem
|
|
+ ".ClickSound", "").toUpperCase();
|
|
final String strNoPermsClickSound = this
|
|
.getConfig()
|
|
.getString(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName + ".NoPermsClickSound",
|
|
"").toUpperCase();
|
|
final boolean boolCloseOnClick = this.getConfig().getBoolean(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName + "." + guiItem + ".CloseOnClick");
|
|
final double dblCommandsCost = this.getConfig().getInt(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName + "." + guiItem + ".CommandsCost");
|
|
if (inventoryClickEvent
|
|
.getCurrentItem()
|
|
.getItemMeta()
|
|
.getDisplayName()
|
|
.contentEquals(
|
|
ChatColor.translateAlternateColorCodes(
|
|
'&',
|
|
this.sendMessage(
|
|
player,
|
|
this.getConfig()
|
|
.getString(
|
|
"GUI." + guiName
|
|
+ ".GUIItems."
|
|
+ guiItemName + "." + guiItem
|
|
+ ".Name", "")
|
|
.replace("%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(dblCommandsCost)
|
|
.toString()))))) {
|
|
if (player.hasPermission(strPermission) || strPermission.isEmpty()) {
|
|
if (Main.econ.getBalance(player) >= dblCommandsCost
|
|
|| dblCommandsCost == 0.0) {
|
|
if (boolCloseOnClick) {
|
|
player.closeInventory();
|
|
} else {
|
|
inventoryClickEvent.setCancelled(true);
|
|
}
|
|
if (!strClickSound.isEmpty()) {
|
|
final float n2 = 1.0f;
|
|
player.playSound(player.getLocation(),
|
|
Sound.valueOf(strClickSound), n2, n2);
|
|
}
|
|
if (dblCommandsCost != 0.0) {
|
|
Main.econ.withdrawPlayer(player, dblCommandsCost);
|
|
}
|
|
for (final String consoleCommand : strlConsoleCommands) {
|
|
if (consoleCommand.contains("[RIGHT-CLICK]")) {
|
|
if (!inventoryClickEvent.isRightClick()) {
|
|
continue;
|
|
}
|
|
this.getServer()
|
|
.dispatchCommand(
|
|
Bukkit.getConsoleSender(),
|
|
this.sendMessage(player, consoleCommand)
|
|
.replace("%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(dblCommandsCost)
|
|
.toString())
|
|
.replace("[RIGHT-CLICK]",
|
|
"")
|
|
.replace("[LEFT-CLICK]", ""));
|
|
} else if (consoleCommand.contains("[LEFT-CLICK]")) {
|
|
if (!inventoryClickEvent.isLeftClick()) {
|
|
continue;
|
|
}
|
|
this.getServer()
|
|
.dispatchCommand(
|
|
Bukkit.getConsoleSender(),
|
|
this.sendMessage(player, consoleCommand)
|
|
.replace("%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(dblCommandsCost)
|
|
.toString())
|
|
.replace("[RIGHT-CLICK]",
|
|
"")
|
|
.replace("[LEFT-CLICK]", ""));
|
|
} else {
|
|
if (consoleCommand.contains("[RIGHT-CLICK]")
|
|
&& consoleCommand.contains("[LEFT-CLICK]")) {
|
|
continue;
|
|
}
|
|
this.getServer()
|
|
.dispatchCommand(
|
|
Bukkit.getConsoleSender(),
|
|
this.sendMessage(player, consoleCommand)
|
|
.replace("%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(dblCommandsCost)
|
|
.toString())
|
|
.replace("[RIGHT-CLICK]",
|
|
"")
|
|
.replace("[LEFT-CLICK]", ""));
|
|
}
|
|
}
|
|
for (final String playerCommand : strlPlayerCommands) {
|
|
if (playerCommand.contains("[RIGHT-CLICK]")) {
|
|
if (!inventoryClickEvent.isRightClick()) {
|
|
continue;
|
|
}
|
|
this.getServer()
|
|
.dispatchCommand(
|
|
player,
|
|
this.sendMessage(player, playerCommand)
|
|
.replace("%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(dblCommandsCost)
|
|
.toString())
|
|
.replace("[RIGHT-CLICK]",
|
|
"")
|
|
.replace("[LEFT-CLICK]", ""));
|
|
} else if (playerCommand.contains("[LEFT-CLICK]")) {
|
|
if (!inventoryClickEvent.isLeftClick()) {
|
|
continue;
|
|
}
|
|
this.getServer()
|
|
.dispatchCommand(
|
|
player,
|
|
this.sendMessage(player, playerCommand)
|
|
.replace("%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(dblCommandsCost)
|
|
.toString())
|
|
.replace("[RIGHT-CLICK]",
|
|
"")
|
|
.replace("[LEFT-CLICK]", ""));
|
|
} else {
|
|
if (playerCommand.contains("[RIGHT-CLICK]")
|
|
&& playerCommand.contains("[LEFT-CLICK]")) {
|
|
continue;
|
|
}
|
|
this.getServer()
|
|
.dispatchCommand(
|
|
player,
|
|
this.sendMessage(player, playerCommand)
|
|
.replace("%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(dblCommandsCost)
|
|
.toString())
|
|
.replace("[RIGHT-CLICK]",
|
|
"")
|
|
.replace("[LEFT-CLICK]", ""));
|
|
}
|
|
}
|
|
for (final String playerMessage : strlPlayerMessages) {
|
|
if (playerMessage.contains("[RIGHT-CLICK]")) {
|
|
if (!inventoryClickEvent.isRightClick()) {
|
|
continue;
|
|
}
|
|
player.sendMessage(ChatColor
|
|
.translateAlternateColorCodes(
|
|
'&',
|
|
this.sendMessage(player, playerMessage)
|
|
.replace("%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(dblCommandsCost)
|
|
.toString())
|
|
.replace("[RIGHT-CLICK]",
|
|
"")
|
|
.replace("[LEFT-CLICK]", "")));
|
|
} else if (playerMessage.contains("[LEFT-CLICK]")) {
|
|
if (!inventoryClickEvent.isLeftClick()) {
|
|
continue;
|
|
}
|
|
player.sendMessage(ChatColor
|
|
.translateAlternateColorCodes(
|
|
'&',
|
|
this.sendMessage(player, playerMessage)
|
|
.replace("%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(dblCommandsCost)
|
|
.toString())
|
|
.replace("[RIGHT-CLICK]",
|
|
"")
|
|
.replace("[LEFT-CLICK]", "")));
|
|
} else {
|
|
if (playerMessage.contains("[RIGHT-CLICK]")
|
|
&& playerMessage.contains("[LEFT-CLICK]")) {
|
|
continue;
|
|
}
|
|
player.sendMessage(ChatColor
|
|
.translateAlternateColorCodes(
|
|
'&',
|
|
this.sendMessage(player, playerMessage)
|
|
.replace("%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(dblCommandsCost)
|
|
.toString())
|
|
.replace("[RIGHT-CLICK]",
|
|
"")
|
|
.replace("[LEFT-CLICK]", "")));
|
|
}
|
|
}
|
|
for (final String broadcastMessage : strlBroadcastMessages) {
|
|
if (broadcastMessage.contains("[RIGHT-CLICK]")) {
|
|
if (!inventoryClickEvent.isRightClick()) {
|
|
continue;
|
|
}
|
|
this.getServer()
|
|
.broadcastMessage(
|
|
ChatColor
|
|
.translateAlternateColorCodes(
|
|
'&',
|
|
this.sendMessage(
|
|
player, broadcastMessage)
|
|
.replace(
|
|
"%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(dblCommandsCost)
|
|
.toString())
|
|
.replace(
|
|
"[RIGHT-CLICK]",
|
|
"")
|
|
.replace(
|
|
"[LEFT-CLICK]",
|
|
"")));
|
|
} else if (broadcastMessage.contains("[LEFT-CLICK]")) {
|
|
if (!inventoryClickEvent.isLeftClick()) {
|
|
continue;
|
|
}
|
|
this.getServer()
|
|
.broadcastMessage(
|
|
ChatColor
|
|
.translateAlternateColorCodes(
|
|
'&',
|
|
this.sendMessage(
|
|
player, broadcastMessage)
|
|
.replace(
|
|
"%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(dblCommandsCost)
|
|
.toString())
|
|
.replace(
|
|
"[RIGHT-CLICK]",
|
|
"")
|
|
.replace(
|
|
"[LEFT-CLICK]",
|
|
"")));
|
|
} else {
|
|
if (broadcastMessage.contains("[RIGHT-CLICK]")
|
|
&& broadcastMessage.contains("[LEFT-CLICK]")) {
|
|
continue;
|
|
}
|
|
this.getServer()
|
|
.broadcastMessage(
|
|
ChatColor
|
|
.translateAlternateColorCodes(
|
|
'&',
|
|
this.sendMessage(
|
|
player, broadcastMessage)
|
|
.replace(
|
|
"%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(dblCommandsCost)
|
|
.toString())
|
|
.replace(
|
|
"[RIGHT-CLICK]",
|
|
"")
|
|
.replace(
|
|
"[LEFT-CLICK]",
|
|
"")));
|
|
}
|
|
}
|
|
if (!this.getConfig().getBoolean("GUI." + guiName + ".Bungee")
|
|
|| this.getConfig()
|
|
.getString(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName
|
|
+ "." + guiItem
|
|
+ ".SendToServer", "")
|
|
.isEmpty()) {
|
|
continue;
|
|
}
|
|
final ByteArrayDataOutput dataOutput = ByteStreams
|
|
.newDataOutput();
|
|
dataOutput.writeUTF("Connect");
|
|
dataOutput.writeUTF(this.getConfig().getString(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName + "." + guiItem
|
|
+ ".SendToServer", ""));
|
|
Bukkit.getPlayer(player.getName()).sendPluginMessage(this,
|
|
"BungeeCord", dataOutput.toByteArray());
|
|
} else {
|
|
player.closeInventory();
|
|
player.sendMessage(this.sendMessage(
|
|
player,
|
|
ChatColor
|
|
.translateAlternateColorCodes(
|
|
'&',
|
|
this.messagesFile
|
|
.getString(
|
|
"InsufficientFundsMessage")
|
|
.replace("%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(dblCommandsCost)
|
|
.toString()))));
|
|
if (strNoPermsClickSound.isEmpty()) {
|
|
continue;
|
|
}
|
|
final float fSoundTime = 1.0f;
|
|
player.playSound(player.getLocation(),
|
|
Sound.valueOf(strNoPermsClickSound), fSoundTime, fSoundTime);
|
|
}
|
|
} else {
|
|
player.closeInventory();
|
|
player.sendMessage(this.sendMessage(
|
|
player,
|
|
ChatColor
|
|
.translateAlternateColorCodes(
|
|
'&',
|
|
this.messagesFile
|
|
.getString("NoPermsItemMessage")
|
|
.replace("%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(dblCommandsCost)
|
|
.toString()))));
|
|
if (strNoPermsClickSound.isEmpty()) {
|
|
continue;
|
|
}
|
|
final float fSoundTime = 1.0f;
|
|
player.playSound(player.getLocation(),
|
|
Sound.valueOf(strNoPermsClickSound), fSoundTime, fSoundTime);
|
|
}
|
|
}
|
|
}
|
|
inventoryClickEvent.setCancelled(true);
|
|
}
|
|
inventoryClickEvent.setCancelled(true);
|
|
} else {
|
|
if (this.getConfig().getBoolean("GUI." + guiName + ".InventoryGUIItemMovement")) {
|
|
continue;
|
|
}
|
|
final List<String> strlInventoryGUIItems = this.getConfig().getStringList(
|
|
"GUI." + guiName + ".InventoryGUIItems");
|
|
for (int i = 0; i < strlInventoryGUIItems.size(); ++i) {
|
|
final String[] itemInfo = strlInventoryGUIItems.get(i).split(";");
|
|
if (inventoryClickEvent.getCurrentItem().getType() == Material
|
|
.getMaterial(itemInfo[1])
|
|
&& inventoryClickEvent.getCurrentItem().getData().getData() == (byte) Integer
|
|
.parseInt(itemInfo[2])
|
|
&& inventoryClickEvent
|
|
.getCurrentItem()
|
|
.getItemMeta()
|
|
.getDisplayName()
|
|
.contentEquals(
|
|
ChatColor.translateAlternateColorCodes('&',
|
|
itemInfo[0]))
|
|
&& inventoryClickEvent.getCurrentItem().getEnchantments()
|
|
.toString().contentEquals(itemInfo[3])) {
|
|
inventoryClickEvent.setCancelled(true);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
@SuppressWarnings("deprecation")
|
|
@EventHandler
|
|
public void playerDropEvent(final PlayerDropItemEvent playerDropItemEvent) {
|
|
for (final String guiName : this.getConfig().getConfigurationSection("GUI").getKeys(false)) {
|
|
if (!this.getConfig().getBoolean("GUI." + guiName + ".InventoryGUIItemMovement")) {
|
|
final List<String> strlInventoryGUIItems = this.getConfig().getStringList(
|
|
"GUI." + guiName + ".InventoryGUIItems");
|
|
for (int i = 0; i < strlInventoryGUIItems.size(); ++i) {
|
|
final String[] itemInfo = strlInventoryGUIItems.get(i).split(";");
|
|
if (playerDropItemEvent.getItemDrop().getItemStack().getType() == Material
|
|
.getMaterial(itemInfo[1])
|
|
&& playerDropItemEvent.getItemDrop().getItemStack().getData().getData() == (byte) Integer
|
|
.parseInt(itemInfo[2])
|
|
&& playerDropItemEvent
|
|
.getItemDrop()
|
|
.getItemStack()
|
|
.getItemMeta()
|
|
.getDisplayName()
|
|
.contentEquals(
|
|
ChatColor.translateAlternateColorCodes('&', itemInfo[0]))
|
|
&& playerDropItemEvent.getItemDrop().getItemStack().getEnchantments()
|
|
.toString().contentEquals(itemInfo[3])) {
|
|
playerDropItemEvent.setCancelled(true);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
@SuppressWarnings("deprecation")
|
|
@EventHandler
|
|
public void playerInteract(final PlayerInteractEvent playerInteractEvent) {
|
|
if (playerInteractEvent.getAction() == Action.RIGHT_CLICK_BLOCK
|
|
|| playerInteractEvent.getAction() == Action.RIGHT_CLICK_AIR) {
|
|
final Player player = playerInteractEvent.getPlayer();
|
|
for (final String guiName : this.getConfig().getConfigurationSection("GUI").getKeys(false)) {
|
|
final List<String> strlInventoryGUIItems = this.getConfig().getStringList(
|
|
"GUI." + guiName + ".InventoryGUIItems");
|
|
for (int i = 0; i < strlInventoryGUIItems.size(); ++i) {
|
|
final String[] itemInfo = strlInventoryGUIItems.get(i).split(";");
|
|
if ((itemInfo[4].equalsIgnoreCase("both") || itemInfo[4].equalsIgnoreCase("right"))
|
|
&& playerInteractEvent.getItem().getType() == Material
|
|
.getMaterial(itemInfo[1])
|
|
&& playerInteractEvent.getItem().getData().getData() == (byte) Integer
|
|
.parseInt(itemInfo[2])
|
|
&& playerInteractEvent
|
|
.getItem()
|
|
.getItemMeta()
|
|
.getDisplayName()
|
|
.contentEquals(
|
|
ChatColor.translateAlternateColorCodes('&', itemInfo[0]))
|
|
&& playerInteractEvent.getItem().getEnchantments().toString()
|
|
.contentEquals(itemInfo[3])) {
|
|
player.performCommand("customgui open "
|
|
+ this.getConfig().getStringList("GUI." + guiName + ".GUICommand").get(0));
|
|
playerInteractEvent.setCancelled(true);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (playerInteractEvent.getAction() == Action.LEFT_CLICK_BLOCK
|
|
|| playerInteractEvent.getAction() == Action.LEFT_CLICK_AIR) {
|
|
final Player player = playerInteractEvent.getPlayer();
|
|
for (final String guiName : this.getConfig().getConfigurationSection("GUI").getKeys(false)) {
|
|
final List<String> strlInventoryGUIItems = this.getConfig().getStringList(
|
|
"GUI." + guiName + ".InventoryGUIItems");
|
|
for (int j = 0; j < strlInventoryGUIItems.size(); ++j) {
|
|
final String[] itemInfo = strlInventoryGUIItems.get(j).split(";");
|
|
if ((itemInfo[4].equalsIgnoreCase("both") || itemInfo[4].equalsIgnoreCase("left"))
|
|
&& playerInteractEvent.getItem().getType() == Material
|
|
.getMaterial(itemInfo[1])
|
|
&& playerInteractEvent.getItem().getData().getData() == (byte) Integer
|
|
.parseInt(itemInfo[2])
|
|
&& playerInteractEvent
|
|
.getItem()
|
|
.getItemMeta()
|
|
.getDisplayName()
|
|
.contentEquals(
|
|
ChatColor.translateAlternateColorCodes('&', itemInfo[0]))
|
|
&& playerInteractEvent.getItem().getEnchantments().toString()
|
|
.contentEquals(itemInfo[3])) {
|
|
player.performCommand("customgui open "
|
|
+ this.getConfig().getStringList("GUI." + guiName + ".GUICommand")
|
|
.get(0));
|
|
playerInteractEvent.setCancelled(true);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
@SuppressWarnings("deprecation")
|
|
@Override
|
|
public boolean onCommand(final CommandSender commandSender, final Command command,
|
|
final String s, final String[] args) {
|
|
if (command.getName().equalsIgnoreCase("customgui")) {
|
|
final Player player = (Player) commandSender;
|
|
if (args.length == 0) {
|
|
if (player.hasPermission("customgui.help")) {
|
|
final Iterator<String> iterator = this.messagesFile.getStringList("HelpFormat")
|
|
.iterator();
|
|
while (iterator.hasNext()) {
|
|
player.sendMessage(ChatColor.translateAlternateColorCodes('&',
|
|
iterator.next()));
|
|
}
|
|
} else {
|
|
player.sendMessage(ChatColor.translateAlternateColorCodes('&', this
|
|
.sendMessage(
|
|
player,
|
|
this.messagesFile
|
|
.getString("NoPermsCommandMessage")
|
|
.replace("%PLAYER%", player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder().append(
|
|
Main.econ.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder().append(player.getLevel())
|
|
.toString()))));
|
|
}
|
|
return false;
|
|
}
|
|
if (args[0].equalsIgnoreCase("reload")) {
|
|
if (player.hasPermission("customgui.reload")) {
|
|
this.reloadConfig();
|
|
try {
|
|
this.messagesFile.load(this.Messages);
|
|
} catch (FileNotFoundException ex) {
|
|
ex.printStackTrace();
|
|
} catch (IOException ex2) {
|
|
ex2.printStackTrace();
|
|
} catch (InvalidConfigurationException ex3) {
|
|
ex3.printStackTrace();
|
|
}
|
|
this.getLogger().info("CustomGUI has been reloaded!");
|
|
player.sendMessage(ChatColor.translateAlternateColorCodes('&', this
|
|
.sendMessage(
|
|
player,
|
|
this.messagesFile
|
|
.getString("ReloadMessage")
|
|
.replace("%PLAYER%", player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder().append(
|
|
Main.econ.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder().append(player.getLevel())
|
|
.toString()))));
|
|
} else {
|
|
player.sendMessage(ChatColor.translateAlternateColorCodes('&', this
|
|
.sendMessage(
|
|
player,
|
|
this.messagesFile
|
|
.getString("NoPermsCommandMessage")
|
|
.replace("%PLAYER%", player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder().append(
|
|
Main.econ.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder().append(player.getLevel())
|
|
.toString()))));
|
|
}
|
|
} else if (args[0].equalsIgnoreCase("help")) {
|
|
if (player.hasPermission("customgui.help")) {
|
|
final Iterator<String> iterator2 = this.messagesFile
|
|
.getStringList("HelpFormat").iterator();
|
|
while (iterator2.hasNext()) {
|
|
player.sendMessage(ChatColor.translateAlternateColorCodes('&',
|
|
this.sendMessage(player, iterator2.next())));
|
|
}
|
|
} else {
|
|
player.sendMessage(ChatColor.translateAlternateColorCodes('&', this
|
|
.sendMessage(
|
|
player,
|
|
this.messagesFile
|
|
.getString("NoPermsCommandMessage")
|
|
.replace("%PLAYER%", player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder().append(
|
|
Main.econ.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder().append(player.getLevel())
|
|
.toString()))));
|
|
}
|
|
} else if (args[0].equalsIgnoreCase("setitem") && args.length == 3) {
|
|
if (player.hasPermission("customgui.setitem")) {
|
|
if (this.getConfig().getConfigurationSection("GUI").getKeys(false)
|
|
.contains(args[1])) {
|
|
if (args[2].equalsIgnoreCase("both") || args[2].equalsIgnoreCase("right")
|
|
|| args[2].equalsIgnoreCase("left")) {
|
|
final List<String> strlInventoryGUIItems = this.getConfig()
|
|
.getStringList("GUI." + args[1] + ".InventoryGUIItems");
|
|
final String displayName = player.getItemInHand().getItemMeta()
|
|
.getDisplayName();
|
|
final String ench = player.getItemInHand().getEnchantments()
|
|
.toString();
|
|
final String itemtype = player.getItemInHand().getType().name();
|
|
final byte itemdata = player.getItemInHand().getData().getData();
|
|
if (!strlInventoryGUIItems.contains(String.valueOf(displayName) + ";"
|
|
+ itemtype + ";" + itemdata + ";" + ench + ";"
|
|
+ args[2].toUpperCase())) {
|
|
strlInventoryGUIItems.add(String.valueOf(displayName) + ";" + itemtype
|
|
+ ";" + itemdata + ";" + ench + ";" + args[2].toUpperCase());
|
|
this.getConfig().set("GUI." + args[1] + ".InventoryGUIItems",
|
|
strlInventoryGUIItems);
|
|
this.saveConfig();
|
|
player.sendMessage(ChatColor.translateAlternateColorCodes(
|
|
'&',
|
|
this.sendMessage(
|
|
player,
|
|
this.messagesFile
|
|
.getString("ItemAddedMessage")
|
|
.replace("%PLAYER%", player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder().append(
|
|
player.getLevel())
|
|
.toString())
|
|
.replace("%GUI%", args[1]))));
|
|
} else {
|
|
player.sendMessage(ChatColor.translateAlternateColorCodes(
|
|
'&',
|
|
this.sendMessage(
|
|
player,
|
|
this.messagesFile
|
|
.getString("ItemDoesExistMessage")
|
|
.replace("%PLAYER%", player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder().append(
|
|
player.getLevel())
|
|
.toString())
|
|
.replace("%GUI%", args[1]))));
|
|
}
|
|
} else {
|
|
player.sendMessage(ChatColor.translateAlternateColorCodes('&', this
|
|
.sendMessage(
|
|
player,
|
|
this.messagesFile
|
|
.getString("UnknownClickMethod")
|
|
.replace("%PLAYER%", player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder().append(
|
|
Main.econ.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder().append(
|
|
player.getLevel()).toString()))));
|
|
}
|
|
} else {
|
|
player.sendMessage(ChatColor.translateAlternateColorCodes('&', this
|
|
.sendMessage(
|
|
player,
|
|
this.messagesFile
|
|
.getString("InvalidGUIMessage")
|
|
.replace("%PLAYER%", player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder().append(
|
|
Main.econ.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder().append(
|
|
player.getLevel()).toString()))));
|
|
}
|
|
} else {
|
|
player.sendMessage(ChatColor.translateAlternateColorCodes(
|
|
'&',
|
|
this.messagesFile
|
|
.getString("NoPermsCommandMessage")
|
|
.replace("%PLAYER%", player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder().append(player.getLevel())
|
|
.toString())));
|
|
}
|
|
} else if (args[0].equalsIgnoreCase("deleteitem") && args.length == 2) {
|
|
if (player.hasPermission("customgui.deleteitem")) {
|
|
if (this.getConfig().getConfigurationSection("GUI").getKeys(false)
|
|
.contains(args[1])) {
|
|
final List<String> strlInventoryGUIItems = this.getConfig().getStringList(
|
|
"GUI." + args[1] + ".InventoryGUIItems");
|
|
final String displayName = player.getItemInHand().getItemMeta()
|
|
.getDisplayName();
|
|
final String ench = player.getItemInHand().getEnchantments().toString();
|
|
final String itemtype = player.getItemInHand().getType().name();
|
|
final byte itemdata = player.getItemInHand().getData().getData();
|
|
if (strlInventoryGUIItems.contains(String.valueOf(displayName) + ";"
|
|
+ itemtype + ";" + itemdata + ";" + ench + ";" + "RIGHT")
|
|
|| strlInventoryGUIItems.contains(String.valueOf(displayName)
|
|
+ ";" + itemtype + ";" + itemdata + ";" + ench + ";" + "LEFT")
|
|
|| strlInventoryGUIItems.contains(String.valueOf(displayName)
|
|
+ ";" + itemtype + ";" + itemdata + ";" + ench + ";" + "BOTH")) {
|
|
final ArrayList<String> list = new ArrayList<String>();
|
|
list.add("RIGHT");
|
|
list.add("LEFT");
|
|
list.add("BOTH");
|
|
final Iterator<String> iterator3 = list.iterator();
|
|
while (iterator3.hasNext()) {
|
|
strlInventoryGUIItems.remove(String.valueOf(displayName) + ";"
|
|
+ itemtype + ";" + itemdata + ";" + ench + ";"
|
|
+ iterator3.next());
|
|
this.getConfig().set("GUI." + args[1] + ".InventoryGUIItems",
|
|
strlInventoryGUIItems);
|
|
this.saveConfig();
|
|
}
|
|
player.sendMessage(ChatColor.translateAlternateColorCodes('&', this
|
|
.sendMessage(
|
|
player,
|
|
this.messagesFile
|
|
.getString("ItemRemovedMessage")
|
|
.replace("%PLAYER%", player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder().append(
|
|
Main.econ.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder().append(
|
|
player.getLevel()).toString())
|
|
.replace("%GUI%", args[1]))));
|
|
} else {
|
|
player.sendMessage(ChatColor.translateAlternateColorCodes('&', this
|
|
.sendMessage(
|
|
player,
|
|
this.messagesFile
|
|
.getString("ItemDoesntExistMessage")
|
|
.replace("%PLAYER%", player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder().append(
|
|
Main.econ.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder().append(
|
|
player.getLevel()).toString())
|
|
.replace("%GUI%", args[1]))));
|
|
}
|
|
} else {
|
|
player.sendMessage(ChatColor.translateAlternateColorCodes('&', this
|
|
.sendMessage(
|
|
player,
|
|
this.messagesFile
|
|
.getString("InvalidGUIMessage")
|
|
.replace("%PLAYER%", player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder().append(
|
|
Main.econ.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder().append(
|
|
player.getLevel()).toString()))));
|
|
}
|
|
} else {
|
|
player.sendMessage(ChatColor.translateAlternateColorCodes('&', this
|
|
.sendMessage(
|
|
player,
|
|
this.messagesFile
|
|
.getString("NoPermsCommandMessage")
|
|
.replace("%PLAYER%", player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder().append(
|
|
Main.econ.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder().append(player.getLevel())
|
|
.toString()))));
|
|
}
|
|
} else if (args[0].equalsIgnoreCase("open") && args.length == 2) {
|
|
final Set<String> strGUI = this.getConfig().getConfigurationSection("GUI")
|
|
.getKeys(false);
|
|
for (final String guiName : strGUI) {
|
|
final Iterator<String> iGUICommand = this.getConfig()
|
|
.getStringList("GUI." + guiName + ".GUICommand").iterator();
|
|
while (iGUICommand.hasNext()) {
|
|
if (args[1].equalsIgnoreCase(iGUICommand.next())) {
|
|
if (strGUI.contains(guiName)) {
|
|
final String strGUIPermission = this.getConfig().getString(
|
|
"GUI." + guiName + ".GUIPermission", "");
|
|
final List<String> strlWhitelistedWorlds = this.getConfig()
|
|
.getStringList("GUI." + guiName + ".WhitelistedWorlds");
|
|
if (strlWhitelistedWorlds.contains(player.getWorld().getName())
|
|
|| strlWhitelistedWorlds == null
|
|
|| strlWhitelistedWorlds.isEmpty()) {
|
|
if (player.hasPermission(strGUIPermission)) {
|
|
final String strChestName = this.getConfig().getString(
|
|
"GUI." + guiName + ".ChestName", "");
|
|
final int intChestSize = this.getConfig().getInt(
|
|
"GUI." + guiName + ".ChestSize");
|
|
final Set<String> strGUIItems = this.getConfig()
|
|
.getConfigurationSection("GUI." + guiName + ".GUIItems")
|
|
.getKeys(false);
|
|
final Inventory inventory = Bukkit
|
|
.createInventory(
|
|
(InventoryHolder) null,
|
|
intChestSize,
|
|
ChatColor
|
|
.translateAlternateColorCodes(
|
|
'&',
|
|
strChestName.replace("%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())));
|
|
for (final String guiItemName : strGUIItems) {
|
|
final Double value = this.getConfig().getDouble(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName
|
|
+ ".OPItem.CommandsCost");
|
|
final Double value2 = this.getConfig().getDouble(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName
|
|
+ ".PermissionItem.CommandsCost");
|
|
final Double value3 = this.getConfig().getDouble(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName
|
|
+ ".BalanceItem.CommandsCost");
|
|
final Double value4 = this.getConfig().getDouble(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName
|
|
+ ".EXPItem.CommandsCost");
|
|
final Double value5 = this.getConfig().getDouble(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName
|
|
+ ".DefaultItem.CommandsCost");
|
|
final String[] split = this
|
|
.getConfig()
|
|
.getString(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName
|
|
+ ".OPItem.Item", "")
|
|
.toUpperCase().split(";");
|
|
final String string5 = this.getConfig().getString(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName
|
|
+ ".OPItem.Name", "");
|
|
final List<String> strlOPItemLore = this.getConfig()
|
|
.getStringList(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName
|
|
+ ".OPItem.Lore");
|
|
final List<String> strlOPItemEnchant = this.getConfig()
|
|
.getStringList(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName
|
|
+ ".OPItem.Enchant");
|
|
final String strPermissionItemPermission = this
|
|
.getConfig().getString(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName
|
|
+ ".PermissionItem.Permission",
|
|
"");
|
|
final String[] splPermissionItemItem = this
|
|
.getConfig()
|
|
.getString(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName
|
|
+ ".PermissionItem.Item", "")
|
|
.toUpperCase().split(";");
|
|
final String strPermissionItemName = this.getConfig()
|
|
.getString(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName
|
|
+ ".PermissionItem.Name", "");
|
|
final List<String> strlPermissionItemLore = this
|
|
.getConfig().getStringList(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName
|
|
+ ".PermissionItem.Lore");
|
|
final List<String> strlPermissionItemEnchant = this
|
|
.getConfig().getStringList(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName
|
|
+ ".PermissionItem.Enchant");
|
|
final int intBalanceItemBalance = this.getConfig()
|
|
.getInt("GUI." + guiName + ".GUIItems." + guiItemName
|
|
+ ".BalanceItem.Balance");
|
|
final String[] splBalanceItemItem = this
|
|
.getConfig()
|
|
.getString(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName
|
|
+ ".BalanceItem.Item", "")
|
|
.toUpperCase().split(";");
|
|
final String strBalanceItemName = this.getConfig()
|
|
.getString(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName
|
|
+ ".BalanceItem.Name", "");
|
|
final List<String> strlBalanceItemLore = this
|
|
.getConfig().getStringList(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName
|
|
+ ".BalanceItem.Lore");
|
|
final List<String> stringList9 = this.getConfig()
|
|
.getStringList(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName
|
|
+ ".BalanceItem.Enchant");
|
|
final int int3 = this.getConfig().getInt(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName
|
|
+ ".EXPItem.Level");
|
|
final String[] split4 = this
|
|
.getConfig()
|
|
.getString(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName
|
|
+ ".EXPItem.Item", "")
|
|
.toUpperCase().split(";");
|
|
final String string9 = this.getConfig().getString(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName
|
|
+ ".EXPItem.Name", "");
|
|
final List<String> stringList10 = this.getConfig()
|
|
.getStringList(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName
|
|
+ ".EXPItem.Lore");
|
|
final List<String> stringList11 = this.getConfig()
|
|
.getStringList(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName
|
|
+ ".EXPItem.Enchant");
|
|
final String[] split5 = this
|
|
.getConfig()
|
|
.getString(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName
|
|
+ ".DefaultItem.Item", "")
|
|
.toUpperCase().split(";");
|
|
final String string10 = this.getConfig().getString(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName
|
|
+ ".DefaultItem.Name", "");
|
|
final List<String> stringList12 = this.getConfig()
|
|
.getStringList(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName
|
|
+ ".DefaultItem.Lore");
|
|
final List<String> stringList13 = this.getConfig()
|
|
.getStringList(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName
|
|
+ ".DefaultItem.Enchant");
|
|
final int int4 = this.getConfig().getInt(
|
|
"GUI." + guiName + ".GUIItems." + guiItemName + ".ItemSlot");
|
|
if (player.isOp()
|
|
&& this.getConfig().getBoolean(
|
|
"GUI." + guiName + ".OPItem")) {
|
|
if (split[0].equalsIgnoreCase("SKULL_ITEM")) {
|
|
final ItemStack itemStack = new ItemStack(
|
|
Material.SKULL_ITEM,
|
|
Integer.parseInt(split[1]), (short) 3);
|
|
final SkullMeta itemMeta = (SkullMeta) itemStack
|
|
.getItemMeta();
|
|
itemMeta.setOwner(split[2].replace("%PLAYER%",
|
|
player.getName()));
|
|
itemMeta.setDisplayName(ChatColor.translateAlternateColorCodes(
|
|
'&',
|
|
this.sendMessage(
|
|
player,
|
|
string5.replace("%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(value)
|
|
.toString()))));
|
|
final ArrayList<String> lore = new ArrayList<String>();
|
|
if (!strlOPItemLore.isEmpty()) {
|
|
final Iterator<String> iterator7 = strlOPItemLore
|
|
.iterator();
|
|
while (iterator7.hasNext()) {
|
|
lore.add(ChatColor.translateAlternateColorCodes(
|
|
'&',
|
|
this.sendMessage(
|
|
player,
|
|
iterator7
|
|
.next()
|
|
.replace(
|
|
"%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(value)
|
|
.toString()))));
|
|
}
|
|
}
|
|
itemMeta.setLore(lore);
|
|
itemStack.setItemMeta(itemMeta);
|
|
if (!strlOPItemEnchant.isEmpty()) {
|
|
final Iterator<String> iterator8 = strlOPItemEnchant
|
|
.iterator();
|
|
while (iterator8.hasNext()) {
|
|
final String[] split6 = iterator8
|
|
.next().toUpperCase()
|
|
.split(";");
|
|
itemStack.addUnsafeEnchantment(
|
|
Enchantment
|
|
.getByName(split6[0]),
|
|
Integer.parseInt(split6[1]));
|
|
}
|
|
}
|
|
inventory.setItem(int4, itemStack);
|
|
} else {
|
|
final ItemStack itemStack2 = new ItemStack(
|
|
Material.getMaterial(split[0]),
|
|
Integer.parseInt(split[1]),
|
|
(byte) Integer.parseInt(split[2]));
|
|
final ItemMeta itemMeta2 = itemStack2
|
|
.getItemMeta();
|
|
itemMeta2
|
|
.setDisplayName(ChatColor.translateAlternateColorCodes(
|
|
'&',
|
|
this.sendMessage(
|
|
player,
|
|
string5.replace(
|
|
"%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(value)
|
|
.toString()))));
|
|
final ArrayList<String> lore2 = new ArrayList<String>();
|
|
if (!strlOPItemLore.isEmpty()) {
|
|
final Iterator<String> iterator9 = strlOPItemLore
|
|
.iterator();
|
|
while (iterator9.hasNext()) {
|
|
lore2.add(ChatColor.translateAlternateColorCodes(
|
|
'&',
|
|
this.sendMessage(
|
|
player,
|
|
iterator9
|
|
.next()
|
|
.replace(
|
|
"%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(value)
|
|
.toString()))));
|
|
}
|
|
}
|
|
itemMeta2.setLore(lore2);
|
|
itemStack2.setItemMeta(itemMeta2);
|
|
if (!strlOPItemEnchant.isEmpty()) {
|
|
final Iterator<String> iterator10 = strlOPItemEnchant
|
|
.iterator();
|
|
while (iterator10.hasNext()) {
|
|
final String[] split7 = iterator10
|
|
.next().toUpperCase()
|
|
.split(";");
|
|
itemStack2.addUnsafeEnchantment(
|
|
Enchantment
|
|
.getByName(split7[0]),
|
|
Integer.parseInt(split7[1]));
|
|
}
|
|
}
|
|
inventory.setItem(int4, itemStack2);
|
|
}
|
|
} else if (player
|
|
.hasPermission(strPermissionItemPermission)
|
|
&& !player.isOp()
|
|
&& this.getConfig().getBoolean(
|
|
"GUI." + guiName + ".PermissionItem")) {
|
|
if (splPermissionItemItem[0]
|
|
.equalsIgnoreCase("SKULL_ITEM")) {
|
|
final ItemStack itemStack3 = new ItemStack(
|
|
Material.SKULL_ITEM,
|
|
Integer.parseInt(splPermissionItemItem[1]),
|
|
(short) 3);
|
|
final SkullMeta itemMeta3 = (SkullMeta) itemStack3
|
|
.getItemMeta();
|
|
itemMeta3.setOwner(splPermissionItemItem[2]
|
|
.replace("%PLAYER%", player.getName()));
|
|
itemMeta3
|
|
.setDisplayName(ChatColor.translateAlternateColorCodes(
|
|
'&',
|
|
this.sendMessage(
|
|
player,
|
|
strPermissionItemName
|
|
.replace(
|
|
"%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(value2)
|
|
.toString()))));
|
|
final ArrayList<String> lore3 = new ArrayList<String>();
|
|
if (!strlPermissionItemLore.isEmpty()) {
|
|
final Iterator<String> iterator11 = strlPermissionItemLore
|
|
.iterator();
|
|
while (iterator11.hasNext()) {
|
|
lore3.add(ChatColor.translateAlternateColorCodes(
|
|
'&',
|
|
this.sendMessage(
|
|
player,
|
|
iterator11
|
|
.next()
|
|
.replace(
|
|
"%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(value2)
|
|
.toString()))));
|
|
}
|
|
}
|
|
itemMeta3.setLore(lore3);
|
|
itemStack3.setItemMeta(itemMeta3);
|
|
if (!strlPermissionItemEnchant.isEmpty()) {
|
|
final Iterator<String> iterator12 = strlPermissionItemEnchant
|
|
.iterator();
|
|
while (iterator12.hasNext()) {
|
|
final String[] split8 = iterator12
|
|
.next().toUpperCase()
|
|
.split(";");
|
|
itemStack3.addUnsafeEnchantment(
|
|
Enchantment
|
|
.getByName(split8[0]),
|
|
Integer.parseInt(split8[1]));
|
|
}
|
|
}
|
|
inventory.setItem(int4, itemStack3);
|
|
} else {
|
|
final ItemStack itemStack4 = new ItemStack(
|
|
Material.getMaterial(splPermissionItemItem[0]),
|
|
Integer.parseInt(splPermissionItemItem[1]),
|
|
(byte) Integer
|
|
.parseInt(splPermissionItemItem[2]));
|
|
final ItemMeta itemMeta4 = itemStack4
|
|
.getItemMeta();
|
|
itemMeta4
|
|
.setDisplayName(ChatColor.translateAlternateColorCodes(
|
|
'&',
|
|
this.sendMessage(
|
|
player,
|
|
strPermissionItemName
|
|
.replace(
|
|
"%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(value2)
|
|
.toString()))));
|
|
final ArrayList<String> lore4 = new ArrayList<String>();
|
|
if (!strlPermissionItemLore.isEmpty()) {
|
|
final Iterator<String> iterator13 = strlPermissionItemLore
|
|
.iterator();
|
|
while (iterator13.hasNext()) {
|
|
lore4.add(ChatColor.translateAlternateColorCodes(
|
|
'&',
|
|
this.sendMessage(
|
|
player,
|
|
iterator13
|
|
.next()
|
|
.replace(
|
|
"%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(value2)
|
|
.toString()))));
|
|
}
|
|
}
|
|
itemMeta4.setLore(lore4);
|
|
itemStack4.setItemMeta(itemMeta4);
|
|
if (!strlPermissionItemEnchant.isEmpty()) {
|
|
final Iterator<String> iterator14 = strlPermissionItemEnchant
|
|
.iterator();
|
|
while (iterator14.hasNext()) {
|
|
final String[] split9 = iterator14
|
|
.next().toUpperCase()
|
|
.split(";");
|
|
itemStack4.addUnsafeEnchantment(
|
|
Enchantment
|
|
.getByName(split9[0]),
|
|
Integer.parseInt(split9[1]));
|
|
}
|
|
}
|
|
inventory.setItem(int4, itemStack4);
|
|
}
|
|
} else if (Main.econ.getBalance(player) >= intBalanceItemBalance
|
|
&& this.getConfig().getBoolean(
|
|
"GUI." + guiName + ".BalanceItem")
|
|
&& intBalanceItemBalance != 0
|
|
&& this.getServer().getPluginManager()
|
|
.getPlugin("Vault") != null) {
|
|
if (splBalanceItemItem[0]
|
|
.equalsIgnoreCase("SKULL_ITEM")) {
|
|
final ItemStack itemStack5 = new ItemStack(
|
|
Material.SKULL_ITEM,
|
|
Integer.parseInt(splBalanceItemItem[1]),
|
|
(short) 3);
|
|
final SkullMeta itemMeta5 = (SkullMeta) itemStack5
|
|
.getItemMeta();
|
|
itemMeta5.setOwner(splBalanceItemItem[2]
|
|
.replace("%PLAYER%", player.getName()));
|
|
itemMeta5
|
|
.setDisplayName(ChatColor.translateAlternateColorCodes(
|
|
'&',
|
|
this.sendMessage(
|
|
player,
|
|
strBalanceItemName
|
|
.replace(
|
|
"%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(value3)
|
|
.toString()))));
|
|
final ArrayList<String> lore5 = new ArrayList<String>();
|
|
if (!strlBalanceItemLore.isEmpty()) {
|
|
final Iterator<String> iterator15 = strlBalanceItemLore
|
|
.iterator();
|
|
while (iterator15.hasNext()) {
|
|
lore5.add(ChatColor.translateAlternateColorCodes(
|
|
'&',
|
|
this.sendMessage(
|
|
player,
|
|
iterator15
|
|
.next()
|
|
.replace(
|
|
"%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(value3)
|
|
.toString()))));
|
|
}
|
|
}
|
|
itemMeta5.setLore(lore5);
|
|
itemStack5.setItemMeta(itemMeta5);
|
|
if (!stringList9.isEmpty()) {
|
|
final Iterator<String> iterator16 = stringList9
|
|
.iterator();
|
|
while (iterator16.hasNext()) {
|
|
final String[] split10 = iterator16
|
|
.next().toUpperCase()
|
|
.split(";");
|
|
itemStack5.addUnsafeEnchantment(
|
|
Enchantment
|
|
.getByName(split10[0]),
|
|
Integer.parseInt(split10[1]));
|
|
}
|
|
}
|
|
inventory.setItem(int4, itemStack5);
|
|
} else {
|
|
final ItemStack itemStack6 = new ItemStack(
|
|
Material.getMaterial(splBalanceItemItem[0]),
|
|
Integer.parseInt(splBalanceItemItem[1]),
|
|
(byte) Integer
|
|
.parseInt(splBalanceItemItem[2]));
|
|
final ItemMeta itemMeta6 = itemStack6
|
|
.getItemMeta();
|
|
itemMeta6
|
|
.setDisplayName(ChatColor.translateAlternateColorCodes(
|
|
'&',
|
|
this.sendMessage(
|
|
player,
|
|
strBalanceItemName
|
|
.replace(
|
|
"%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(value3)
|
|
.toString()))));
|
|
final ArrayList<String> lore6 = new ArrayList<String>();
|
|
if (!strlBalanceItemLore.isEmpty()) {
|
|
final Iterator<String> iterator17 = strlBalanceItemLore
|
|
.iterator();
|
|
while (iterator17.hasNext()) {
|
|
lore6.add(ChatColor.translateAlternateColorCodes(
|
|
'&',
|
|
this.sendMessage(
|
|
player,
|
|
iterator17
|
|
.next()
|
|
.replace(
|
|
"%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(value3)
|
|
.toString()))));
|
|
}
|
|
}
|
|
itemMeta6.setLore(lore6);
|
|
itemStack6.setItemMeta(itemMeta6);
|
|
if (!stringList9.isEmpty()) {
|
|
final Iterator<String> iterator18 = stringList9
|
|
.iterator();
|
|
while (iterator18.hasNext()) {
|
|
final String[] split11 = iterator18
|
|
.next().toUpperCase()
|
|
.split(";");
|
|
itemStack6.addUnsafeEnchantment(
|
|
Enchantment
|
|
.getByName(split11[0]),
|
|
Integer.parseInt(split11[1]));
|
|
}
|
|
}
|
|
inventory.setItem(int4, itemStack6);
|
|
}
|
|
} else if (player.getLevel() >= int3
|
|
&& this.getConfig().getBoolean(
|
|
"GUI." + guiName + ".EXPItem")) {
|
|
if (split4[0].equalsIgnoreCase("SKULL_ITEM")) {
|
|
final ItemStack itemStack7 = new ItemStack(
|
|
Material.SKULL_ITEM,
|
|
Integer.parseInt(split4[1]), (short) 3);
|
|
final SkullMeta itemMeta7 = (SkullMeta) itemStack7
|
|
.getItemMeta();
|
|
itemMeta7.setOwner(split4[2].replace(
|
|
"%PLAYER%", player.getName()));
|
|
itemMeta7
|
|
.setDisplayName(ChatColor.translateAlternateColorCodes(
|
|
'&',
|
|
this.sendMessage(
|
|
player,
|
|
string9.replace(
|
|
"%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(value4)
|
|
.toString()))));
|
|
final ArrayList<String> lore7 = new ArrayList<String>();
|
|
if (!stringList10.isEmpty()) {
|
|
final Iterator<String> iterator19 = stringList10
|
|
.iterator();
|
|
while (iterator19.hasNext()) {
|
|
lore7.add(ChatColor.translateAlternateColorCodes(
|
|
'&',
|
|
this.sendMessage(
|
|
player,
|
|
iterator19
|
|
.next()
|
|
.replace(
|
|
"%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(value4)
|
|
.toString()))));
|
|
}
|
|
}
|
|
itemMeta7.setLore(lore7);
|
|
itemStack7.setItemMeta(itemMeta7);
|
|
if (!stringList11.isEmpty()) {
|
|
final Iterator<String> iterator20 = stringList11
|
|
.iterator();
|
|
while (iterator20.hasNext()) {
|
|
final String[] split12 = iterator20
|
|
.next().toUpperCase()
|
|
.split(";");
|
|
itemStack7.addUnsafeEnchantment(
|
|
Enchantment
|
|
.getByName(split12[0]),
|
|
Integer.parseInt(split12[1]));
|
|
}
|
|
}
|
|
inventory.setItem(int4, itemStack7);
|
|
} else {
|
|
final ItemStack itemStack8 = new ItemStack(
|
|
Material.getMaterial(split4[0]),
|
|
Integer.parseInt(split4[1]),
|
|
(byte) Integer.parseInt(split4[2]));
|
|
final ItemMeta itemMeta8 = itemStack8
|
|
.getItemMeta();
|
|
itemMeta8
|
|
.setDisplayName(ChatColor.translateAlternateColorCodes(
|
|
'&',
|
|
this.sendMessage(
|
|
player,
|
|
string9.replace(
|
|
"%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(value4)
|
|
.toString()))));
|
|
final ArrayList<String> lore8 = new ArrayList<String>();
|
|
if (!stringList10.isEmpty()) {
|
|
final Iterator<String> iterator21 = stringList10
|
|
.iterator();
|
|
while (iterator21.hasNext()) {
|
|
lore8.add(ChatColor.translateAlternateColorCodes(
|
|
'&',
|
|
this.sendMessage(
|
|
player,
|
|
iterator21
|
|
.next()
|
|
.replace(
|
|
"%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(value4)
|
|
.toString()))));
|
|
}
|
|
}
|
|
itemMeta8.setLore(lore8);
|
|
itemStack8.setItemMeta(itemMeta8);
|
|
if (!stringList11.isEmpty()) {
|
|
final Iterator<String> iterator22 = stringList11
|
|
.iterator();
|
|
while (iterator22.hasNext()) {
|
|
final String[] split13 = iterator22
|
|
.next().toUpperCase()
|
|
.split(";");
|
|
itemStack8.addUnsafeEnchantment(
|
|
Enchantment
|
|
.getByName(split13[0]),
|
|
Integer.parseInt(split13[1]));
|
|
}
|
|
}
|
|
inventory.setItem(int4, itemStack8);
|
|
}
|
|
} else if (split5[0].equalsIgnoreCase("SKULL_ITEM")) {
|
|
final ItemStack itemStack9 = new ItemStack(
|
|
Material.SKULL_ITEM,
|
|
Integer.parseInt(split5[1]), (short) 3);
|
|
final SkullMeta itemMeta9 = (SkullMeta) itemStack9
|
|
.getItemMeta();
|
|
itemMeta9.setOwner(split5[2].replace("%PLAYER%",
|
|
player.getName()));
|
|
itemMeta9
|
|
.setDisplayName(ChatColor
|
|
.translateAlternateColorCodes(
|
|
'&',
|
|
this.sendMessage(
|
|
player,
|
|
string10.replace(
|
|
"%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(value5)
|
|
.toString()))));
|
|
final ArrayList<String> lore9 = new ArrayList<String>();
|
|
if (!stringList12.isEmpty()) {
|
|
final Iterator<String> iterator23 = stringList12
|
|
.iterator();
|
|
while (iterator23.hasNext()) {
|
|
lore9.add(ChatColor
|
|
.translateAlternateColorCodes(
|
|
'&',
|
|
this.sendMessage(
|
|
player,
|
|
iterator23
|
|
.next()
|
|
.replace(
|
|
"%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(value5)
|
|
.toString()))));
|
|
}
|
|
}
|
|
itemMeta9.setLore(lore9);
|
|
itemStack9.setItemMeta(itemMeta9);
|
|
if (!stringList13.isEmpty()) {
|
|
final Iterator<String> iterator24 = stringList13
|
|
.iterator();
|
|
while (iterator24.hasNext()) {
|
|
final String[] split14 = iterator24.next()
|
|
.toUpperCase().split(";");
|
|
itemStack9.addUnsafeEnchantment(
|
|
Enchantment.getByName(split14[0]),
|
|
Integer.parseInt(split14[1]));
|
|
}
|
|
}
|
|
inventory.setItem(int4, itemStack9);
|
|
} else {
|
|
final ItemStack itemStack10 = new ItemStack(
|
|
Material.getMaterial(split5[0]),
|
|
Integer.parseInt(split5[1]),
|
|
(byte) Integer.parseInt(split5[2]));
|
|
final ItemMeta itemMeta10 = itemStack10
|
|
.getItemMeta();
|
|
itemMeta10
|
|
.setDisplayName(ChatColor
|
|
.translateAlternateColorCodes(
|
|
'&',
|
|
this.sendMessage(
|
|
player,
|
|
string10.replace(
|
|
"%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(value5)
|
|
.toString()))));
|
|
final ArrayList<String> lore10 = new ArrayList<String>();
|
|
if (!stringList12.isEmpty()) {
|
|
final Iterator<String> iterator25 = stringList12
|
|
.iterator();
|
|
while (iterator25.hasNext()) {
|
|
lore10.add(ChatColor
|
|
.translateAlternateColorCodes(
|
|
'&',
|
|
this.sendMessage(
|
|
player,
|
|
iterator25
|
|
.next()
|
|
.replace(
|
|
"%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder()
|
|
.append(player
|
|
.getLevel())
|
|
.toString())
|
|
.replace(
|
|
"%COMMANDSCOST%",
|
|
new StringBuilder()
|
|
.append(value5)
|
|
.toString()))));
|
|
}
|
|
}
|
|
itemMeta10.setLore(lore10);
|
|
itemStack10.setItemMeta(itemMeta10);
|
|
if (!stringList13.isEmpty()) {
|
|
final Iterator<String> iterator26 = stringList13
|
|
.iterator();
|
|
while (iterator26.hasNext()) {
|
|
final String[] split15 = iterator26.next()
|
|
.toUpperCase().split(";");
|
|
itemStack10.addUnsafeEnchantment(
|
|
Enchantment.getByName(split15[0]),
|
|
Integer.parseInt(split15[1]));
|
|
}
|
|
}
|
|
inventory.setItem(int4, itemStack10);
|
|
}
|
|
}
|
|
player.openInventory(inventory);
|
|
final String upperCase = this.getConfig()
|
|
.getString("GUI." + guiName + ".OpenSound", "")
|
|
.toUpperCase();
|
|
if (upperCase.isEmpty() || upperCase == null) {
|
|
continue;
|
|
}
|
|
final float n = 1.0f;
|
|
player.playSound(player.getLocation(),
|
|
Sound.valueOf(upperCase), n, n);
|
|
} else {
|
|
player.sendMessage(ChatColor.translateAlternateColorCodes(
|
|
'&',
|
|
this.sendMessage(
|
|
player,
|
|
this.messagesFile
|
|
.getString("NoPermsCommandMessage")
|
|
.replace("%PLAYER%",
|
|
player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder().append(
|
|
player.getLevel())
|
|
.toString()))));
|
|
}
|
|
} else {
|
|
player.sendMessage(ChatColor.translateAlternateColorCodes(
|
|
'&',
|
|
this.sendMessage(
|
|
player,
|
|
this.messagesFile
|
|
.getString("WhitelistedWorldMessage")
|
|
.replace("%PLAYER%", player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder().append(
|
|
player.getLevel())
|
|
.toString()))));
|
|
}
|
|
} else {
|
|
player.sendMessage(ChatColor.translateAlternateColorCodes(
|
|
'&',
|
|
this.sendMessage(
|
|
player,
|
|
this.messagesFile
|
|
.getString("InvalidGUIMessage")
|
|
.replace("%PLAYER%", player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder()
|
|
.append(Main.econ
|
|
.getBalance(player))
|
|
.toString())
|
|
.replace(
|
|
"%PLAYERLEVEL%",
|
|
new StringBuilder().append(
|
|
player.getLevel())
|
|
.toString()))));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else if (player.hasPermission("customgui.help")) {
|
|
player.sendMessage(ChatColor.translateAlternateColorCodes('&', this.sendMessage(
|
|
player,
|
|
this.messagesFile
|
|
.getString("UnknownCommandMessage")
|
|
.replace("%PLAYER%", player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder().append(Main.econ.getBalance(player))
|
|
.toString())
|
|
.replace("%PLAYERLEVEL%",
|
|
new StringBuilder().append(player.getLevel()).toString()))));
|
|
} else {
|
|
player.sendMessage(ChatColor.translateAlternateColorCodes('&', this.sendMessage(
|
|
player,
|
|
this.messagesFile
|
|
.getString("NoPermsCommandMessage")
|
|
.replace("%PLAYER%", player.getName())
|
|
.replace(
|
|
"%BALANCE%",
|
|
new StringBuilder().append(Main.econ.getBalance(player))
|
|
.toString())
|
|
.replace("%PLAYERLEVEL%",
|
|
new StringBuilder().append(player.getLevel()).toString()))));
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
}
|