2021-12-21 04:57:29 +00:00
|
|
|
package de.jatitv.commandguiv2.Spigot.Listener;
|
|
|
|
|
|
|
|
import de.jatitv.commandguiv2.Spigot.Objekte.Slot;
|
|
|
|
import de.jatitv.commandguiv2.Spigot.system.Bungee_Sender_Reciver;
|
2022-01-06 01:21:27 +00:00
|
|
|
import de.jatitv.commandguiv2.Spigot.config.languages.SelectMessages;
|
2021-12-21 04:57:29 +00:00
|
|
|
import de.jatitv.commandguiv2.Spigot.Objekte.Object;
|
|
|
|
import de.jatitv.commandguiv2.Spigot.gui.OpenGUI;
|
2022-01-06 01:21:27 +00:00
|
|
|
import de.jatitv.commandguiv2.Spigot.config.config.SelectConfig;
|
2021-12-21 04:57:29 +00:00
|
|
|
import de.jatitv.commandguiv2.Spigot.Main;
|
2022-01-01 02:40:54 +00:00
|
|
|
import de.jatitv.commandguiv2.Util;
|
2021-12-21 04:57:29 +00:00
|
|
|
import net.t2code.lib.Spigot.Lib.items.ItemVersion;
|
|
|
|
import net.t2code.lib.Spigot.Lib.messages.send;
|
|
|
|
import net.t2code.lib.Spigot.Lib.replace.Replace;
|
|
|
|
import net.t2code.lib.Spigot.Lib.vault.Vault;
|
|
|
|
import org.bukkit.Bukkit;
|
|
|
|
import org.bukkit.Material;
|
|
|
|
import org.bukkit.Sound;
|
|
|
|
import org.bukkit.configuration.file.YamlConfiguration;
|
|
|
|
import org.bukkit.entity.Player;
|
|
|
|
import org.bukkit.event.EventHandler;
|
|
|
|
import org.bukkit.event.Listener;
|
2022-01-03 17:11:51 +00:00
|
|
|
import org.bukkit.event.inventory.ClickType;
|
2021-12-21 04:57:29 +00:00
|
|
|
import org.bukkit.event.inventory.InventoryClickEvent;
|
|
|
|
import org.bukkit.plugin.Plugin;
|
|
|
|
import org.bukkit.scheduler.BukkitRunnable;
|
|
|
|
|
|
|
|
import java.io.File;
|
|
|
|
import java.io.IOException;
|
|
|
|
|
|
|
|
public class GUI_Listener implements Listener {
|
|
|
|
|
2022-01-01 02:40:54 +00:00
|
|
|
private static String prefix = Util.getPrefix();
|
2021-12-21 04:57:29 +00:00
|
|
|
public static String GUICode;
|
|
|
|
private static Plugin plugin = Main.plugin;
|
|
|
|
|
|
|
|
@EventHandler
|
|
|
|
public void onInventoryClick(InventoryClickEvent e) {
|
|
|
|
Player player = (Player) e.getWhoClicked();
|
|
|
|
if (e.getInventory() != null && e.getCurrentItem() != null) {
|
|
|
|
for (Object gui : Main.guiHashMap.values()) {
|
|
|
|
if (player.getOpenInventory().getTitle().equals(Replace.replace(prefix, GUICode + gui.GUI_Name))
|
|
|
|
|| (Main.PaPi && player.getOpenInventory().getTitle().equals(Replace.replace(prefix, player, GUICode + gui.GUI_Name)))) {
|
|
|
|
e.setCancelled(true);
|
|
|
|
for (Slot slot : gui.GUI_Slots) {
|
|
|
|
/* if (!slot.ItemsRemovable) {
|
|
|
|
e.setCancelled(true);
|
|
|
|
}
|
|
|
|
*/
|
|
|
|
|
|
|
|
if (e.getSlot() == slot.Slot) {
|
|
|
|
|
|
|
|
if (!slot.Perm || player.hasPermission("commandgui.gui." + gui.Command_Command + ".slot." + (slot.Slot + 1))
|
|
|
|
|| player.hasPermission("commandgui.admin")) {
|
|
|
|
|
|
|
|
if (slot.Enable) {
|
|
|
|
if (e.getCurrentItem().getItemMeta().getDisplayName().equals(Replace.replace(prefix, slot.Name))) {
|
2021-12-22 19:18:50 +00:00
|
|
|
if (e.getCurrentItem().getType() == ItemVersion.getHead() || e.getCurrentItem().getType() == Material.valueOf(slot.Item.toUpperCase().replace(".", "_"))) {
|
2021-12-21 04:57:29 +00:00
|
|
|
if (slot.Cost_Enable) {
|
|
|
|
if (slot.Command_Enable || slot.Message_Enable || slot.OpenGUI_Enable || slot.ServerChange) {
|
|
|
|
if (Vault.buy(prefix, player, slot.Price)) {
|
|
|
|
player.sendMessage(SelectMessages.Buy_msg.replace("[itemname]", Replace.replace(prefix, slot.Name))
|
|
|
|
.replace("[price]", slot.Price + " " + SelectConfig.Currency));
|
|
|
|
if (slot.Command_Enable) {
|
|
|
|
|
|
|
|
new BukkitRunnable() {
|
|
|
|
@Override
|
|
|
|
public void run() {
|
|
|
|
player.closeInventory();
|
|
|
|
}
|
|
|
|
}.runTaskLater(plugin, 1L);
|
|
|
|
|
|
|
|
new BukkitRunnable() {
|
|
|
|
@Override
|
|
|
|
public void run() {
|
|
|
|
if (slot.Command_BungeeCommand && SelectConfig.Bungee) {
|
|
|
|
for (String cmd : slot.Command) {
|
|
|
|
Bungee_Sender_Reciver.sendToBungee(player, player.getName(), cmd.replace("[player]", player.getName()));
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
if (slot.CommandAsConsole) {
|
|
|
|
for (String cmd : slot.Command) {
|
|
|
|
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), cmd.replace("[player]", player.getName()));
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
for (String cmd : slot.Command) {
|
|
|
|
player.chat("/" + cmd.replace("[player]", player.getName()));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}.runTaskLater(plugin, 2L);
|
|
|
|
}
|
|
|
|
if (slot.OpenGUI_Enable) {
|
|
|
|
new BukkitRunnable() {
|
|
|
|
@Override
|
|
|
|
public void run() {
|
|
|
|
player.closeInventory();
|
|
|
|
|
|
|
|
}
|
|
|
|
}.runTaskLater(plugin, 1L);
|
|
|
|
new BukkitRunnable() {
|
|
|
|
@Override
|
|
|
|
public void run() {
|
|
|
|
OpenGUI.openGUI(player, Main.guiHashMap.get(slot.OpenGUI), slot.OpenGUI);
|
|
|
|
}
|
|
|
|
}.runTaskLater(plugin, 2L);
|
|
|
|
}
|
|
|
|
if (slot.Message_Enable) {
|
|
|
|
new BukkitRunnable() {
|
|
|
|
@Override
|
|
|
|
public void run() {
|
|
|
|
player.closeInventory();
|
|
|
|
}
|
|
|
|
}.runTaskLater(plugin, 1L);
|
|
|
|
|
|
|
|
for (String msg : slot.Message) {
|
|
|
|
if (Main.PaPi) {
|
|
|
|
player.sendMessage(Replace.replacePrice(prefix, player, msg, slot.Price + " " + SelectConfig.Currency));
|
|
|
|
} else
|
|
|
|
player.sendMessage(Replace.replacePrice(prefix, msg, slot.Price + " " + SelectConfig.Currency));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (slot.ServerChange) {
|
|
|
|
new BukkitRunnable() {
|
|
|
|
@Override
|
|
|
|
public void run() {
|
|
|
|
player.closeInventory();
|
|
|
|
}
|
|
|
|
}.runTaskLater(plugin, 1L);
|
|
|
|
|
|
|
|
send.player(player, SelectMessages.onServerChange.replace("[server]", slot.ServerChangeServer));
|
|
|
|
new BukkitRunnable() {
|
|
|
|
@Override
|
|
|
|
public void run() {
|
|
|
|
ServerChange.send(player, slot.ServerChangeServer);
|
|
|
|
}
|
|
|
|
}.runTaskLater(Main.plugin, 20L);
|
|
|
|
}
|
|
|
|
if (slot.SetConfigEnable) {
|
|
|
|
File config = new File(slot.ConfigFilePath);
|
|
|
|
YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config);
|
|
|
|
/*if (slot.ConfigChatInput){
|
|
|
|
ConfigChat.EditChat.put(player, slot.ConfigOptionPath);
|
|
|
|
player.sendMessage(DefaultValue.SettingsGUIchatSet.replace("[setting]", "Shop Name Chest small"));
|
|
|
|
player.sendMessage(DefaultValue.SettingsGUIchatCancel);
|
|
|
|
} else
|
|
|
|
{
|
|
|
|
*/
|
2022-01-03 17:11:51 +00:00
|
|
|
if (e.getClick() == ClickType.LEFT) {
|
2021-12-21 04:57:29 +00:00
|
|
|
if (slot.ConfigOptionPremat.equals("String")) {
|
|
|
|
yamlConfiguration.set(slot.ConfigOptionPath.replace("/", "."), slot.ConfigStringValueLeft);
|
|
|
|
} else if (slot.ConfigOptionPremat.equals("Boolean")) {
|
|
|
|
yamlConfiguration.set(slot.ConfigOptionPath.replace("/", "."), slot.ConfigBooleanValueLeft);
|
|
|
|
} else if (slot.ConfigOptionPremat.equals("Integer")) {
|
|
|
|
yamlConfiguration.set(slot.ConfigOptionPath.replace("/", "."), slot.ConfigIntegerValueLeft);
|
|
|
|
} else if (slot.ConfigOptionPremat.equals("Double")) {
|
|
|
|
yamlConfiguration.set(slot.ConfigOptionPath.replace("/", "."), slot.ConfigDoubleValueLeft);
|
|
|
|
} else if (slot.ConfigOptionPremat.equals("List")) {
|
|
|
|
yamlConfiguration.set(slot.ConfigOptionPath.replace("/", "."), slot.ConfigListValueLeft);
|
|
|
|
} else {
|
|
|
|
player.sendMessage("§cCheck the Option §6SetConfig/Option/Premat"); //todo
|
|
|
|
}
|
|
|
|
}
|
2022-01-03 17:11:51 +00:00
|
|
|
if (e.getClick() == ClickType.RIGHT) {
|
2021-12-21 04:57:29 +00:00
|
|
|
if (slot.ConfigOptionPremat.equals("String")) {
|
|
|
|
yamlConfiguration.set(slot.ConfigOptionPath.replace("/", "."), slot.ConfigStringValueRight);
|
|
|
|
} else if (slot.ConfigOptionPremat.equals("Boolean")) {
|
|
|
|
yamlConfiguration.set(slot.ConfigOptionPath.replace("/", "."), slot.ConfigBooleanValueRight);
|
|
|
|
} else if (slot.ConfigOptionPremat.equals("Integer")) {
|
|
|
|
yamlConfiguration.set(slot.ConfigOptionPath.replace("/", "."), slot.ConfigIntegerValueRight);
|
|
|
|
} else if (slot.ConfigOptionPremat.equals("Double")) {
|
|
|
|
yamlConfiguration.set(slot.ConfigOptionPath.replace("/", "."), slot.ConfigDoubleValueRight);
|
|
|
|
} else if (slot.ConfigOptionPremat.equals("List")) {
|
|
|
|
yamlConfiguration.set(slot.ConfigOptionPath.replace("/", "."), slot.ConfigListValueRight);
|
|
|
|
} else {
|
|
|
|
player.sendMessage("§cCheck the Option §6SetConfig/Option/Premat"); //todo
|
|
|
|
}
|
|
|
|
}
|
|
|
|
try {
|
|
|
|
yamlConfiguration.save(config);
|
|
|
|
} catch (IOException tac) {
|
|
|
|
tac.printStackTrace();
|
|
|
|
}
|
|
|
|
if (slot.PluginReloadEnable) {
|
|
|
|
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), slot.PluginReloadCommand);
|
|
|
|
}
|
|
|
|
new BukkitRunnable() {
|
|
|
|
@Override
|
|
|
|
public void run() {
|
|
|
|
player.closeInventory();
|
|
|
|
}
|
|
|
|
}.runTaskLater(plugin, 1L);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (SelectConfig.Sound_Enable && SelectConfig.Sound_Click_Enable) {
|
|
|
|
if (slot.CustomSound_Enable) {
|
|
|
|
if (!slot.CustomSound_NoSound) {
|
|
|
|
try {
|
|
|
|
player.playSound(player.getLocation(), Sound.valueOf(slot.CustomSound_Sound.toUpperCase().replace(".", "_")), 3, 1);
|
|
|
|
|
|
|
|
} catch (Exception e1) {
|
|
|
|
send.console("§4\n§4\n§4\n" + SelectMessages.SoundNotFound.replace("[prefix]", prefix)
|
|
|
|
.replace("[sound]", "§6GUI: §e" + Replace.replace(prefix, gui.GUI_Name) + "§r §6Slot: §e" + slot.Slot + " §6CustomSound: §9" + slot.CustomSound_Sound));
|
|
|
|
player.playSound(player.getLocation(), SelectConfig.Sound_Click, 3, 1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else
|
|
|
|
player.playSound(player.getLocation(), SelectConfig.Sound_Click, 3, 1);
|
|
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
new BukkitRunnable() {
|
|
|
|
@Override
|
|
|
|
public void run() {
|
|
|
|
player.closeInventory();
|
|
|
|
}
|
|
|
|
}.runTaskLater(plugin, 1L);
|
|
|
|
|
|
|
|
player.sendMessage(SelectMessages.No_money);
|
|
|
|
if (SelectConfig.Sound_NoMoney_Enable && SelectConfig.Sound_Enable) {
|
|
|
|
player.playSound(player.getLocation(), SelectConfig.Sound_NoMoney, 3, 1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
if (slot.Command_Enable) {
|
|
|
|
new BukkitRunnable() {
|
|
|
|
@Override
|
|
|
|
public void run() {
|
|
|
|
player.closeInventory();
|
|
|
|
}
|
|
|
|
}.runTaskLater(plugin, 1L);
|
|
|
|
|
|
|
|
new BukkitRunnable() {
|
|
|
|
@Override
|
|
|
|
public void run() {
|
|
|
|
if (slot.Command_BungeeCommand) {
|
|
|
|
if (SelectConfig.Bungee) {
|
|
|
|
for (String cmd : slot.Command) {
|
|
|
|
Bungee_Sender_Reciver.sendToBungee(player, player.getName(), cmd.replace("[player]", player.getName()));
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
send.console(prefix + " §4To use bungee commands, enable the Bungee option in the config.");
|
|
|
|
send.player(player, prefix + " §4To use bungee commands, enable the Bungee option in the config.");
|
|
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
|
|
if (slot.CommandAsConsole) {
|
|
|
|
for (String cmd : slot.Command) {
|
|
|
|
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), cmd.replace("[player]", player.getName()));
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
for (String cmd : slot.Command) {
|
|
|
|
player.chat("/" + cmd);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}.runTaskLater(plugin, 2L);
|
|
|
|
}
|
|
|
|
if (slot.OpenGUI_Enable) {
|
|
|
|
new BukkitRunnable() {
|
|
|
|
@Override
|
|
|
|
public void run() {
|
|
|
|
player.closeInventory();
|
|
|
|
}
|
|
|
|
}.runTaskLater(plugin, 1L);
|
|
|
|
new BukkitRunnable() {
|
|
|
|
@Override
|
|
|
|
public void run() {
|
|
|
|
|
|
|
|
OpenGUI.openGUI(player, Main.guiHashMap.get(slot.OpenGUI), slot.OpenGUI);
|
|
|
|
}
|
|
|
|
}.runTaskLater(plugin, 2L);
|
|
|
|
}
|
|
|
|
if (slot.Message_Enable) {
|
|
|
|
new BukkitRunnable() {
|
|
|
|
@Override
|
|
|
|
public void run() {
|
|
|
|
player.closeInventory();
|
|
|
|
}
|
|
|
|
}.runTaskLater(plugin, 1L);
|
|
|
|
|
|
|
|
|
|
|
|
for (String msg : slot.Message) {
|
|
|
|
if (Main.PaPi) {
|
|
|
|
player.sendMessage(Replace.replace(prefix, player, msg.replace("[prefix]", prefix)));
|
|
|
|
} else
|
|
|
|
player.sendMessage(Replace.replace(prefix, msg.replace("[prefix]", prefix)));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (slot.ServerChange) {
|
|
|
|
new BukkitRunnable() {
|
|
|
|
@Override
|
|
|
|
public void run() {
|
|
|
|
player.closeInventory();
|
|
|
|
}
|
|
|
|
}.runTaskLater(plugin, 1L);
|
|
|
|
|
|
|
|
send.player(player, SelectMessages.onServerChange.replace("[server]", slot.ServerChangeServer));
|
|
|
|
|
|
|
|
|
|
|
|
new BukkitRunnable() {
|
|
|
|
@Override
|
|
|
|
public void run() {
|
|
|
|
ServerChange.send(player, slot.ServerChangeServer);
|
|
|
|
}
|
|
|
|
}.runTaskLater(Main.plugin, 20L);
|
|
|
|
}
|
|
|
|
if (slot.SetConfigEnable) {
|
|
|
|
File config = new File(slot.ConfigFilePath);
|
|
|
|
YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config);
|
|
|
|
/*if (slot.ConfigChatInput){
|
|
|
|
ConfigChat.EditChat.put(player, slot.ConfigOptionPath);
|
|
|
|
player.sendMessage(DefaultValue.SettingsGUIchatSet.replace("[setting]", "Shop Name Chest small"));
|
|
|
|
player.sendMessage(DefaultValue.SettingsGUIchatCancel);
|
|
|
|
} else
|
|
|
|
{
|
|
|
|
*/
|
|
|
|
if (e.isLeftClick()) {
|
|
|
|
if (slot.ConfigOptionPremat.equals("String")) {
|
|
|
|
yamlConfiguration.set(slot.ConfigOptionPath.replace("/", "."), slot.ConfigStringValueLeft);
|
|
|
|
} else if (slot.ConfigOptionPremat.equals("Boolean")) {
|
|
|
|
yamlConfiguration.set(slot.ConfigOptionPath.replace("/", "."), slot.ConfigBooleanValueLeft);
|
|
|
|
} else if (slot.ConfigOptionPremat.equals("Integer")) {
|
|
|
|
yamlConfiguration.set(slot.ConfigOptionPath.replace("/", "."), slot.ConfigIntegerValueLeft);
|
|
|
|
} else if (slot.ConfigOptionPremat.equals("Double")) {
|
|
|
|
yamlConfiguration.set(slot.ConfigOptionPath.replace("/", "."), slot.ConfigDoubleValueLeft);
|
|
|
|
} else if (slot.ConfigOptionPremat.equals("List")) {
|
|
|
|
yamlConfiguration.set(slot.ConfigOptionPath.replace("/", "."), slot.ConfigListValueLeft);
|
|
|
|
} else {
|
|
|
|
player.sendMessage("§cCheck the Option §6SetConfig/Option/Premat"); //todo
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (e.isRightClick()) {
|
|
|
|
if (slot.ConfigOptionPremat.equals("String")) {
|
|
|
|
yamlConfiguration.set(slot.ConfigOptionPath.replace("/", "."), slot.ConfigStringValueRight);
|
|
|
|
} else if (slot.ConfigOptionPremat.equals("Boolean")) {
|
|
|
|
yamlConfiguration.set(slot.ConfigOptionPath.replace("/", "."), slot.ConfigBooleanValueRight);
|
|
|
|
} else if (slot.ConfigOptionPremat.equals("Integer")) {
|
|
|
|
yamlConfiguration.set(slot.ConfigOptionPath.replace("/", "."), slot.ConfigIntegerValueRight);
|
|
|
|
} else if (slot.ConfigOptionPremat.equals("Double")) {
|
|
|
|
yamlConfiguration.set(slot.ConfigOptionPath.replace("/", "."), slot.ConfigDoubleValueRight);
|
|
|
|
} else if (slot.ConfigOptionPremat.equals("List")) {
|
|
|
|
yamlConfiguration.set(slot.ConfigOptionPath.replace("/", "."), slot.ConfigListValueRight);
|
|
|
|
} else {
|
|
|
|
player.sendMessage("§cCheck the Option §6SetConfig/Option/Premat"); //todo
|
|
|
|
}
|
|
|
|
}
|
|
|
|
try {
|
|
|
|
yamlConfiguration.save(config);
|
|
|
|
} catch (IOException tac) {
|
|
|
|
tac.printStackTrace();
|
|
|
|
}
|
|
|
|
if (slot.PluginReloadEnable) {
|
|
|
|
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), slot.PluginReloadCommand);
|
|
|
|
}
|
|
|
|
new BukkitRunnable() {
|
|
|
|
@Override
|
|
|
|
public void run() {
|
|
|
|
player.closeInventory();
|
|
|
|
}
|
|
|
|
}.runTaskLater(plugin, 1L);
|
|
|
|
}
|
|
|
|
if (SelectConfig.Sound_Enable && SelectConfig.Sound_Click_Enable) {
|
|
|
|
if (slot.CustomSound_Enable) {
|
|
|
|
if (!slot.CustomSound_NoSound) {
|
|
|
|
try {
|
|
|
|
player.playSound(player.getLocation(), Sound.valueOf(slot.CustomSound_Sound.toUpperCase().replace(".", "_")), 3, 1);
|
|
|
|
|
|
|
|
} catch (Exception e1) {
|
|
|
|
send.console("§4\n§4\n§4\n" + SelectMessages.SoundNotFound.replace("[prefix]", prefix)
|
|
|
|
.replace("[sound]", "§6GUI: §e" + Replace.replace(prefix, gui.GUI_Name) + "§r §6Slot: §e" + slot.Slot + " §6CustomSound: §9" + slot.CustomSound_Sound));
|
|
|
|
player.playSound(player.getLocation(), SelectConfig.Sound_Click, 3, 1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else
|
|
|
|
player.playSound(player.getLocation(), SelectConfig.Sound_Click, 3, 1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
player.sendMessage(SelectMessages.NoPermissionForItem.replace("[item]", Replace.replace(prefix, slot.Name))
|
|
|
|
.replace("[perm]", "commandgui.gui." + gui.Command_Command + ".slot." + (slot.Slot + 1)));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|