5 Commits
2.7.1 ... 2.7.3

Author SHA1 Message Date
b0286e597f Merge branch 'main' of https://git.t2code.net/JaTiTV/CommandGUI 2022-05-17 21:04:30 +02:00
ddfea4eba6 2.7.3
CHANGE: The placeholders are now usable internally in the plugin, even if PlaceholderAPI is not available.

FIX: Playerheads, Base64 Heads are now also available with 1.8 - 1.12
2022-05-17 21:04:23 +02:00
JaTiTV
ed86e7b143 „README.md“ ändern 2022-05-17 00:56:19 +02:00
32c1219bb2 2.7.2
ADD: Added a UseItem Item/Block Blacklist so that when you look at one of these blocks, the GUI does not open but the block (for example: CHEST, CRAFTING_TABLE, or buttons).
2022-05-17 00:19:39 +02:00
326dfae0e9 2.7.2
Small code changes that fixes minor bugs
2022-05-16 14:03:53 +02:00
19 changed files with 198 additions and 121 deletions

View File

@@ -6,7 +6,7 @@
<groupId>net.t2code</groupId> <groupId>net.t2code</groupId>
<artifactId>CommandGUI_V2</artifactId> <artifactId>CommandGUI_V2</artifactId>
<version>2.7.1</version> <version>2.7.3</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<name>CommandGUI</name> <name>CommandGUI</name>

View File

@@ -10,6 +10,8 @@ import de.jatitv.commandguiv2.Spigot.objects.guis.Gui;
import de.jatitv.commandguiv2.Spigot.gui.OpenGUI; import de.jatitv.commandguiv2.Spigot.gui.OpenGUI;
import de.jatitv.commandguiv2.Spigot.config.config.SelectConfig; import de.jatitv.commandguiv2.Spigot.config.config.SelectConfig;
import de.jatitv.commandguiv2.Spigot.Main; import de.jatitv.commandguiv2.Spigot.Main;
import de.jatitv.commandguiv2.Spigot.system.Papi;
import de.jatitv.commandguiv2.Spigot.system.Placeholder;
import de.jatitv.commandguiv2.Util; import de.jatitv.commandguiv2.Util;
import net.t2code.lib.Spigot.Lib.items.ItemVersion; import net.t2code.lib.Spigot.Lib.items.ItemVersion;
import net.t2code.lib.Spigot.Lib.messages.send; import net.t2code.lib.Spigot.Lib.messages.send;
@@ -149,12 +151,12 @@ public class GUIListener implements Listener {
for (String msg : slot.message) { for (String msg : slot.message) {
if (Main.PaPi) { if (Main.PaPi) {
if (slot.cost_Enable) { if (slot.cost_Enable) {
player.sendMessage(Replace.replacePrice(prefix, player, msg, slot.price + " " + SelectConfig.Currency)); player.sendMessage(Replace.replacePrice(prefix, player, Placeholder.replace(msg, player), slot.price + " " + SelectConfig.Currency));
} else player.sendMessage(Replace.replace(prefix, player, msg.replace("[prefix]", prefix))); } else player.sendMessage(Replace.replace(prefix, player, Placeholder.replace(msg, player)));
} else { } else {
if (slot.cost_Enable) { if (slot.cost_Enable) {
player.sendMessage(Replace.replacePrice(prefix, msg, slot.price + " " + SelectConfig.Currency)); player.sendMessage(Replace.replacePrice(prefix, Placeholder.replace(msg, player), slot.price + " " + SelectConfig.Currency));
} else player.sendMessage(Replace.replace(prefix, msg.replace("[prefix]", prefix))); } else player.sendMessage(Replace.replace(prefix, Placeholder.replace(msg, player)));
} }
} }
} }
@@ -261,7 +263,7 @@ public class GUIListener implements Listener {
} }
private static void toggleUseItem(Player player, Gui gui) { private static void toggleUseItem(Player player, Gui gui) {
if (Events.useItemHashMap.get(player)) { if (Events.useItemHashMap.get(player.getName())) {
Commands.itemOff(player); Commands.itemOff(player);
} else { } else {
Commands.itemOn(player); Commands.itemOn(player);

View File

@@ -4,6 +4,7 @@ import de.jatitv.commandguiv2.Spigot.Listener.UseItem_Listener.Events;
import de.jatitv.commandguiv2.Spigot.Main; import de.jatitv.commandguiv2.Spigot.Main;
import de.jatitv.commandguiv2.Spigot.system.UseItem; import de.jatitv.commandguiv2.Spigot.system.UseItem;
import de.jatitv.commandguiv2.Spigot.config.config.SelectConfig; import de.jatitv.commandguiv2.Spigot.config.config.SelectConfig;
import de.jatitv.commandguiv2.Spigot.system.database.SelectDatabase;
import net.t2code.lib.Spigot.Lib.messages.send; import net.t2code.lib.Spigot.Lib.messages.send;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitRunnable;
@@ -14,11 +15,7 @@ public class ItemChange {
if (SelectConfig.UseItem_InventorySlotEnforce) { if (SelectConfig.UseItem_InventorySlotEnforce) {
slot = SelectConfig.UseItem_InventorySlot; slot = SelectConfig.UseItem_InventorySlot;
} else { } else {
if (Events.useItemSlotHashMap.get(player) == null) { slot = Events.useItemSlotHashMap.get(player.getName());
slot = SelectConfig.UseItem_InventorySlot;
} else {
slot = Events.useItemSlotHashMap.get(player);
}
} }
if (!SelectConfig.UseItem_Enable) { if (!SelectConfig.UseItem_Enable) {
@@ -27,7 +24,7 @@ public class ItemChange {
UseItem.removeItem(player); UseItem.removeItem(player);
if (UseItem.protection(player, false)) return; if (UseItem.protection(player, false)) return;
if (SelectConfig.UseItem_GiveOnlyOnFirstJoin) { if (SelectConfig.UseItem_GiveOnlyOnFirstJoin) {
if (!SelectConfig.UseItem_AllowToggle || Events.useItemHashMap.get(player)) { if (!SelectConfig.UseItem_AllowToggle || Events.useItemHashMap.get(player.getName())) {
if (!player.hasPlayedBefore()) { if (!player.hasPlayedBefore()) {
new BukkitRunnable() { new BukkitRunnable() {
@Override @Override
@@ -53,8 +50,7 @@ public class ItemChange {
new BukkitRunnable() { new BukkitRunnable() {
@Override @Override
public void run() { public void run() {
if (player == null) return; if (!SelectConfig.UseItem_AllowToggle || Events.useItemHashMap.get(player.getName())) {
if (!SelectConfig.UseItem_AllowToggle || Events.useItemHashMap.get(player)) {
if (SelectConfig.UseItem_InventorySlotEnforce || player.getInventory().getItem(slot - 1) == null) { if (SelectConfig.UseItem_InventorySlotEnforce || player.getInventory().getItem(slot - 1) == null) {
send.debug(Main.plugin, "Give: " + player.getName()); send.debug(Main.plugin, "Give: " + player.getName());
UseItem.giveUseItem(player); UseItem.giveUseItem(player);

View File

@@ -34,16 +34,16 @@ import java.util.Iterator;
public class Events implements Listener { public class Events implements Listener {
public static HashMap<Player, Boolean> useItemHashMap = new HashMap<>(); public static HashMap<String, Boolean> useItemHashMap = new HashMap<>();
public static HashMap<Player, Integer> useItemSlotHashMap = new HashMap<>(); public static HashMap<String, Integer> useItemSlotHashMap = new HashMap<>();
@EventHandler @EventHandler
public void onJoin(PlayerJoinEvent e) { public void onJoin(PlayerJoinEvent e) {
if (SelectDatabase.selectItemStatus(e.getPlayer())) { useItemHashMap.put(e.getPlayer().getName(), SelectDatabase.selectItemStatus(e.getPlayer()));
useItemHashMap.put(e.getPlayer(), true); Integer i = SelectDatabase.selectSlot(e.getPlayer());
} else useItemHashMap.put(e.getPlayer(), false); if (i == null) {
useItemSlotHashMap.put(e.getPlayer().getName(), SelectConfig.UseItem_InventorySlot);
useItemSlotHashMap.put(e.getPlayer(), SelectDatabase.selectSlot(e.getPlayer())); } else useItemSlotHashMap.put(e.getPlayer().getName(), i);
if (CGuiAPI.JoinDisable) { if (CGuiAPI.JoinDisable) {
send.debug(Main.plugin, "JoinDisable"); send.debug(Main.plugin, "JoinDisable");
@@ -62,7 +62,7 @@ public class Events implements Listener {
@EventHandler @EventHandler
public void onJoin(PlayerQuitEvent e) { public void onJoin(PlayerQuitEvent e) {
useItemHashMap.remove(e.getPlayer()); useItemHashMap.remove(e.getPlayer().getName());
} }
@EventHandler(priority = EventPriority.HIGHEST) @EventHandler(priority = EventPriority.HIGHEST)
@@ -136,10 +136,17 @@ public class Events implements Listener {
}.runTaskLater(Main.plugin, SelectConfig.UseItemWorldChangeDelayInTicks * 1L); }.runTaskLater(Main.plugin, SelectConfig.UseItemWorldChangeDelayInTicks * 1L);
} }
@EventHandler(priority = EventPriority.HIGHEST) @EventHandler(priority = EventPriority.HIGHEST)
public void onInteract(PlayerInteractEvent e) { public void onInteract(PlayerInteractEvent e) {
Player p = e.getPlayer(); Player p = e.getPlayer();
if (!p.isSneaking()) {
for (String material : SelectConfig.UseItemItemBlockBlacklist) {
if (e.getClickedBlock() != null) {
if (e.getClickedBlock().getType() == Material.valueOf(material)) return;
}
}
}
if (SelectConfig.UseItem_Enable) { if (SelectConfig.UseItem_Enable) {
if (SelectConfig.UseItem_PlayerHead_Enable) { if (SelectConfig.UseItem_PlayerHead_Enable) {
if (e.getItem() != null && p.getItemInHand().getType() == ItemVersion.getHead()) { if (e.getItem() != null && p.getItemInHand().getType() == ItemVersion.getHead()) {
@@ -165,7 +172,7 @@ public class Events implements Listener {
return; return;
} }
if (!legacy()) { if (!Main.legacy) {
if (!topInventoryIsEmpty(player)) return; if (!topInventoryIsEmpty(player)) return;
} }
@@ -288,12 +295,6 @@ public class Events implements Listener {
} }
} }
private static boolean legacy() {
if (MCVersion.minecraft1_8 || MCVersion.minecraft1_9 || MCVersion.minecraft1_10 || MCVersion.minecraft1_11 || MCVersion.minecraft1_12 || MCVersion.minecraft1_13 || MCVersion.minecraft1_14 || MCVersion.minecraft1_15 || NMSVersion.v1_16_R1) {
return true;
} else return false;
}
private static boolean topInventoryIsEmpty(Player p) { private static boolean topInventoryIsEmpty(Player p) {
return p.getOpenInventory().getTopInventory().isEmpty(); return p.getOpenInventory().getTopInventory().isEmpty();
} }

View File

@@ -8,6 +8,8 @@ import de.jatitv.commandguiv2.Spigot.system.database.MySQL;
import de.jatitv.commandguiv2.Util; import de.jatitv.commandguiv2.Util;
import net.t2code.lib.Spigot.Lib.messages.T2CodeTemplate; import net.t2code.lib.Spigot.Lib.messages.T2CodeTemplate;
import net.t2code.lib.Spigot.Lib.messages.send; import net.t2code.lib.Spigot.Lib.messages.send;
import net.t2code.lib.Spigot.Lib.minecraftVersion.MCVersion;
import net.t2code.lib.Spigot.Lib.minecraftVersion.NMSVersion;
import net.t2code.lib.Spigot.Lib.plugins.PluginCheck; import net.t2code.lib.Spigot.Lib.plugins.PluginCheck;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;
@@ -27,6 +29,7 @@ public final class Main extends JavaPlugin {
} }
private static Boolean enable = false; private static Boolean enable = false;
public static Boolean legacy = false;
public static String prefix = "§8[§4C§9GUI§8]"; public static String prefix = "§8[§4C§9GUI§8]";
@@ -57,6 +60,9 @@ public final class Main extends JavaPlugin {
plugin = this; plugin = this;
autor = plugin.getDescription().getAuthors(); autor = plugin.getDescription().getAuthors();
version = plugin.getDescription().getVersion(); version = plugin.getDescription().getVersion();
if (MCVersion.minecraft1_8 || MCVersion.minecraft1_9 || MCVersion.minecraft1_10 || MCVersion.minecraft1_11 || MCVersion.minecraft1_12 || MCVersion.minecraft1_13 || MCVersion.minecraft1_14 || MCVersion.minecraft1_15 || NMSVersion.v1_16_R1) {
legacy = true;
}
if (pluginNotFound("T2CodeLib", 96388, Util.getRequiredT2CodeLibVersion())) return; if (pluginNotFound("T2CodeLib", 96388, Util.getRequiredT2CodeLibVersion())) return;
getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord"); getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
if (PluginCheck.papi()) { if (PluginCheck.papi()) {

View File

@@ -124,11 +124,7 @@ public class Commands {
if (SelectConfig.UseItem_InventorySlotEnforce) { if (SelectConfig.UseItem_InventorySlotEnforce) {
slot = SelectConfig.UseItem_InventorySlot; slot = SelectConfig.UseItem_InventorySlot;
} else { } else {
if (Events.useItemSlotHashMap.get(player) == null) { slot = Events.useItemSlotHashMap.get(player.getName());
slot = SelectConfig.UseItem_InventorySlot;
} else {
slot = Events.useItemSlotHashMap.get(player);
}
} }
send.debug(Main.plugin, String.valueOf(slot)); send.debug(Main.plugin, String.valueOf(slot));
if (player.getInventory().getItem(slot - 1) == null) { if (player.getInventory().getItem(slot - 1) == null) {
@@ -175,8 +171,8 @@ public class Commands {
return; return;
} }
if (Events.useItemHashMap.get(player)) { if (Events.useItemHashMap.get(player.getName())) {
if (Objects.equals(Events.useItemSlotHashMap.get(player), setSlot)) { if (Objects.equals(Events.useItemSlotHashMap.get(player.getName()), setSlot)) {
player.sendMessage(SelectMessages.ItemSlotAlreadySet.replace("[slot]", setSlot.toString())); player.sendMessage(SelectMessages.ItemSlotAlreadySet.replace("[slot]", setSlot.toString()));
return; return;
} }
@@ -189,9 +185,9 @@ public class Commands {
UseItem.removeItem(player); UseItem.removeItem(player);
SelectDatabase.setSlot(player, setSlot); SelectDatabase.setSlot(player, setSlot);
Events.useItemSlotHashMap.replace(player, setSlot); Events.useItemSlotHashMap.replace(player.getName(), setSlot);
if (Events.useItemHashMap.get(player)) { if (Events.useItemHashMap.get(player.getName())) {
UseItem.giveUseItem(player); UseItem.giveUseItem(player);
} }

View File

@@ -6,15 +6,19 @@ import net.t2code.lib.Spigot.Lib.items.ItemVersion;
import net.t2code.lib.Spigot.Lib.messages.send; import net.t2code.lib.Spigot.Lib.messages.send;
import net.t2code.lib.Spigot.Lib.minecraftVersion.MCVersion; import net.t2code.lib.Spigot.Lib.minecraftVersion.MCVersion;
import net.t2code.lib.Spigot.Lib.yamlConfiguration.Config; import net.t2code.lib.Spigot.Lib.yamlConfiguration.Config;
import org.bukkit.Material;
import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.configuration.file.YamlConfiguration;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List;
public class ConfigCreate { public class ConfigCreate {
public static void configCreate() { public static void configCreate() {
long long_ = System.currentTimeMillis(); long long_ = System.currentTimeMillis();
if (new File(Main.getPath(), "config.yml").exists()) { if (new File(Main.getPath(), "config.yml").exists()) {
@@ -32,7 +36,9 @@ public class ConfigCreate {
Config.set("Plugin.Currency", "$", yamlConfiguration); Config.set("Plugin.Currency", "$", yamlConfiguration);
Config.set("Plugin.DefaultGUI", "default", yamlConfiguration); Config.set("Plugin.DefaultGUI", "default", yamlConfiguration);
Config.set("Storage.Type", "SQLITE", yamlConfiguration); if (Main.legacy){
Config.set("Storage.Type", "YML", yamlConfiguration);
} else Config.set("Storage.Type", "SQLITE", yamlConfiguration);
Config.set("Storage.MySQL.IP", "localhost", yamlConfiguration); Config.set("Storage.MySQL.IP", "localhost", yamlConfiguration);
Config.set("Storage.MySQL.Port", 3306, yamlConfiguration); Config.set("Storage.MySQL.Port", 3306, yamlConfiguration);
Config.set("Storage.MySQL.Database", "database", yamlConfiguration); Config.set("Storage.MySQL.Database", "database", yamlConfiguration);
@@ -99,14 +105,45 @@ public class ConfigCreate {
Config.set("Advanced.UseItem.World.Protection.RemoveItemWhenItIsDisabled", false, yamlConfiguration); Config.set("Advanced.UseItem.World.Protection.RemoveItemWhenItIsDisabled", false, yamlConfiguration);
Config.set("Advanced.UseItem.World.Protection.Mode", "blacklist", yamlConfiguration); Config.set("Advanced.UseItem.World.Protection.Mode", "blacklist", yamlConfiguration);
Config.set("Advanced.UseItem.World.Protection.List", Arrays.asList("World1", "World2"), yamlConfiguration); Config.set("Advanced.UseItem.World.Protection.List", Arrays.asList("World1", "World2"), yamlConfiguration);
/*
Config.set("Advanced.UseItem.ItemBlockBlacklist", Arrays.asList("CHEST", "TRAPPED_CHEST", "FURNACE", "NOTE_BLOCK",
"CRAFTING_TABLE", "ENDER_CHEST", "ANVIL", "LOOM", "COMPOSTER", "BARREL", "SMOKER",
"BLAST_FURNACE", "CARTOGRAPHY_TABLE", "FLETCHING_TABLE", "GRINDSTONE", "SMITHING_TABLE", "STONECUTTER",
"HOPPER", "DISPENSER", "DROPPER", "REPEATER", "COMPARATOR", "LEVER", "DAYLIGHT_DETECTOR",
"STONE_BUTTON", "OAK_BUTTON", "SPRUCE_BUTTON", "BIRCH_BUTTON", "JUNGLE_BUTTON", "ACACIA_BUTTON", "DARK_OAK_BUTTON", "CRIMSON_BUTTON",
"IRON_DOOR", "OAK_DOOR", "SPRUCE_DOOR", "BIRCH_DOOR", "JUNGLE_DOOR", "ACACIA_DOOR", "DARK_OAK_DOOR", "CRIMSON_DOOR", "WARPED_DOOR",
"OAK_FENCE", "SPRUCE_FENCE", "BIRCH_FENCE", "JUNGLE_FENCE", "ACACIA_FENCE", "DARK_OAK_FENCE", "CRIMSON_FENCE", "WARPED_FENCE", "NETHER_BRICK_FENCE"), yamlConfiguration);
*/
if (!yamlConfiguration.contains("Advanced.UseItem.ItemBlockBlacklist")) {
List<String> materialList = Arrays.asList("BUTTON", "DOOR", "FENCE", "CHEST", "FURNACE", "NOTE_BLOCK", "CRAFTING_TABLE", "WORKBENCH",
"ANVIL", "LOOM", "COMPOSTER", "BARREL", "SMOKER", "BLAST_FURNACE", "CARTOGRAPHY_TABLE", "FLETCHING_TABLE", "GRINDSTONE",
"SMITHING_TABLE", "STONECUTTER", "HOPPER", "DISPENSER", "DROPPER", "REPEATER", "COMPARATOR", "LEVER", "DAYLIGHT_DETECTOR", "BREWING_STAND", "TRAPDOOR", "BEACON"
);
List<String> materialBlacklist = new ArrayList<>();
for (Material material : Material.values()) {
for (String target : materialList) {
if (material.toString().contains(target)) materialBlacklist.add(material.toString());
}
}
Config.set("Advanced.UseItem.ItemBlockBlacklist", materialBlacklist, yamlConfiguration);
}
Config.set("Toggle.Items.OnOrYes.Item.Base64.Enable", false, yamlConfiguration); Config.set("Toggle.Items.OnOrYes.Item.Base64.Enable", false, yamlConfiguration);
Config.set("Toggle.Items.OnOrYes.Item.Base64.Base64Value", "", yamlConfiguration); Config.set("Toggle.Items.OnOrYes.Item.Base64.Base64Value", "", yamlConfiguration);
Config.set("Toggle.Items.OnOrYes.Item.Material", ItemVersion.getGreenWool().getType().toString(), yamlConfiguration); if (Main.legacy) {
Config.set("Toggle.Items.OnOrYes.Item.Material", "WOOL,5", yamlConfiguration);
} else Config.set("Toggle.Items.OnOrYes.Item.Material", ItemVersion.getGreenWool().getType().toString(), yamlConfiguration);
Config.set("Toggle.Items.OffOrNo.Item.Base64.Enable", false, yamlConfiguration); Config.set("Toggle.Items.OffOrNo.Item.Base64.Enable", false, yamlConfiguration);
Config.set("Toggle.Items.OffOrNo.Item.Base64.Base64Value", "", yamlConfiguration); Config.set("Toggle.Items.OffOrNo.Item.Base64.Base64Value", "", yamlConfiguration);
Config.set("Toggle.Items.OffOrNo.Item.Material", ItemVersion.getRedWool().getType().toString(), yamlConfiguration); if (Main.legacy) {
Config.set("Toggle.Items.OffOrNo.Item.Material", "WOOL,14", yamlConfiguration);
} else Config.set("Toggle.Items.OffOrNo.Item.Material", ItemVersion.getRedWool().getType().toString(), yamlConfiguration);
Config.set("Toggle.Permission.Commands.True", "luckperms user [player] permission set [perm] true", yamlConfiguration); Config.set("Toggle.Permission.Commands.True", "luckperms user [player] permission set [perm] true", yamlConfiguration);
Config.set("Toggle.Permission.Commands.False", "luckperms user [player] permission set [perm] false", yamlConfiguration); Config.set("Toggle.Permission.Commands.False", "luckperms user [player] permission set [perm] false", yamlConfiguration);

View File

@@ -4,8 +4,6 @@ import de.jatitv.commandguiv2.Spigot.Main;
import de.jatitv.commandguiv2.Spigot.config.configConverter.ConfigConverterUnderV5; import de.jatitv.commandguiv2.Spigot.config.configConverter.ConfigConverterUnderV5;
import de.jatitv.commandguiv2.Spigot.config.languages.SelectMessages; import de.jatitv.commandguiv2.Spigot.config.languages.SelectMessages;
import de.jatitv.commandguiv2.Spigot.system.database.MySQL; import de.jatitv.commandguiv2.Spigot.system.database.MySQL;
import de.jatitv.commandguiv2.Spigot.system.database.SelectDatabase;
import de.jatitv.commandguiv2.Spigot.system.database.StorageType;
import de.jatitv.commandguiv2.Util; import de.jatitv.commandguiv2.Util;
import net.t2code.lib.Spigot.Lib.messages.send; import net.t2code.lib.Spigot.Lib.messages.send;
import net.t2code.lib.Spigot.Lib.minecraftVersion.MCVersion; import net.t2code.lib.Spigot.Lib.minecraftVersion.MCVersion;
@@ -57,6 +55,7 @@ public class SelectConfig {
public static Boolean UseItemWorldRemoveItemWhenItIsDisabled; public static Boolean UseItemWorldRemoveItemWhenItIsDisabled;
public static String UseItemWorldMode; public static String UseItemWorldMode;
public static List<String> UseItemWorldList; public static List<String> UseItemWorldList;
public static List<String> UseItemItemBlockBlacklist;
public static Boolean disableInfoBySneak = false; public static Boolean disableInfoBySneak = false;
@@ -189,10 +188,13 @@ public class SelectConfig {
UseItemWorldMode = yamlConfiguration.getString("Advanced.UseItem.World.Protection.Mode"); UseItemWorldMode = yamlConfiguration.getString("Advanced.UseItem.World.Protection.Mode");
UseItemWorldList = yamlConfiguration.getStringList("Advanced.UseItem.World.Protection.List"); UseItemWorldList = yamlConfiguration.getStringList("Advanced.UseItem.World.Protection.List");
if (yamlConfiguration.get("Advanced.UseItem.DisableInfoBySneak") != null) { if (yamlConfiguration.get("Advanced.UseItem.DisableInfoBySneak") != null) {
disableInfoBySneak = yamlConfiguration.getBoolean("Advanced.UseItem.DisableInfoBySneak"); disableInfoBySneak = yamlConfiguration.getBoolean("Advanced.UseItem.DisableInfoBySneak");
} }
UseItemItemBlockBlacklist = yamlConfiguration.getStringList("Advanced.UseItem.ItemBlockBlacklist");
toggleItemOnOrYesBase64 = yamlConfiguration.getBoolean("Toggle.Items.OnOrYes.Item.Base64.Enable"); toggleItemOnOrYesBase64 = yamlConfiguration.getBoolean("Toggle.Items.OnOrYes.Item.Base64.Enable");
toggleItemOnOrYesBase64Value = yamlConfiguration.getString("Toggle.Items.OnOrYes.Item.Base64.Base64Value"); toggleItemOnOrYesBase64Value = yamlConfiguration.getString("Toggle.Items.OnOrYes.Item.Base64.Base64Value");
toggleItemOnOrYesMaterial = yamlConfiguration.getString("Toggle.Items.OnOrYes.Item.Material"); toggleItemOnOrYesMaterial = yamlConfiguration.getString("Toggle.Items.OnOrYes.Item.Material");

View File

@@ -21,7 +21,7 @@ public class CreateFunctions {
0, 0.0, Arrays.asList(), false, ""); 0, 0.0, Arrays.asList(), false, "");
createFunction("SupportDiscord", false, 1, true, true, "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzg3M2MxMmJmZmI1MjUxYTBiODhkNWFlNzVjNzI0N2NiMzlhNzVmZjFhODFjYmU0YzhhMzliMzExZGRlZGEifX19", createFunction("SupportDiscord", false, 1, true, true, "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzg3M2MxMmJmZmI1MjUxYTBiODhkNWFlNzVjNzI0N2NiMzlhNzVmZjFhODFjYmU0YzhhMzliMzExZGRlZGEifX19",
false, "", (MCVersion.minecraft1_8 || MCVersion.minecraft1_9 || MCVersion.minecraft1_10 || MCVersion.minecraft1_11 || MCVersion.minecraft1_12) ? "TNT" : "", false, "", "",
"&3Support Discord", Arrays.asList("&8-----------------", "&bIf you need help setting up the plugin,", "&bfeel free to contact me on the Suport Discord.", "&3Support Discord", Arrays.asList("&8-----------------", "&bIf you need help setting up the plugin,", "&bfeel free to contact me on the Suport Discord.",
"&8-----------------", "&eIf you find any errors or bugs,", "&eplease contact me so I can fix them.", "&8-----------------", "&5Discord: §7http://dc.t2code.net"), "&8-----------------", "&eIf you find any errors or bugs,", "&eplease contact me so I can fix them.", "&8-----------------", "&5Discord: §7http://dc.t2code.net"),
false, false, "", false, 0.0, false, false, false, false, "", false, 0.0, false, false,

View File

@@ -6,6 +6,8 @@ import de.jatitv.commandguiv2.Spigot.Main;
import de.jatitv.commandguiv2.Spigot.objects.guis.Gui; import de.jatitv.commandguiv2.Spigot.objects.guis.Gui;
import de.jatitv.commandguiv2.Spigot.objects.functions.Function; import de.jatitv.commandguiv2.Spigot.objects.functions.Function;
import de.jatitv.commandguiv2.Spigot.config.config.SelectConfig; import de.jatitv.commandguiv2.Spigot.config.config.SelectConfig;
import de.jatitv.commandguiv2.Spigot.system.Papi;
import de.jatitv.commandguiv2.Spigot.system.Placeholder;
import de.jatitv.commandguiv2.Util; import de.jatitv.commandguiv2.Util;
import net.t2code.lib.Spigot.Lib.items.ItemVersion; import net.t2code.lib.Spigot.Lib.items.ItemVersion;
import net.t2code.lib.Spigot.Lib.minecraftVersion.MCVersion; import net.t2code.lib.Spigot.Lib.minecraftVersion.MCVersion;
@@ -25,7 +27,11 @@ public class GuiBuilder {
private static String prefix = Util.getPrefix(); private static String prefix = Util.getPrefix();
protected static void item(Function function, Integer slot, Player player, Inventory inventory) { protected static void item(Function function, Integer slot, Player player, Inventory inventory) {
ItemStack item = new ItemStack(Material.valueOf(function.item.toUpperCase().replace(".", "_"))); ItemStack item;
if (Main.legacy && function.item.toUpperCase().contains(",")) {
String[] split = function.item.toUpperCase().split(",");
item = new ItemStack(Material.valueOf(split[0]), 1, Short.parseShort(split[1]));
} else item = new ItemStack(Material.valueOf(function.item.toUpperCase().replace(".", "_")));
ItemMeta itemMeta = item.getItemMeta(); ItemMeta itemMeta = item.getItemMeta();
setDisplayNameAndLore(itemMeta, player, function); setDisplayNameAndLore(itemMeta, player, function);
item.setItemMeta(itemMeta); item.setItemMeta(itemMeta);
@@ -38,7 +44,11 @@ public class GuiBuilder {
} }
protected static void item(String material, Function function, Integer slot, Player player, Inventory inventory) { protected static void item(String material, Function function, Integer slot, Player player, Inventory inventory) {
ItemStack item = new ItemStack(Material.valueOf(material)); ItemStack item;
if (Main.legacy && material.contains(",")) {
String[] split = material.split(",");
item = new ItemStack(Material.valueOf(split[0]), 1, Short.parseShort(split[1]));
} else item = new ItemStack(Material.valueOf(material));
ItemMeta itemMeta = item.getItemMeta(); ItemMeta itemMeta = item.getItemMeta();
setDisplayNameAndLore(itemMeta, player, function); setDisplayNameAndLore(itemMeta, player, function);
item.setItemMeta(itemMeta); item.setItemMeta(itemMeta);
@@ -53,11 +63,11 @@ public class GuiBuilder {
private static void setDisplayNameAndLore(ItemMeta itemMeta, Player player, Function slot) { private static void setDisplayNameAndLore(ItemMeta itemMeta, Player player, Function slot) {
if (Main.PaPi) { if (Main.PaPi) {
itemMeta.setDisplayName(Replace.replace(prefix, player, slot.name.replace("[player]", player.getName()))); itemMeta.setDisplayName(Replace.replace(prefix, player, Placeholder.replace(slot.name, player)));
itemMeta.setLore(Replace.replacePrice(prefix, player, slot.lore, slot.price + " " + SelectConfig.Currency)); itemMeta.setLore(Replace.replacePrice(prefix, player, Placeholder.replace(slot.lore, player), slot.price + " " + SelectConfig.Currency));
} else { } else {
itemMeta.setDisplayName(Replace.replace(prefix, slot.name.replace("[player]", player.getName()))); itemMeta.setDisplayName(Replace.replace(prefix, Placeholder.replace(slot.name,player)));
itemMeta.setLore(Replace.replacePrice(prefix, slot.lore, slot.price + " " + SelectConfig.Currency)); itemMeta.setLore(Replace.replacePrice(prefix, Placeholder.replace(slot.lore,player), slot.price + " " + SelectConfig.Currency));
} }
} }
@@ -109,7 +119,7 @@ public class GuiBuilder {
public static void fillItem(Inventory inventory, Gui gui) { public static void fillItem(Inventory inventory, Gui gui) {
ItemStack glass; ItemStack glass;
if (MCVersion.minecraft1_8 || MCVersion.minecraft1_9 || MCVersion.minecraft1_10 || MCVersion.minecraft1_11 || MCVersion.minecraft1_12) { if (MCVersion.minecraft1_8 || MCVersion.minecraft1_9 || MCVersion.minecraft1_10 || MCVersion.minecraft1_11 || MCVersion.minecraft1_12) {
glass = new ItemStack(Material.valueOf("STAINED_GLASS_PANE"), 1, Short.valueOf(gui.guiFillItemItem)); glass = new ItemStack(Material.valueOf("STAINED_GLASS_PANE"), 1, Short.parseShort(gui.guiFillItemItem));
} else glass = new ItemStack(Material.valueOf(gui.guiFillItemItem.toUpperCase().replace(".", "_"))); } else glass = new ItemStack(Material.valueOf(gui.guiFillItemItem.toUpperCase().replace(".", "_")));
ItemMeta itemMetaglass = glass.getItemMeta(); ItemMeta itemMetaglass = glass.getItemMeta();
itemMetaglass.setDisplayName(" "); itemMetaglass.setDisplayName(" ");

View File

@@ -95,20 +95,13 @@ public class OpenGUI {
toggleOff(function, slot.slot, player, inventory); toggleOff(function, slot.slot, player, inventory);
} }
} else if (function.toggleUseItem) { } else if (function.toggleUseItem) {
if (Events.useItemHashMap.get(player)) { if (Events.useItemHashMap.get(player.getName())) {
toggleOn(function, slot.slot, player, inventory); toggleOn(function, slot.slot, player, inventory);
} else { } else {
toggleOff(function, slot.slot, player, inventory); toggleOff(function, slot.slot, player, inventory);
} }
} else { } else {
if (function.playerHead_Enable) { if (function.playerHead_Enable) {
if (MCVersion.minecraft1_8 || MCVersion.minecraft1_9 || MCVersion.minecraft1_10 || MCVersion.minecraft1_11 || MCVersion.minecraft1_12) {
send.player(player, prefix + "§c Playerheads are only available from version §61.13§c! §7- §bGUI: §6" +
Replace.replace(prefix, gui.guiName).toString() + " §bSlot: §6" + (slot.slot + 1) + " §7- " + Replace.replace(prefix, function.name));
send.error(plugin, "Playerheads are only available from version 1.13!");
send.console(prefix + " §bGUI: §6" + Replace.replace(prefix, gui.guiName).toString() + " §bSlot: §6" +
(slot.slot + 1) + " §7- " + Replace.replace(prefix, function.name));
} else {
if (function.base64_Enable) { if (function.base64_Enable) {
GuiBuilder.base64(function, slot.slot, player, inventory); GuiBuilder.base64(function, slot.slot, player, inventory);
} else { } else {
@@ -118,7 +111,6 @@ public class OpenGUI {
GuiBuilder.playerHead(function, slot.slot, player, inventory, function.playerName); GuiBuilder.playerHead(function, slot.slot, player, inventory, function.playerName);
} }
} }
}
} else { } else {
GuiBuilder.item(function, slot.slot, player, inventory); GuiBuilder.item(function, slot.slot, player, inventory);
} }

View File

@@ -83,7 +83,7 @@ public class Load {
} }
if (PluginCheck.papi()) { if (PluginCheck.papi()) {
new Placeholder().register(); new Papi().register();
} }
try { try {

View File

@@ -0,0 +1,56 @@
// This claas was created by JaTiTV
package de.jatitv.commandguiv2.Spigot.system;
import de.jatitv.commandguiv2.Spigot.Listener.UseItem_Listener.Events;
import de.jatitv.commandguiv2.Spigot.Main;
import de.jatitv.commandguiv2.Spigot.config.config.SelectConfig;
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.List;
public class Papi extends PlaceholderExpansion {
@Override
public String getIdentifier() {
return "commandgui";
}
@Override
public String getAuthor() {
return Main.plugin.getDescription().getAuthors().toString();
}
@Override
public String getVersion() {
return Main.plugin.getDescription().getVersion();
}
@Override
public boolean canRegister() {
return true;
}
@Override
public boolean persist() {
return true;
}
@Override
public String onPlaceholderRequest(Player p, String params) {
if (params.contains("useitem_boolean")) {
Placeholder.useitem_boolean(p);
}
if (params.contains("useitem")) {
Placeholder.useitem(p);
}
if (params.contains("slot")) {
Placeholder.slot(p);
}
return null;
}
}

View File

@@ -1,56 +1,38 @@
// This claas was created by JaTiTV
package de.jatitv.commandguiv2.Spigot.system; package de.jatitv.commandguiv2.Spigot.system;
import de.jatitv.commandguiv2.Spigot.Listener.UseItem_Listener.Events; import de.jatitv.commandguiv2.Spigot.Listener.UseItem_Listener.Events;
import de.jatitv.commandguiv2.Spigot.Main;
import de.jatitv.commandguiv2.Spigot.config.config.SelectConfig; import de.jatitv.commandguiv2.Spigot.config.config.SelectConfig;
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
public class Placeholder extends PlaceholderExpansion { import java.util.ArrayList;
import java.util.List;
@Override public class Placeholder {
public String getIdentifier() { public static String useitem(Player p) {
return "commandgui"; if (Events.useItemHashMap.get(p.getName())) {
}
@Override
public String getAuthor() {
return Main.plugin.getDescription().getAuthors().toString();
}
@Override
public String getVersion() {
return Main.plugin.getDescription().getVersion();
}
@Override
public boolean canRegister() {
return true;
}
@Override
public boolean persist() {
return true;
}
@Override
public String onPlaceholderRequest(Player p, String params) {
if (params.contains("useitem_boolean")) {
return Events.useItemHashMap.get(p).toString();
}
if (params.contains("useitem")) {
if (Events.useItemHashMap.get(p)) {
return SelectConfig.placeholderTrue; return SelectConfig.placeholderTrue;
} else return SelectConfig.placeholderFalse; } else return SelectConfig.placeholderFalse;
} }
if (params.contains("slot")){ public static String useitem_boolean(Player p) {
return Events.useItemSlotHashMap.get(p).toString(); return Events.useItemHashMap.get(p.getName()).toString();
} }
return null; public static String slot(Player p) {
return Events.useItemSlotHashMap.get(p.getName()).toString();
}
public static String replace(String input, Player player) {
return input.replace("[player]", player.getName()).replace("%commandgui_useitem%", useitem(player))
.replace("%commandgui_useitem_boolean%", useitem_boolean(player)).replace("%commandgui_useitem_slot%", slot(player));
}
public static List<String> replace(List<String> input, Player player) {
ArrayList<String> rp = new ArrayList<String>();
for (String s : input) {
rp.add(s.replace("[player]", player.getName()).replace("%commandgui_useitem%", useitem(player))
.replace("%commandgui_useitem_boolean%", useitem_boolean(player)).replace("%commandgui_useitem_slot%", slot(player)));
}
return rp;
} }
} }

View File

@@ -29,11 +29,7 @@ public class UseItem {
if (SelectConfig.UseItem_InventorySlotEnforce) { if (SelectConfig.UseItem_InventorySlotEnforce) {
slot = SelectConfig.UseItem_InventorySlot; slot = SelectConfig.UseItem_InventorySlot;
} else { } else {
if (Events.useItemSlotHashMap.get(player) == null) { slot = Events.useItemSlotHashMap.get(player.getName());
slot = SelectConfig.UseItem_InventorySlot;
} else {
slot = Events.useItemSlotHashMap.get(player);
}
} }
if (SelectConfig.UseItem_InventorySlot_FreeSlot) { if (SelectConfig.UseItem_InventorySlot_FreeSlot) {
player.getInventory().addItem(itemStack(player)); player.getInventory().addItem(itemStack(player));

View File

@@ -49,7 +49,7 @@ public class SelectDatabase {
} }
public static void setItemStatusTrue(Player player) { public static void setItemStatusTrue(Player player) {
Events.useItemHashMap.replace(player, true); Events.useItemHashMap.replace(player.getName(), true);
switch (Storage) { switch (Storage) {
case MYSQL: case MYSQL:
MySQL.query("INSERT INTO `gui-item` (`UUID`, `Name`) VALUES ('" + player.getUniqueId() + "', '" + player.getName() MySQL.query("INSERT INTO `gui-item` (`UUID`, `Name`) VALUES ('" + player.getUniqueId() + "', '" + player.getName()
@@ -67,7 +67,7 @@ public class SelectDatabase {
} }
public static void setItemStatusFalse(Player player) { public static void setItemStatusFalse(Player player) {
Events.useItemHashMap.replace(player, false); Events.useItemHashMap.replace(player.getName(), false);
switch (Storage) { switch (Storage) {
case MYSQL: case MYSQL:
MySQL.query("INSERT INTO `gui-item` (`UUID`, `Name`, `Status`) VALUES ('" + player.getUniqueId() + "', '" + player.getName() MySQL.query("INSERT INTO `gui-item` (`UUID`, `Name`, `Status`) VALUES ('" + player.getUniqueId() + "', '" + player.getName()

View File

@@ -2,7 +2,7 @@ package de.jatitv.commandguiv2;
public class Util { public class Util {
private static Integer configVersion = 5; private static Integer configVersion = 5;
private static double requiredT2CodeLibVersion = 10.3; private static double requiredT2CodeLibVersion = 11.8;
private static String Prefix = "§8[§4C§9GUI§8]"; private static String Prefix = "§8[§4C§9GUI§8]";
private static Integer SpigotID = 90671; private static Integer SpigotID = 90671;
private static Integer BstatsID = 10840; private static Integer BstatsID = 10840;

View File

@@ -44,11 +44,11 @@ public class CGuiAPI {
} }
public static Boolean selectPlayerItemEnable(Player player) { public static Boolean selectPlayerItemEnable(Player player) {
return Events.useItemHashMap.get(player); return Events.useItemHashMap.get(player.getName());
} }
public static Integer selectPlayerItemSlot(Player player) { public static Integer selectPlayerItemSlot(Player player) {
return Events.useItemSlotHashMap.get(player); return Events.useItemSlotHashMap.get(player.getName());
} }
public static void setPlayerItemEnable(Player player, Boolean value) { public static void setPlayerItemEnable(Player player, Boolean value) {

View File

@@ -54,3 +54,4 @@ Optional:
--- ---
<img src="https://bstats.org/signatures/bukkit/CGUI.svg" width="600"> <img src="https://bstats.org/signatures/bukkit/CGUI.svg" width="600">
<img src="https://i.imgur.com/tVLZGZg.png" width="600">