This commit is contained in:
Ajneb97 2024-05-05 13:06:36 -04:00
parent 0d9e82f4fd
commit 7a53bfcec8
11 changed files with 87 additions and 40 deletions

View file

@ -9,8 +9,8 @@
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
<properties> <properties>
<maven.compiler.source>17</maven.compiler.source> <maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target> <maven.compiler.target>21</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> </properties>
@ -47,7 +47,7 @@
<dependency> <dependency>
<groupId>org.spigotmc</groupId> <groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId> <artifactId>spigot-api</artifactId>
<version>1.20.2-R0.1-SNAPSHOT</version> <version>1.20.5-R0.1-SNAPSHOT</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>

View file

@ -301,7 +301,7 @@ public class MainCommand implements CommandExecutor, TabCompleter {
} }
public void create(Player player,String[] args,FileConfiguration messagesConfig,MessagesManager msgManager){ public void create(Player player,String[] args,FileConfiguration messagesConfig,MessagesManager msgManager){
// /kit create <kit> (optional)<original> // /kit create <kit> (optional)<original/configurable>
if(!PlayerUtils.isPlayerKitsAdmin(player)){ if(!PlayerUtils.isPlayerKitsAdmin(player)){
msgManager.sendMessage(player,messagesConfig.getString("noPermissions"),true); msgManager.sendMessage(player,messagesConfig.getString("noPermissions"),true);
return; return;
@ -313,8 +313,13 @@ public class MainCommand implements CommandExecutor, TabCompleter {
} }
boolean saveOriginalItems = false; boolean saveOriginalItems = false;
if(args.length >= 3 && args[2].equalsIgnoreCase("original")){ if(args.length >= 3){
if(args[2].equalsIgnoreCase("original")){
saveOriginalItems = true; saveOriginalItems = true;
}else if(!args[2].equalsIgnoreCase("configurable")){
msgManager.sendMessage(player,messagesConfig.getString("commandCreateError"),true);
return;
}
} }
plugin.getKitsManager().createKit(args[1],player,saveOriginalItems); plugin.getKitsManager().createKit(args[1],player,saveOriginalItems);
@ -416,11 +421,14 @@ public class MainCommand implements CommandExecutor, TabCompleter {
} }
}else if(args.length == 3 && PlayerUtils.isPlayerKitsAdmin(sender)){ }else if(args.length == 3 && PlayerUtils.isPlayerKitsAdmin(sender)){
if(args[0].equalsIgnoreCase("create")){ if(args[0].equalsIgnoreCase("create")){
if(args[2].isEmpty() || "original".startsWith(args[2].toLowerCase())) { commands.add("original");commands.add("configurable");
completions.add("original"); for(String c : commands) {
return completions; if(args[2].isEmpty() || c.startsWith(args[2].toLowerCase())) {
completions.add(c);
} }
} }
return completions;
}
} }
} }

View file

@ -54,7 +54,7 @@ public class PlayerKits2 extends JavaPlugin {
this.inventoryEditManager = new InventoryEditManager(this); this.inventoryEditManager = new InventoryEditManager(this);
this.kitsManager = new KitsManager(this); this.kitsManager = new KitsManager(this);
this.dependencyManager = new DependencyManager(this); this.dependencyManager = new DependencyManager(this);
this.nmsManager = new NMSManager(); this.nmsManager = new NMSManager(this);
this.playerDataManager = new PlayerDataManager(this); this.playerDataManager = new PlayerDataManager(this);
this.configsManager = new ConfigsManager(this); this.configsManager = new ConfigsManager(this);

View file

@ -215,6 +215,7 @@ public class MySQLConnection {
statement.setString(1, player.getName()); statement.setString(1, player.getName());
statement.setString(2, player.getUuid()); statement.setString(2, player.getUuid());
statement.executeUpdate();
} catch (SQLException e) { } catch (SQLException e) {
e.printStackTrace(); e.printStackTrace();
} }

View file

@ -100,11 +100,9 @@ public class InventoryManager {
for(ItemKitInventory itemInventory : items){ for(ItemKitInventory itemInventory : items){
for(int slot : itemInventory.getSlots()){ for(int slot : itemInventory.getSlots()){
String type = itemInventory.getType(); String type = itemInventory.getType();
if(type != null){ if(type != null && type.startsWith("kit: ")){
if(type.startsWith("kit: ")){
setKit(type.replace("kit: ",""),inventoryPlayer.getPlayer(),inv,slot,kitsManager setKit(type.replace("kit: ",""),inventoryPlayer.getPlayer(),inv,slot,kitsManager
,playerDataManager,kitItemManager,msgManager); ,playerDataManager,kitItemManager,msgManager);
}
continue; continue;
} }
@ -112,6 +110,9 @@ public class InventoryManager {
if(inventoryPlayer.getInventoryName().equals("buy_requirements_inventory")){ if(inventoryPlayer.getInventoryName().equals("buy_requirements_inventory")){
inventoryRequirementsManager.configureRequirementsItem(item,inventoryPlayer.getKitName(),inventoryPlayer.getPlayer()); inventoryRequirementsManager.configureRequirementsItem(item,inventoryPlayer.getKitName(),inventoryPlayer.getPlayer());
if(type != null){
item = ItemUtils.setTagStringItem(plugin,item, "playerkits_buy", type);
}
} }
String openInventory = itemInventory.getOpenInventory(); String openInventory = itemInventory.getOpenInventory();
@ -204,7 +205,7 @@ public class InventoryManager {
if(buyTag == null){ if(buyTag == null){
return; return;
} }
if(buyTag.equals("yes")){ if(buyTag.equals("yes") || buyTag.equals("buy_yes")){
inventoryRequirementsManager.requirementsInventoryBuy(inventoryPlayer); inventoryRequirementsManager.requirementsInventoryBuy(inventoryPlayer);
}else{ }else{
inventoryRequirementsManager.requirementsInventoryCancel(inventoryPlayer); inventoryRequirementsManager.requirementsInventoryCancel(inventoryPlayer);

View file

@ -1,7 +1,6 @@
package pk.ajneb97.managers; package pk.ajneb97.managers;
import com.destroystokyo.paper.Namespaced; import com.destroystokyo.paper.Namespaced;
import org.bukkit.Bukkit;
import org.bukkit.Color; import org.bukkit.Color;
import org.bukkit.NamespacedKey; import org.bukkit.NamespacedKey;
import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.FileConfiguration;
@ -17,6 +16,7 @@ import pk.ajneb97.model.internal.KitVariable;
import pk.ajneb97.model.item.*; import pk.ajneb97.model.item.*;
import pk.ajneb97.utils.ItemUtils; import pk.ajneb97.utils.ItemUtils;
import pk.ajneb97.utils.OtherUtils; import pk.ajneb97.utils.OtherUtils;
import pk.ajneb97.utils.ServerVersion;
import java.util.*; import java.util.*;
@ -108,10 +108,14 @@ public class KitItemManager {
} }
} }
ServerVersion serverVersion = PlayerKits2.serverVersion;
if(!serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_20_R4)){
List<String> nbtList = ItemUtils.getNBT(plugin,item); List<String> nbtList = ItemUtils.getNBT(plugin,item);
if(!nbtList.isEmpty()) { if(!nbtList.isEmpty()) {
kitItem.setNbt(nbtList); kitItem.setNbt(nbtList);
} }
}
kitItem.setAttributes(ItemUtils.getAttributes(plugin,item)); kitItem.setAttributes(ItemUtils.getAttributes(plugin,item));
kitItem.setSkullData(ItemUtils.getSkullData(item)); kitItem.setSkullData(ItemUtils.getSkullData(item));
@ -242,8 +246,11 @@ public class KitItemManager {
List<String> attributes = kitItem.getAttributes(); List<String> attributes = kitItem.getAttributes();
item = ItemUtils.setAttributes(plugin,item, attributes); item = ItemUtils.setAttributes(plugin,item, attributes);
ServerVersion serverVersion = PlayerKits2.serverVersion;
if(!serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_20_R4)){
List<String> nbtList = kitItem.getNbt(); List<String> nbtList = kitItem.getNbt();
item = ItemUtils.setNBT(plugin,item, nbtList); item = ItemUtils.setNBT(plugin,item, nbtList);
}
return item; return item;
} }

View file

@ -24,7 +24,8 @@ public enum ServerVersion {
v1_19_R3, v1_19_R3,
v1_20_R1, v1_20_R1,
v1_20_R2, v1_20_R2,
v1_20_R3; v1_20_R3,
v1_20_R4;
public boolean serverVersionGreaterEqualThan(ServerVersion version1,ServerVersion version2){ public boolean serverVersionGreaterEqualThan(ServerVersion version1,ServerVersion version2){
return version1.ordinal() >= version2.ordinal(); return version1.ordinal() >= version2.ordinal();

View file

@ -1,13 +1,12 @@
package pk.ajneb97.versions; package pk.ajneb97.versions;
import com.google.gson.Gson; import org.bukkit.NamespacedKey;
import com.google.gson.JsonArray;
import org.bukkit.Bukkit;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.persistence.PersistentDataContainer;
import org.bukkit.persistence.PersistentDataType;
import pk.ajneb97.PlayerKits2; import pk.ajneb97.PlayerKits2;
import pk.ajneb97.utils.ServerVersion; import pk.ajneb97.utils.ServerVersion;
import java.io.StringReader;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.util.*; import java.util.*;
@ -16,11 +15,17 @@ public class NMSManager {
private Version version; private Version version;
private ServerVersion serverVersion; private ServerVersion serverVersion;
private PlayerKits2 plugin;
public NMSManager(){ public NMSManager(PlayerKits2 plugin){
this.plugin = plugin;
this.version = new Version(); this.version = new Version();
this.serverVersion = PlayerKits2.serverVersion; this.serverVersion = PlayerKits2.serverVersion;
if(serverVersionGreaterEqualThan(ServerVersion.v1_20_R4)){
return;
}
try { try {
//Classes //Classes
version.addClass("CraftItemStack",Class.forName("org.bukkit.craftbukkit."+serverVersion+".inventory.CraftItemStack")); version.addClass("CraftItemStack",Class.forName("org.bukkit.craftbukkit."+serverVersion+".inventory.CraftItemStack"));
@ -134,17 +139,21 @@ public class NMSManager {
version.addMethod("hasKeyOfType",version.getClassRef("NBTTagCompound").getMethod("b",String.class,int.class)); version.addMethod("hasKeyOfType",version.getClassRef("NBTTagCompound").getMethod("b",String.class,int.class));
version.addMethod("parse",version.getClassRef("MojangsonParser").getMethod("a",String.class)); version.addMethod("parse",version.getClassRef("MojangsonParser").getMethod("a",String.class));
} }
} catch (ClassNotFoundException | NoSuchMethodException e) { } catch (ClassNotFoundException | NoSuchMethodException e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
public ItemStack setTagStringItem(ItemStack item, String key, String value) { public ItemStack setTagStringItem(ItemStack item, String key, String value) {
if(serverVersionGreaterEqualThan(ServerVersion.v1_20_R4)){
ItemMeta meta = item.getItemMeta();
NamespacedKey namespacedKey = new NamespacedKey(plugin, key);
PersistentDataContainer p = meta.getPersistentDataContainer();
p.set(namespacedKey, PersistentDataType.STRING,value);
item.setItemMeta(meta);
return item;
}
try { try {
Object newItem = version.getMethodRef("asNMSCopy").invoke(null,item); //ItemStackNMS Object newItem = version.getMethodRef("asNMSCopy").invoke(null,item); //ItemStackNMS
Object compound = getNBTCompound(newItem); Object compound = getNBTCompound(newItem);
@ -158,6 +167,16 @@ public class NMSManager {
} }
public String getTagStringItem(ItemStack item,String key) { public String getTagStringItem(ItemStack item,String key) {
if(serverVersionGreaterEqualThan(ServerVersion.v1_20_R4)){
ItemMeta meta = item.getItemMeta();
NamespacedKey namespacedKey = new NamespacedKey(plugin, key);
PersistentDataContainer p = meta.getPersistentDataContainer();
if(p.has(namespacedKey)){
return p.get(namespacedKey,PersistentDataType.STRING);
}
return null;
}
try { try {
Object newItem = version.getMethodRef("asNMSCopy").invoke(null,item); //ItemStackNMS Object newItem = version.getMethodRef("asNMSCopy").invoke(null,item); //ItemStackNMS
Object compound = getNBTCompound(newItem); Object compound = getNBTCompound(newItem);
@ -171,6 +190,18 @@ public class NMSManager {
} }
public ItemStack removeTagItem(ItemStack item, String key) { public ItemStack removeTagItem(ItemStack item, String key) {
if(serverVersionGreaterEqualThan(ServerVersion.v1_20_R4)){
ItemMeta meta = item.getItemMeta();
NamespacedKey namespacedKey = new NamespacedKey(plugin, key);
PersistentDataContainer p = meta.getPersistentDataContainer();
if(p.has(namespacedKey)){
p.remove(namespacedKey);
}
item.setItemMeta(meta);
return item;
}
try { try {
Object newItem = version.getMethodRef("asNMSCopy").invoke(null,item); //ItemStackNMS Object newItem = version.getMethodRef("asNMSCopy").invoke(null,item); //ItemStackNMS
Object compound = getNBTCompound(newItem); Object compound = getNBTCompound(newItem);

View file

@ -50,11 +50,9 @@ inventories:
item: item:
id: "RED_STAINED_GLASS_PANE" id: "RED_STAINED_GLASS_PANE"
name: "&cGo Back" name: "&cGo Back"
nbt: type: buy_no
- "playerkits_buy|no"
16: 16:
item: item:
id: "GREEN_STAINED_GLASS_PANE" id: "GREEN_STAINED_GLASS_PANE"
name: "&aBuy" name: "&aBuy"
nbt: type: buy_yes
- "playerkits_buy|yes"

View file

@ -7,7 +7,7 @@ commandGiveError: "&cYou need to use: &7/kit give <kit> <player>"
commandGiveError2: "&cThere was an error giving the kit: &7%error%" commandGiveError2: "&cThere was an error giving the kit: &7%error%"
commandGiveCorrect: "&aKit &7%kit% &agiven to &e%player%&a!" commandGiveCorrect: "&aKit &7%kit% &agiven to &e%player%&a!"
commandClaimError: "&cYou need to use: &7/kit claim <kit>" commandClaimError: "&cYou need to use: &7/kit claim <kit>"
commandCreateError: "&cYou need to use: &7/kit create <name> (optional)original" commandCreateError: "&cYou need to use: &7/kit create <name> (optional)original/configurable"
commandDeleteError: "&cYou need to use: &7/kit delete <name>" commandDeleteError: "&cYou need to use: &7/kit delete <name>"
commandResetError: "&cYou need to use: &7/kit reset <kit> <player>" commandResetError: "&cYou need to use: &7/kit reset <kit> <player>"
commandEditError: "&cYou need to use: &7/kit edit <kit>" commandEditError: "&cYou need to use: &7/kit edit <kit>"

View file

@ -1,5 +1,5 @@
main: pk.ajneb97.PlayerKits2 main: pk.ajneb97.PlayerKits2
version: 1.10.1 version: 1.11.1
name: PlayerKits2 name: PlayerKits2
api-version: 1.13 api-version: 1.13
softdepend: [Vault,PlaceholderAPI] softdepend: [Vault,PlaceholderAPI]