1.9.1
This commit is contained in:
parent
97b5fc89bd
commit
edd31638d0
6 changed files with 105 additions and 13 deletions
|
|
@ -13,6 +13,7 @@ import pk.ajneb97.model.Kit;
|
||||||
import pk.ajneb97.model.internal.GiveKitInstructions;
|
import pk.ajneb97.model.internal.GiveKitInstructions;
|
||||||
import pk.ajneb97.model.internal.PlayerKitsMessageResult;
|
import pk.ajneb97.model.internal.PlayerKitsMessageResult;
|
||||||
import pk.ajneb97.model.inventory.InventoryPlayer;
|
import pk.ajneb97.model.inventory.InventoryPlayer;
|
||||||
|
import pk.ajneb97.model.inventory.KitInventory;
|
||||||
import pk.ajneb97.utils.PlayerUtils;
|
import pk.ajneb97.utils.PlayerUtils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
@ -41,6 +42,8 @@ public class MainCommand implements CommandExecutor, TabCompleter {
|
||||||
reset(sender,args,messagesConfig,msgManager);
|
reset(sender,args,messagesConfig,msgManager);
|
||||||
}else if(args[0].equalsIgnoreCase("migrate")) {
|
}else if(args[0].equalsIgnoreCase("migrate")) {
|
||||||
migrate(sender,args,messagesConfig,msgManager);
|
migrate(sender,args,messagesConfig,msgManager);
|
||||||
|
}else if(args[0].equalsIgnoreCase("open")){
|
||||||
|
open(sender,args,messagesConfig,msgManager);
|
||||||
}else{
|
}else{
|
||||||
help(sender,msgManager,messagesConfig);
|
help(sender,msgManager,messagesConfig);
|
||||||
}
|
}
|
||||||
|
|
@ -73,6 +76,8 @@ public class MainCommand implements CommandExecutor, TabCompleter {
|
||||||
verify(player,messagesConfig,msgManager);
|
verify(player,messagesConfig,msgManager);
|
||||||
}else if(args[0].equalsIgnoreCase("migrate")) {
|
}else if(args[0].equalsIgnoreCase("migrate")) {
|
||||||
migrate(sender,args,messagesConfig,msgManager);
|
migrate(sender,args,messagesConfig,msgManager);
|
||||||
|
}else if(args[0].equalsIgnoreCase("open")){
|
||||||
|
open(sender,args,messagesConfig,msgManager);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
// /kit <kit> (short command)
|
// /kit <kit> (short command)
|
||||||
|
|
@ -171,6 +176,37 @@ public class MainCommand implements CommandExecutor, TabCompleter {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void open(CommandSender sender,String[] args,FileConfiguration messagesConfig,MessagesManager msgManager) {
|
||||||
|
// /kits open <inventory> <player>
|
||||||
|
if(!PlayerUtils.isPlayerKitsAdmin(sender)) {
|
||||||
|
msgManager.sendMessage(sender, messagesConfig.getString("noPermissions"), true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(args.length < 3) {
|
||||||
|
msgManager.sendMessage(sender, messagesConfig.getString("commandOpenError"), true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String inventoryName = args[1];
|
||||||
|
String playerName = args[2];
|
||||||
|
|
||||||
|
if(plugin.getInventoryManager().getInventory(inventoryName) == null){
|
||||||
|
msgManager.sendMessage(sender, messagesConfig.getString("inventoryNotExists"), true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Player player = Bukkit.getPlayer(playerName);
|
||||||
|
if(player == null){
|
||||||
|
msgManager.sendMessage(sender,messagesConfig.getString("playerNotOnline")
|
||||||
|
.replace("%player%",playerName),true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
InventoryPlayer inventoryPlayer = new InventoryPlayer(player,inventoryName);
|
||||||
|
plugin.getInventoryManager().openInventory(inventoryPlayer);
|
||||||
|
}
|
||||||
|
|
||||||
public void give(CommandSender sender,String[] args,FileConfiguration messagesConfig,MessagesManager msgManager){
|
public void give(CommandSender sender,String[] args,FileConfiguration messagesConfig,MessagesManager msgManager){
|
||||||
// /kits give <kit> <player>
|
// /kits give <kit> <player>
|
||||||
if(!PlayerUtils.isPlayerKitsAdmin(sender)){
|
if(!PlayerUtils.isPlayerKitsAdmin(sender)){
|
||||||
|
|
@ -341,7 +377,7 @@ public class MainCommand implements CommandExecutor, TabCompleter {
|
||||||
if(PlayerUtils.isPlayerKitsAdmin(sender)){
|
if(PlayerUtils.isPlayerKitsAdmin(sender)){
|
||||||
commands.add("give");commands.add("delete");commands.add("create");
|
commands.add("give");commands.add("delete");commands.add("create");
|
||||||
commands.add("reload");commands.add("reset");commands.add("edit");
|
commands.add("reload");commands.add("reset");commands.add("edit");
|
||||||
commands.add("verify");commands.add("migrate");
|
commands.add("verify");commands.add("migrate");commands.add("open");
|
||||||
}
|
}
|
||||||
for(String c : commands) {
|
for(String c : commands) {
|
||||||
if(args[0].isEmpty() || c.startsWith(args[0].toLowerCase())) {
|
if(args[0].isEmpty() || c.startsWith(args[0].toLowerCase())) {
|
||||||
|
|
@ -360,11 +396,17 @@ public class MainCommand implements CommandExecutor, TabCompleter {
|
||||||
if(PlayerUtils.isPlayerKitsAdmin(sender)){
|
if(PlayerUtils.isPlayerKitsAdmin(sender)){
|
||||||
commands.add("give");commands.add("delete");
|
commands.add("give");commands.add("delete");
|
||||||
commands.add("reset");commands.add("edit");
|
commands.add("reset");commands.add("edit");
|
||||||
|
commands.add("open");
|
||||||
}
|
}
|
||||||
for(String c : commands) {
|
for(String c : commands) {
|
||||||
if(args[0].equalsIgnoreCase(c)){
|
if(args[0].equalsIgnoreCase(c)){
|
||||||
|
if(c.equals("open")){
|
||||||
|
return getInventoryCompletions(args,1);
|
||||||
|
}else{
|
||||||
return getKitCompletions(sender,args,1);
|
return getKitCompletions(sender,args,1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -390,4 +432,23 @@ public class MainCommand implements CommandExecutor, TabCompleter {
|
||||||
}
|
}
|
||||||
return completions;
|
return completions;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<String> getInventoryCompletions(String[] args,int argInvPos){
|
||||||
|
List<String> completions = new ArrayList<>();
|
||||||
|
String argInv = args[argInvPos];
|
||||||
|
|
||||||
|
ArrayList<KitInventory> inventories = plugin.getInventoryManager().getInventories();
|
||||||
|
for(KitInventory inv : inventories) {
|
||||||
|
Bukkit.getConsoleSender().sendMessage(inv.getName());
|
||||||
|
if((argInv.isEmpty() || inv.getName().toLowerCase().startsWith(argInv.toLowerCase()))
|
||||||
|
&& !inv.getName().equals("preview_inventory") && !inv.getName().equals("buy_requirements_inventory")) {
|
||||||
|
completions.add(inv.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(completions.isEmpty()){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return completions;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -58,6 +58,11 @@ public class MessagesConfigManager {
|
||||||
Path pathConfig = Paths.get(configFile.getRoute());
|
Path pathConfig = Paths.get(configFile.getRoute());
|
||||||
try{
|
try{
|
||||||
String text = new String(Files.readAllBytes(pathConfig));
|
String text = new String(Files.readAllBytes(pathConfig));
|
||||||
|
if(!text.contains("commandOpenError:")){
|
||||||
|
getConfig().set("commandOpenError", "&cYou need to use: &7/kit open <inventory> <player>");
|
||||||
|
getConfig().set("inventoryNotExists", "&cThat inventory doesn't exists.");
|
||||||
|
saveConfig();
|
||||||
|
}
|
||||||
if(!text.contains("commandPreviewError:")){
|
if(!text.contains("commandPreviewError:")){
|
||||||
getConfig().set("commandPreviewError", "&cYou need to use: &7/kit preview <kit>");
|
getConfig().set("commandPreviewError", "&cYou need to use: &7/kit preview <kit>");
|
||||||
getConfig().set("kitPreviewDisabled", "&cKit preview is disabled.");
|
getConfig().set("kitPreviewDisabled", "&cKit preview is disabled.");
|
||||||
|
|
|
||||||
|
|
@ -165,8 +165,8 @@ public class ItemUtils {
|
||||||
String decoded = new String(Base64.getDecoder().decode(texture));
|
String decoded = new String(Base64.getDecoder().decode(texture));
|
||||||
String decodedFormatted = decoded.replaceAll("\\s", "");
|
String decodedFormatted = decoded.replaceAll("\\s", "");
|
||||||
int firstIndex = decodedFormatted.indexOf("\"SKIN\":{\"url\":")+15;
|
int firstIndex = decodedFormatted.indexOf("\"SKIN\":{\"url\":")+15;
|
||||||
int lastIndex = decodedFormatted.indexOf("}",firstIndex+1);
|
int lastIndex = decodedFormatted.indexOf("\"",firstIndex+1);
|
||||||
url = new URL(decodedFormatted.substring(firstIndex,lastIndex-1));
|
url = new URL(decodedFormatted.substring(firstIndex,lastIndex));
|
||||||
} catch (MalformedURLException error) {
|
} catch (MalformedURLException error) {
|
||||||
error.printStackTrace();
|
error.printStackTrace();
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,13 @@
|
||||||
package pk.ajneb97.versions;
|
package pk.ajneb97.versions;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
import com.google.gson.JsonArray;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
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.*;
|
||||||
|
|
||||||
|
|
@ -20,22 +24,20 @@ public class NMSManager {
|
||||||
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"));
|
||||||
if(!serverVersionGreaterEqualThan(ServerVersion.v1_13_R1)) {
|
|
||||||
//1.12 or lower
|
|
||||||
version.addClass("NBTTagList",Class.forName("net.minecraft.server."+serverVersion+".NBTTagList"));
|
|
||||||
}
|
|
||||||
if(serverVersionGreaterEqualThan(ServerVersion.v1_17_R1)){
|
if(serverVersionGreaterEqualThan(ServerVersion.v1_17_R1)){
|
||||||
//1.17 or greater
|
//1.17 or greater
|
||||||
version.addClass("ItemStackNMS",Class.forName("net.minecraft.world.item.ItemStack"));
|
version.addClass("ItemStackNMS",Class.forName("net.minecraft.world.item.ItemStack"));
|
||||||
version.addClass("NBTTagCompound",Class.forName("net.minecraft.nbt.NBTTagCompound"));
|
version.addClass("NBTTagCompound",Class.forName("net.minecraft.nbt.NBTTagCompound"));
|
||||||
version.addClass("MojangsonParser",Class.forName("net.minecraft.nbt.MojangsonParser"));
|
version.addClass("MojangsonParser",Class.forName("net.minecraft.nbt.MojangsonParser"));
|
||||||
version.addClass("NBTBase",Class.forName("net.minecraft.nbt.NBTBase"));
|
version.addClass("NBTBase",Class.forName("net.minecraft.nbt.NBTBase"));
|
||||||
|
version.addClass("NBTTagList",Class.forName("net.minecraft.nbt.NBTTagList"));
|
||||||
}else{
|
}else{
|
||||||
//1.16 or lower
|
//1.16 or lower
|
||||||
version.addClass("ItemStackNMS",Class.forName("net.minecraft.server."+serverVersion+".ItemStack"));
|
version.addClass("ItemStackNMS",Class.forName("net.minecraft.server."+serverVersion+".ItemStack"));
|
||||||
version.addClass("NBTTagCompound",Class.forName("net.minecraft.server."+serverVersion+".NBTTagCompound"));
|
version.addClass("NBTTagCompound",Class.forName("net.minecraft.server."+serverVersion+".NBTTagCompound"));
|
||||||
version.addClass("MojangsonParser",Class.forName("net.minecraft.server."+serverVersion+".MojangsonParser"));
|
version.addClass("MojangsonParser",Class.forName("net.minecraft.server."+serverVersion+".MojangsonParser"));
|
||||||
version.addClass("NBTBase",Class.forName("net.minecraft.server."+serverVersion+".NBTBase"));
|
version.addClass("NBTBase",Class.forName("net.minecraft.server."+serverVersion+".NBTBase"));
|
||||||
|
version.addClass("NBTTagList",Class.forName("net.minecraft.server."+serverVersion+".NBTTagList"));
|
||||||
}
|
}
|
||||||
|
|
||||||
//Methods
|
//Methods
|
||||||
|
|
@ -43,10 +45,8 @@ public class NMSManager {
|
||||||
version.addMethod("asBukkitCopy",version.getClassRef("CraftItemStack").getMethod("asBukkitCopy",version.getClassRef("ItemStackNMS")));
|
version.addMethod("asBukkitCopy",version.getClassRef("CraftItemStack").getMethod("asBukkitCopy",version.getClassRef("ItemStackNMS")));
|
||||||
if(!serverVersionGreaterEqualThan(ServerVersion.v1_13_R1)){
|
if(!serverVersionGreaterEqualThan(ServerVersion.v1_13_R1)){
|
||||||
//1.12 or lower
|
//1.12 or lower
|
||||||
version.addMethod("getList",version.getClassRef("NBTTagCompound").getMethod("getList",String.class,int.class));
|
|
||||||
version.addMethod("listSize",version.getClassRef("NBTTagList").getMethod("size"));
|
version.addMethod("listSize",version.getClassRef("NBTTagList").getMethod("size"));
|
||||||
version.addMethod("listGet",version.getClassRef("NBTTagList").getMethod("get",int.class));
|
version.addMethod("listGet",version.getClassRef("NBTTagList").getMethod("get",int.class));
|
||||||
version.addMethod("listAdd",version.getClassRef("NBTTagList").getMethod("add",version.getClassRef("NBTBase")));
|
|
||||||
}
|
}
|
||||||
if(!serverVersionGreaterEqualThan(ServerVersion.v1_18_R1)){
|
if(!serverVersionGreaterEqualThan(ServerVersion.v1_18_R1)){
|
||||||
//1.17 or lower
|
//1.17 or lower
|
||||||
|
|
@ -64,6 +64,7 @@ public class NMSManager {
|
||||||
version.addMethod("getInt",version.getClassRef("NBTTagCompound").getMethod("getInt",String.class));
|
version.addMethod("getInt",version.getClassRef("NBTTagCompound").getMethod("getInt",String.class));
|
||||||
version.addMethod("getDouble",version.getClassRef("NBTTagCompound").getMethod("getDouble",String.class));
|
version.addMethod("getDouble",version.getClassRef("NBTTagCompound").getMethod("getDouble",String.class));
|
||||||
version.addMethod("getCompound",version.getClassRef("NBTTagCompound").getMethod("getCompound",String.class));
|
version.addMethod("getCompound",version.getClassRef("NBTTagCompound").getMethod("getCompound",String.class));
|
||||||
|
version.addMethod("getList",version.getClassRef("NBTTagCompound").getMethod("getList",String.class,int.class));
|
||||||
version.addMethod("get",version.getClassRef("NBTTagCompound").getMethod("get",String.class));
|
version.addMethod("get",version.getClassRef("NBTTagCompound").getMethod("get",String.class));
|
||||||
version.addMethod("remove",version.getClassRef("NBTTagCompound").getMethod("remove",String.class));
|
version.addMethod("remove",version.getClassRef("NBTTagCompound").getMethod("remove",String.class));
|
||||||
if(serverVersionGreaterEqualThan(ServerVersion.v1_13_R1)){
|
if(serverVersionGreaterEqualThan(ServerVersion.v1_13_R1)){
|
||||||
|
|
@ -73,6 +74,7 @@ public class NMSManager {
|
||||||
}
|
}
|
||||||
version.addMethod("hasKeyOfType",version.getClassRef("NBTTagCompound").getMethod("hasKeyOfType",String.class,int.class));
|
version.addMethod("hasKeyOfType",version.getClassRef("NBTTagCompound").getMethod("hasKeyOfType",String.class,int.class));
|
||||||
version.addMethod("parse",version.getClassRef("MojangsonParser").getMethod("parse",String.class));
|
version.addMethod("parse",version.getClassRef("MojangsonParser").getMethod("parse",String.class));
|
||||||
|
version.addMethod("listAdd",version.getClassRef("NBTTagList").getMethod("add",version.getClassRef("NBTBase")));
|
||||||
}else{
|
}else{
|
||||||
//1.18 or greater
|
//1.18 or greater
|
||||||
String methodName = null;
|
String methodName = null;
|
||||||
|
|
@ -113,6 +115,7 @@ public class NMSManager {
|
||||||
version.addMethod("getInt",version.getClassRef("NBTTagCompound").getMethod("h",String.class));
|
version.addMethod("getInt",version.getClassRef("NBTTagCompound").getMethod("h",String.class));
|
||||||
version.addMethod("getDouble",version.getClassRef("NBTTagCompound").getMethod("k",String.class));
|
version.addMethod("getDouble",version.getClassRef("NBTTagCompound").getMethod("k",String.class));
|
||||||
version.addMethod("getCompound",version.getClassRef("NBTTagCompound").getMethod("p",String.class));
|
version.addMethod("getCompound",version.getClassRef("NBTTagCompound").getMethod("p",String.class));
|
||||||
|
version.addMethod("getList",version.getClassRef("NBTTagCompound").getMethod("c",String.class,int.class));
|
||||||
version.addMethod("get",version.getClassRef("NBTTagCompound").getMethod("c",String.class));
|
version.addMethod("get",version.getClassRef("NBTTagCompound").getMethod("c",String.class));
|
||||||
version.addMethod("remove",version.getClassRef("NBTTagCompound").getMethod("r",String.class));
|
version.addMethod("remove",version.getClassRef("NBTTagCompound").getMethod("r",String.class));
|
||||||
|
|
||||||
|
|
@ -213,7 +216,13 @@ public class NMSManager {
|
||||||
}else if((boolean)version.getMethodRef("hasKeyOfType").invoke(compound,t,8)) {
|
}else if((boolean)version.getMethodRef("hasKeyOfType").invoke(compound,t,8)) {
|
||||||
//String
|
//String
|
||||||
nbtList.add(t+"|"+version.getMethodRef("getString").invoke(compound,t));
|
nbtList.add(t+"|"+version.getMethodRef("getString").invoke(compound,t));
|
||||||
}else {
|
}
|
||||||
|
/*
|
||||||
|
else if((boolean)version.getMethodRef("hasKeyOfType").invoke(compound,t,9)){
|
||||||
|
nbtList.add(t+"|"+version.getMethodRef("get").invoke(compound,t)+"|list");
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
else {
|
||||||
//Other
|
//Other
|
||||||
nbtList.add(t+"|"+version.getMethodRef("get").invoke(compound,t));
|
nbtList.add(t+"|"+version.getMethodRef("get").invoke(compound,t));
|
||||||
}
|
}
|
||||||
|
|
@ -250,7 +259,22 @@ public class NMSManager {
|
||||||
String finalNBT = nbt.replace(id+"|", "").replace("|compound", "");
|
String finalNBT = nbt.replace(id+"|", "").replace("|compound", "");
|
||||||
Object compoundNew = version.getMethodRef("parse").invoke(null,finalNBT);
|
Object compoundNew = version.getMethodRef("parse").invoke(null,finalNBT);
|
||||||
version.getMethodRef("set").invoke(compound,sep[0],compoundNew);
|
version.getMethodRef("set").invoke(compound,sep[0],compoundNew);
|
||||||
|
}else if(type.equals("list")){
|
||||||
|
/*
|
||||||
|
String finalNBT = nbt.replace(id+"|", "").replace("|list", "");
|
||||||
|
JsonArray jsonArray = new Gson().fromJson(finalNBT, JsonArray.class);
|
||||||
|
Object list = version.getClassRef("NBTTagList").newInstance();
|
||||||
|
for (int c=0;c<jsonArray.size();i++) {
|
||||||
|
if(finalNBT.startsWith("{")){
|
||||||
|
Object compoundNew = version.getMethodRef("parse").invoke(null,jsonArray.get(i).toString());
|
||||||
|
version.getMethodRef("listAdd").invoke(list,compoundNew);
|
||||||
}else{
|
}else{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
else {
|
||||||
version.getMethodRef("setString").invoke(compound,sep[0],nbt.replace(id+"|", ""));
|
version.getMethodRef("setString").invoke(compound,sep[0],nbt.replace(id+"|", ""));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ 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>"
|
||||||
commandPreviewError: "&cYou need to use: &7/kit preview <kit>"
|
commandPreviewError: "&cYou need to use: &7/kit preview <kit>"
|
||||||
|
commandOpenError: "&cYou need to use: &7/kit open <inventory> <player>"
|
||||||
commandDoesNotExists: "&cThat command doesn't exists."
|
commandDoesNotExists: "&cThat command doesn't exists."
|
||||||
playerNotOnline: "&cPlayer &7%player% &cis not online."
|
playerNotOnline: "&cPlayer &7%player% &cis not online."
|
||||||
oneTimeError: "&cYou can't claim this kit again."
|
oneTimeError: "&cYou can't claim this kit again."
|
||||||
|
|
@ -37,5 +38,6 @@ days: 'd'
|
||||||
cooldownPlaceholderReady: "&a&lReady!"
|
cooldownPlaceholderReady: "&a&lReady!"
|
||||||
pluginCriticalErrors: "&cThe plugin has detected some errors. Check them using &7/kit verify"
|
pluginCriticalErrors: "&cThe plugin has detected some errors. Check them using &7/kit verify"
|
||||||
kitPreviewDisabled: "&cKit preview is disabled."
|
kitPreviewDisabled: "&cKit preview is disabled."
|
||||||
|
inventoryNotExists: "&cThat inventory doesn't exists."
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
main: pk.ajneb97.PlayerKits2
|
main: pk.ajneb97.PlayerKits2
|
||||||
version: 1.8.4
|
version: 1.9.1
|
||||||
name: PlayerKits2
|
name: PlayerKits2
|
||||||
api-version: 1.13
|
api-version: 1.13
|
||||||
softdepend: [Vault,PlaceholderAPI]
|
softdepend: [Vault,PlaceholderAPI]
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue