1.12.6
This commit is contained in:
parent
76e89a4052
commit
d797352812
17 changed files with 172 additions and 56 deletions
2
pom.xml
2
pom.xml
|
|
@ -37,7 +37,7 @@
|
|||
<dependency>
|
||||
<groupId>org.spigotmc</groupId>
|
||||
<artifactId>spigot-api</artifactId>
|
||||
<version>1.20.6-R0.1-SNAPSHOT</version>
|
||||
<version>1.21.1-R0.1-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
|
|
|
|||
|
|
@ -114,7 +114,7 @@ public class MainCommand implements CommandExecutor, TabCompleter {
|
|||
sender.sendMessage(MessagesManager.getColoredMessage("&6/kit edit <kit> &8Edits a kit."));
|
||||
sender.sendMessage(MessagesManager.getColoredMessage("&6/kit give <kit> <player> &8Gives a kit to a player."));
|
||||
sender.sendMessage(MessagesManager.getColoredMessage("&6/kit delete <kit> &8Deletes a kit."));
|
||||
sender.sendMessage(MessagesManager.getColoredMessage("&6/kit reset <kit> <player> &8Resets kit data for a player."));
|
||||
sender.sendMessage(MessagesManager.getColoredMessage("&6/kit reset <kit> <player>/* &8Resets kit data for a player."));
|
||||
sender.sendMessage(MessagesManager.getColoredMessage("&6/kit preview <kit> &8Previews a kit."));
|
||||
sender.sendMessage(MessagesManager.getColoredMessage("&6/kit open <inventory> <player> &8Opens a specific inventory for a player."));
|
||||
sender.sendMessage(MessagesManager.getColoredMessage("&6/kit reload &8Reloads the config."));
|
||||
|
|
@ -168,12 +168,17 @@ public class MainCommand implements CommandExecutor, TabCompleter {
|
|||
String kitName = args[1];
|
||||
String playerName = args[2];
|
||||
|
||||
PlayerKitsMessageResult result = plugin.getPlayerDataManager().resetKitForPlayer(playerName,kitName);
|
||||
PlayerKitsMessageResult result = plugin.getPlayerDataManager().resetKitForPlayer(playerName,kitName,playerName.equals("*"));
|
||||
if(result.isError()){
|
||||
msgManager.sendMessage(sender, result.getMessage(), true);
|
||||
}else{
|
||||
msgManager.sendMessage(sender, messagesConfig.getString("kitResetCorrect")
|
||||
.replace("%kit%",kitName).replace("%player%",playerName), true);
|
||||
if(playerName.equals("*")){
|
||||
msgManager.sendMessage(sender, messagesConfig.getString("kitResetCorrectAll")
|
||||
.replace("%kit%",kitName), true);
|
||||
}else{
|
||||
msgManager.sendMessage(sender, messagesConfig.getString("kitResetCorrect")
|
||||
.replace("%kit%",kitName).replace("%player%",playerName), true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -430,6 +435,16 @@ public class MainCommand implements CommandExecutor, TabCompleter {
|
|||
}
|
||||
}
|
||||
return completions;
|
||||
}else if(args[0].equalsIgnoreCase("reset")){
|
||||
for(Player p : Bukkit.getOnlinePlayers()) {
|
||||
if(args[2].isEmpty() || p.getName().toLowerCase().startsWith(args[2].toLowerCase())){
|
||||
completions.add(p.getName());
|
||||
}
|
||||
}
|
||||
if(args[2].isEmpty() || "*".startsWith(args[2].toLowerCase())) {
|
||||
completions.add("*");
|
||||
}
|
||||
return completions;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -58,6 +58,10 @@ public class MessagesConfigManager {
|
|||
Path pathConfig = Paths.get(configFile.getRoute());
|
||||
try{
|
||||
String text = new String(Files.readAllBytes(pathConfig));
|
||||
if(!text.contains("kitResetCorrectAll:")){
|
||||
getConfig().set("kitResetCorrectAll", "&aKit &7%kit% &areset for &7all players&a!");
|
||||
saveConfig();
|
||||
}
|
||||
if(!text.contains("commandOpenError:")){
|
||||
getConfig().set("commandOpenError", "&cYou need to use: &7/kit open <inventory> <player>");
|
||||
getConfig().set("inventoryNotExists", "&cThat inventory doesn't exists.");
|
||||
|
|
|
|||
|
|
@ -267,18 +267,27 @@ public class MySQLConnection {
|
|||
}.runTaskAsynchronously(plugin);
|
||||
}
|
||||
|
||||
public void resetKit(String uuid,String kitName){
|
||||
public void resetKit(String uuid,String kitName,boolean all){
|
||||
new BukkitRunnable(){
|
||||
@Override
|
||||
public void run() {
|
||||
try(Connection connection = getConnection()){
|
||||
PreparedStatement statement = connection.prepareStatement(
|
||||
"DELETE FROM playerkits_players_kits " +
|
||||
"WHERE UUID=? AND NAME=?");
|
||||
PreparedStatement statement;
|
||||
if(all){
|
||||
statement = connection.prepareStatement(
|
||||
"DELETE FROM playerkits_players_kits " +
|
||||
"WHERE NAME=?");
|
||||
statement.setString(1, kitName);
|
||||
}else{
|
||||
statement = connection.prepareStatement(
|
||||
"DELETE FROM playerkits_players_kits " +
|
||||
"WHERE UUID=? AND NAME=?");
|
||||
|
||||
statement.setString(1, uuid);
|
||||
statement.setString(2, kitName);
|
||||
statement.setString(1, uuid);
|
||||
statement.setString(2, kitName);
|
||||
}
|
||||
statement.executeUpdate();
|
||||
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import org.bukkit.scheduler.BukkitRunnable;
|
|||
import pk.ajneb97.PlayerKits2;
|
||||
import pk.ajneb97.managers.edit.InventoryEditManager;
|
||||
import pk.ajneb97.model.inventory.InventoryPlayer;
|
||||
import pk.ajneb97.utils.InventoryUtils;
|
||||
|
||||
public class InventoryEditListener implements Listener {
|
||||
|
||||
|
|
@ -62,7 +63,7 @@ public class InventoryEditListener implements Listener {
|
|||
return;
|
||||
}
|
||||
|
||||
if(event.getClickedInventory().equals(player.getOpenInventory().getTopInventory())) {
|
||||
if(event.getClickedInventory().equals(InventoryUtils.getTopInventory(player))) {
|
||||
invManager.clickInventory(inventoryPlayer,event.getCurrentItem(),event.getSlot(),clickType);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import pk.ajneb97.PlayerKits2;
|
|||
import pk.ajneb97.managers.InventoryManager;
|
||||
import pk.ajneb97.managers.MessagesManager;
|
||||
import pk.ajneb97.model.inventory.InventoryPlayer;
|
||||
import pk.ajneb97.utils.InventoryUtils;
|
||||
|
||||
public class PlayerListener implements Listener {
|
||||
|
||||
|
|
@ -49,7 +50,7 @@ public class PlayerListener implements Listener {
|
|||
return;
|
||||
}
|
||||
|
||||
if(event.getClickedInventory().equals(player.getOpenInventory().getTopInventory())) {
|
||||
if(event.getClickedInventory().equals(InventoryUtils.getTopInventory(player))) {
|
||||
ClickType clickType = event.getClick();
|
||||
invManager.clickInventory(inventoryPlayer,event.getCurrentItem(),clickType);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -224,7 +224,7 @@ public class KitItemManager {
|
|||
if (flag.equals("HIDE_ATTRIBUTES") && plugin.getDependencyManager().isPaper() &&
|
||||
serverVersion.serverVersionGreaterEqualThan(serverVersion, ServerVersion.v1_21_R1)) {
|
||||
//Fix PAPER HIDE_ATTRIBUTES
|
||||
ItemUtils.addDummyAttribute(meta);
|
||||
ItemUtils.addDummyAttribute(meta,plugin);
|
||||
}
|
||||
meta.addItemFlags(ItemFlag.valueOf(flag));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -130,18 +130,29 @@ public class PlayerDataManager {
|
|||
}
|
||||
}
|
||||
|
||||
public PlayerKitsMessageResult resetKitForPlayer(String name, String kitName){
|
||||
public PlayerKitsMessageResult resetKitForPlayer(String name, String kitName, boolean all){
|
||||
PlayerData playerData = getPlayerByName(name);
|
||||
FileConfiguration messagesConfig = plugin.getConfigsManager().getMessagesConfigManager().getConfig();
|
||||
if(playerData == null){
|
||||
if(playerData == null && !all){
|
||||
return PlayerKitsMessageResult.error(messagesConfig.getString("playerDataNotFound")
|
||||
.replace("%player%",name));
|
||||
}
|
||||
|
||||
playerData.resetKit(kitName);
|
||||
playerData.setModified(true);
|
||||
if(all){
|
||||
for(PlayerData p : players){
|
||||
p.resetKit(kitName);
|
||||
}
|
||||
}else{
|
||||
playerData.resetKit(kitName);
|
||||
}
|
||||
|
||||
if(plugin.getMySQLConnection() != null){
|
||||
plugin.getMySQLConnection().resetKit(playerData.getUuid(),kitName);
|
||||
if(all){
|
||||
plugin.getMySQLConnection().resetKit(null,kitName,true);
|
||||
}else{
|
||||
plugin.getMySQLConnection().resetKit(playerData.getUuid(),kitName,false);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return PlayerKitsMessageResult.success();
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import pk.ajneb97.model.KitAction;
|
|||
import pk.ajneb97.model.inventory.InventoryPlayer;
|
||||
import pk.ajneb97.model.item.KitItem;
|
||||
import pk.ajneb97.utils.InventoryItem;
|
||||
import pk.ajneb97.utils.InventoryUtils;
|
||||
import pk.ajneb97.utils.OtherUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
|
@ -104,7 +105,7 @@ public class InventoryEditDisplayManager {
|
|||
}
|
||||
|
||||
public void saveKitItem(InventoryPlayer inventoryPlayer){
|
||||
Inventory inv = inventoryPlayer.getPlayer().getOpenInventory().getTopInventory();
|
||||
Inventory inv = InventoryUtils.getTopInventory(inventoryPlayer.getPlayer());
|
||||
if(inv != null) {
|
||||
ItemStack item = inv.getItem(13);
|
||||
|
||||
|
|
@ -139,7 +140,7 @@ public class InventoryEditDisplayManager {
|
|||
if(event.getSlotType() == null || event.getClickedInventory() == null){
|
||||
return;
|
||||
}
|
||||
if(event.getClickedInventory().equals(inventoryPlayer.getPlayer().getOpenInventory().getTopInventory())){
|
||||
if(event.getClickedInventory().equals(InventoryUtils.getTopInventory(inventoryPlayer.getPlayer()))){
|
||||
//Top inventory
|
||||
//Cancel unless is slot 13
|
||||
if(slot != 13){
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ import pk.ajneb97.model.Kit;
|
|||
import pk.ajneb97.model.inventory.InventoryPlayer;
|
||||
import pk.ajneb97.model.item.KitItem;
|
||||
import pk.ajneb97.utils.InventoryItem;
|
||||
import pk.ajneb97.utils.InventoryUtils;
|
||||
import pk.ajneb97.utils.ItemUtils;
|
||||
import pk.ajneb97.utils.OtherUtils;
|
||||
|
||||
|
|
@ -147,7 +148,7 @@ public class InventoryEditKitItemsManager {
|
|||
}
|
||||
|
||||
public void saveKitItems(InventoryPlayer inventoryPlayer){
|
||||
Inventory inv = inventoryPlayer.getPlayer().getOpenInventory().getTopInventory();
|
||||
Inventory inv = InventoryUtils.getTopInventory(inventoryPlayer.getPlayer());
|
||||
if(inv != null) {
|
||||
Kit kit = plugin.getKitsManager().getKitByName(inventoryPlayer.getKitName());
|
||||
KitItemManager kitItemManager = plugin.getKitItemManager();
|
||||
|
|
@ -182,7 +183,7 @@ public class InventoryEditKitItemsManager {
|
|||
if(event.getSlotType() == null || event.getClickedInventory() == null){
|
||||
return;
|
||||
}
|
||||
if(event.getClickedInventory().equals(inventoryPlayer.getPlayer().getOpenInventory().getTopInventory())){
|
||||
if(event.getClickedInventory().equals(InventoryUtils.getTopInventory(inventoryPlayer.getPlayer()))){
|
||||
//Top inventory
|
||||
//Cancel between 45 and 53
|
||||
//Cancel if right click
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import pk.ajneb97.model.inventory.InventoryPlayer;
|
|||
import pk.ajneb97.model.inventory.ItemKitInventory;
|
||||
import pk.ajneb97.model.inventory.KitInventory;
|
||||
import pk.ajneb97.utils.InventoryItem;
|
||||
import pk.ajneb97.utils.InventoryUtils;
|
||||
import pk.ajneb97.utils.ItemUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
|
@ -124,7 +125,7 @@ public class InventoryEditPositionManager {
|
|||
if(event.getSlotType() == null || event.getClickedInventory() == null){
|
||||
return;
|
||||
}
|
||||
if(event.getClickedInventory().equals(inventoryPlayer.getPlayer().getOpenInventory().getTopInventory())){
|
||||
if(event.getClickedInventory().equals(InventoryUtils.getTopInventory(inventoryPlayer.getPlayer()))){
|
||||
//Should not be an item unless has open inventory tag
|
||||
if(item == null || item.getType().equals(Material.AIR)){
|
||||
//Update position
|
||||
|
|
|
|||
|
|
@ -132,6 +132,7 @@ public class PlayerData {
|
|||
for(int i=0;i<kits.size();i++){
|
||||
if(kits.get(i).getName().equals(kitName)){
|
||||
kits.remove(i);
|
||||
modified = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import org.bukkit.scheduler.BukkitRunnable;
|
|||
import pk.ajneb97.PlayerKits2;
|
||||
import pk.ajneb97.managers.*;
|
||||
import pk.ajneb97.model.inventory.InventoryPlayer;
|
||||
import pk.ajneb97.utils.InventoryUtils;
|
||||
import pk.ajneb97.utils.ItemUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
|
@ -36,7 +37,7 @@ public class InventoryUpdateTaskManager {
|
|||
|
||||
ArrayList<InventoryPlayer> players = inventoryManager.getPlayers();
|
||||
for(InventoryPlayer player : players){
|
||||
Inventory inv = player.getPlayer().getOpenInventory().getTopInventory();
|
||||
Inventory inv = InventoryUtils.getTopInventory(player.getPlayer());
|
||||
if(inv == null){
|
||||
continue;
|
||||
}
|
||||
|
|
|
|||
42
src/main/java/pk/ajneb97/utils/InventoryUtils.java
Normal file
42
src/main/java/pk/ajneb97/utils/InventoryUtils.java
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
package pk.ajneb97.utils;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.InventoryEvent;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
public class InventoryUtils {
|
||||
/**
|
||||
* Thanks to Rumsfield
|
||||
* https://www.spigotmc.org/threads/inventoryview-changed-to-interface-backwards-compatibility.651754/
|
||||
* In API versions 1.20.6 and earlier, InventoryView is a class.
|
||||
* In versions 1.21 and later, it is an interface.
|
||||
* This method uses reflection to get the top Inventory object from the
|
||||
* InventoryView associated with an InventoryEvent, to avoid runtime errors.
|
||||
* @param event The generic InventoryEvent with an InventoryView to inspect.
|
||||
* @return The top Inventory object from the event's InventoryView.
|
||||
*/
|
||||
public static Inventory getTopInventory(InventoryEvent event) {
|
||||
try {
|
||||
Object view = event.getView();
|
||||
Method getTopInventory = view.getClass().getMethod("getTopInventory");
|
||||
getTopInventory.setAccessible(true);
|
||||
return (Inventory) getTopInventory.invoke(view);
|
||||
} catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public static Inventory getTopInventory(Player player) {
|
||||
try {
|
||||
Object view = player.getOpenInventory();
|
||||
Method getTopInventory = view.getClass().getMethod("getTopInventory");
|
||||
getTopInventory.setAccessible(true);
|
||||
return (Inventory) getTopInventory.invoke(view);
|
||||
} catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -17,6 +17,7 @@ import org.bukkit.block.banner.Pattern;
|
|||
import org.bukkit.block.banner.PatternType;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.EquipmentSlot;
|
||||
import org.bukkit.inventory.EquipmentSlotGroup;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.*;
|
||||
import org.bukkit.inventory.meta.BookMeta.Generation;
|
||||
|
|
@ -522,6 +523,9 @@ public class ItemUtils {
|
|||
return plugin.getNmsManager().getAttributes(item);
|
||||
}else {
|
||||
//1.13+
|
||||
ServerVersion serverVersion = PlayerKits2.serverVersion;
|
||||
boolean newSystem = serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_21_R1);
|
||||
|
||||
ItemMeta meta = item.getItemMeta();
|
||||
if(meta.hasAttributeModifiers()) {
|
||||
Multimap<Attribute,AttributeModifier> attributes = meta.getAttributeModifiers();
|
||||
|
|
@ -531,11 +535,18 @@ public class ItemUtils {
|
|||
for(Attribute a : set) {
|
||||
Collection<AttributeModifier> listModifiers = attributes.get(a);
|
||||
for(AttributeModifier m : listModifiers) {
|
||||
String line = a.name()+";"+m.getOperation().name()+";"+m.getAmount()+";"+m.getUniqueId();
|
||||
if(m.getSlot() != null) {
|
||||
line=line+";"+m.getSlot().name();
|
||||
String line;
|
||||
if(newSystem){
|
||||
line = a.name()+";"+m.getOperation().name()+";"+m.getAmount()+";"+m.getKey().getNamespace()+":"+m.getKey().getKey();
|
||||
line=line+";"+m.getSlotGroup().toString();
|
||||
}else{
|
||||
line = a.name()+";"+m.getOperation().name()+";"+m.getAmount()+";"+m.getUniqueId();
|
||||
if(m.getSlot() != null) {
|
||||
line=line+";"+m.getSlot().name();
|
||||
}
|
||||
line=line+";custom_name:"+m.getName();
|
||||
}
|
||||
line=line+";custom_name:"+m.getName();
|
||||
|
||||
attributeList.add(line);
|
||||
}
|
||||
}
|
||||
|
|
@ -555,41 +566,57 @@ public class ItemUtils {
|
|||
return plugin.getNmsManager().setAttributes(item,attributes);
|
||||
}else {
|
||||
//1.13+
|
||||
ItemMeta meta = item.getItemMeta();
|
||||
for(String a : attributes) {
|
||||
String[] sep = a.split(";");
|
||||
String attribute = sep[0];
|
||||
AttributeModifier.Operation op = AttributeModifier.Operation.valueOf(sep[1]);
|
||||
double amount = Double.valueOf(sep[2]);
|
||||
UUID uuid = UUID.fromString(sep[3]);
|
||||
String customName = attribute;
|
||||
for(int i=0;i<sep.length;i++){
|
||||
if(sep[i].startsWith("custom_name:")){
|
||||
customName = sep[i].replace("custom_name:","");
|
||||
}
|
||||
}
|
||||
AttributeModifier modifier = null;
|
||||
if(sep.length >= 5) {
|
||||
if(!sep[4].startsWith("custom_name:")){
|
||||
EquipmentSlot slot = EquipmentSlot.valueOf(sep[4]);
|
||||
modifier = new AttributeModifier(uuid,customName,amount,op,slot);
|
||||
ServerVersion serverVersion = PlayerKits2.serverVersion;
|
||||
boolean newSystem = serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_21_R1);
|
||||
|
||||
try{
|
||||
ItemMeta meta = item.getItemMeta();
|
||||
for(String a : attributes) {
|
||||
String[] sep = a.split(";");
|
||||
String attribute = sep[0];
|
||||
AttributeModifier.Operation op = AttributeModifier.Operation.valueOf(sep[1]);
|
||||
double amount = Double.valueOf(sep[2]);
|
||||
|
||||
AttributeModifier modifier = null;
|
||||
|
||||
if(newSystem){
|
||||
String[] id = sep[3].split(":");
|
||||
NamespacedKey namespacedKey = new NamespacedKey(id[0],id[1]);
|
||||
modifier = new AttributeModifier(namespacedKey,amount,op,EquipmentSlotGroup.getByName(sep[4]));
|
||||
}else{
|
||||
modifier = new AttributeModifier(uuid,customName,amount,op);
|
||||
String customName = attribute;
|
||||
for(int i=0;i<sep.length;i++){
|
||||
if(sep[i].startsWith("custom_name:")){
|
||||
customName = sep[i].replace("custom_name:","");
|
||||
}
|
||||
}
|
||||
UUID uuid = UUID.fromString(sep[3]);
|
||||
if(sep.length >= 5) {
|
||||
if(!sep[4].startsWith("custom_name:")){
|
||||
EquipmentSlot slot = EquipmentSlot.valueOf(sep[4]);
|
||||
modifier = new AttributeModifier(uuid,customName,amount,op,slot);
|
||||
}else{
|
||||
modifier = new AttributeModifier(uuid,customName,amount,op);
|
||||
}
|
||||
}else {
|
||||
modifier = new AttributeModifier(uuid,customName,amount,op);
|
||||
}
|
||||
}
|
||||
}else {
|
||||
modifier = new AttributeModifier(uuid,customName,amount,op);
|
||||
|
||||
meta.addAttributeModifier(Attribute.valueOf(attribute), modifier);
|
||||
}
|
||||
|
||||
meta.addAttributeModifier(Attribute.valueOf(attribute), modifier);
|
||||
}
|
||||
item.setItemMeta(meta);
|
||||
}catch(Exception e){
|
||||
|
||||
item.setItemMeta(meta);
|
||||
}
|
||||
}
|
||||
return item;
|
||||
}
|
||||
|
||||
public static void addDummyAttribute(ItemMeta meta){
|
||||
AttributeModifier modifier = new AttributeModifier(UUID.randomUUID(),"",0,AttributeModifier.Operation.ADD_NUMBER,EquipmentSlot.FEET);
|
||||
// 1.21+ only
|
||||
public static void addDummyAttribute(ItemMeta meta,PlayerKits2 plugin){
|
||||
AttributeModifier modifier = new AttributeModifier(new NamespacedKey(plugin,"dummy_attribute"),0,AttributeModifier.Operation.ADD_NUMBER,EquipmentSlotGroup.FEET);
|
||||
meta.addAttributeModifier(Attribute.GENERIC_GRAVITY, modifier);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ noPermissions: "&cYou don't have permissions for that."
|
|||
kitDeleted: "&aKit &7%kit% &adeleted correctly."
|
||||
playerDataNotFound: "&cNo data found for player &7%player%&c."
|
||||
kitResetCorrect: "&aKit &7%kit% &areset for &7%player%&a!"
|
||||
kitResetCorrectAll: "&aKit &7%kit% &areset for &7all players&a!"
|
||||
cantPreviewError: "&cYou can't preview this kit."
|
||||
requirementsMessageStatusSymbolTrue: "&a&l✔"
|
||||
requirementsMessageStatusSymbolFalse: "&c&l✖"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
main: pk.ajneb97.PlayerKits2
|
||||
version: 1.12.5
|
||||
version: 1.12.6
|
||||
name: PlayerKits2
|
||||
api-version: 1.13
|
||||
softdepend: [Vault,PlaceholderAPI]
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue