This commit is contained in:
Ajneb97 2024-04-12 17:15:52 -04:00
parent 7e2f561e2b
commit 0d9e82f4fd
13 changed files with 300 additions and 219 deletions

View file

@ -110,7 +110,7 @@ public class MainCommand implements CommandExecutor, TabCompleter {
sender.sendMessage(MessagesManager.getColoredMessage(" ")); sender.sendMessage(MessagesManager.getColoredMessage(" "));
sender.sendMessage(MessagesManager.getColoredMessage("&6/kit &8Opens the GUI.")); sender.sendMessage(MessagesManager.getColoredMessage("&6/kit &8Opens the GUI."));
sender.sendMessage(MessagesManager.getColoredMessage("&6/kit claim <kit> &8Claims a kit outside the GUI.")); sender.sendMessage(MessagesManager.getColoredMessage("&6/kit claim <kit> &8Claims a kit outside the GUI."));
sender.sendMessage(MessagesManager.getColoredMessage("&6/kit create <kit> &8Creates a new kit using the items in your inventory.")); sender.sendMessage(MessagesManager.getColoredMessage("&6/kit create <kit> (optional)original &8Creates a new kit using the items in your inventory."));
sender.sendMessage(MessagesManager.getColoredMessage("&6/kit edit <kit> &8Edits a kit.")); 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 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 delete <kit> &8Deletes a kit."));
@ -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> // /kit create <kit> (optional)<original>
if(!PlayerUtils.isPlayerKitsAdmin(player)){ if(!PlayerUtils.isPlayerKitsAdmin(player)){
msgManager.sendMessage(player,messagesConfig.getString("noPermissions"),true); msgManager.sendMessage(player,messagesConfig.getString("noPermissions"),true);
return; return;
@ -312,7 +312,12 @@ public class MainCommand implements CommandExecutor, TabCompleter {
return; return;
} }
plugin.getKitsManager().createKit(args[1],player); boolean saveOriginalItems = false;
if(args.length >= 3 && args[2].equalsIgnoreCase("original")){
saveOriginalItems = true;
}
plugin.getKitsManager().createKit(args[1],player,saveOriginalItems);
} }
public void delete(CommandSender sender,String[] args,FileConfiguration messagesConfig,MessagesManager msgManager){ public void delete(CommandSender sender,String[] args,FileConfiguration messagesConfig,MessagesManager msgManager){
@ -409,6 +414,13 @@ public class MainCommand implements CommandExecutor, TabCompleter {
} }
} }
}else if(args.length == 3 && PlayerUtils.isPlayerKitsAdmin(sender)){
if(args[0].equalsIgnoreCase("create")){
if(args[2].isEmpty() || "original".startsWith(args[2].toLowerCase())) {
completions.add("original");
return completions;
}
}
} }
} }

View file

@ -145,6 +145,7 @@ public class KitsConfigManager {
config.set("auto_armor",kit.isAutoArmor()); config.set("auto_armor",kit.isAutoArmor());
config.set("permission_required",kit.isPermissionRequired()); config.set("permission_required",kit.isPermissionRequired());
config.set("custom_permission",kit.getCustomPermission()); config.set("custom_permission",kit.getCustomPermission());
config.set("save_original_items",kit.isSaveOriginalItems());
KitItemManager kitItemManager = plugin.getKitItemManager(); KitItemManager kitItemManager = plugin.getKitItemManager();
int currentPos = 1; int currentPos = 1;
@ -233,6 +234,7 @@ public class KitsConfigManager {
String customPermission = config.contains(mainPath+"custom_permission") ? config.getString(mainPath+"custom_permission") : null; String customPermission = config.contains(mainPath+"custom_permission") ? config.getString(mainPath+"custom_permission") : null;
boolean autoArmor = config.contains(mainPath+"auto_armor") ? config.getBoolean(mainPath+"auto_armor") : false; boolean autoArmor = config.contains(mainPath+"auto_armor") ? config.getBoolean(mainPath+"auto_armor") : false;
boolean oneTime = config.contains(mainPath+"one_time") ? config.getBoolean(mainPath+"one_time") : false; boolean oneTime = config.contains(mainPath+"one_time") ? config.getBoolean(mainPath+"one_time") : false;
boolean saveOriginalItems = config.contains(mainPath+"save_original_items") ? config.getBoolean(mainPath+"save_original_items") : false;
ArrayList<KitItem> items = new ArrayList<KitItem>(); ArrayList<KitItem> items = new ArrayList<KitItem>();
if(config.contains(mainPath+"items")){ if(config.contains(mainPath+"items")){
@ -281,6 +283,7 @@ public class KitsConfigManager {
kit.setDisplayItemOneTime(displayItemOneTime); kit.setDisplayItemOneTime(displayItemOneTime);
kit.setDisplayItemOneTimeRequirements(displayItemOneTimeRequirements); kit.setDisplayItemOneTimeRequirements(displayItemOneTimeRequirements);
kit.setRequirements(kitRequirements); kit.setRequirements(kitRequirements);
kit.setSaveOriginalItems(saveOriginalItems);
return kit; return kit;
} }

View file

@ -27,7 +27,11 @@ public class KitItemManager {
this.plugin = plugin; this.plugin = plugin;
} }
public KitItem createKitItemFromItemStack(ItemStack item){ public KitItem createKitItemFromItemStack(ItemStack item,boolean exactItem){
if(exactItem){
return new KitItem(item.clone());
}
KitItem kitItem = new KitItem(item.getType().name()); KitItem kitItem = new KitItem(item.getType().name());
kitItem.setAmount(item.getAmount()); kitItem.setAmount(item.getAmount());
@ -119,7 +123,12 @@ public class KitItemManager {
return kitItem; return kitItem;
} }
public ItemStack createItemFromKitItem(KitItem kitItem,Player player){ public ItemStack createItemFromKitItem(KitItem kitItem,Player player){
if(kitItem.getOriginalItem() != null){
return kitItem.getOriginalItem().clone();
}
ItemStack item = ItemUtils.createItemFromID(kitItem.getId()); ItemStack item = ItemUtils.createItemFromID(kitItem.getId());
item.setAmount(kitItem.getAmount()); item.setAmount(kitItem.getAmount());
@ -240,95 +249,99 @@ public class KitItemManager {
} }
public void saveKitItemOnConfig(KitItem item,FileConfiguration config,String path){ public void saveKitItemOnConfig(KitItem item,FileConfiguration config,String path){
config.set(path+".id", item.getId()); if(item.getOriginalItem() != null){
config.set(path+".name", item.getName()); config.set(path+".original",item.getOriginalItem().clone());
config.set(path+".amount", item.getAmount()); }else{
if(item.getDurability() != 0) { config.set(path+".id", item.getId());
config.set(path+".durability", item.getDurability()); config.set(path+".name", item.getName());
} config.set(path+".amount", item.getAmount());
if(item.getLore() != null && !item.getLore().isEmpty()) { if(item.getDurability() != 0) {
config.set(path+".lore", item.getLore()); config.set(path+".durability", item.getDurability());
}
if(item.getEnchants() != null && !item.getEnchants().isEmpty()) {
config.set(path+".enchants", item.getEnchants());
}
if(item.getFlags() != null && !item.getFlags().isEmpty()) {
config.set(path+".item_flags", item.getFlags());
}
if(item.getCustomModelData() != 0) {
config.set(path+".custom_model_data", item.getCustomModelData());
}
if(item.getColor() != 0) {
config.set(path+".color", item.getColor());
}
if(item.getNbt() != null && !item.getNbt().isEmpty()) {
config.set(path+".nbt", item.getNbt());
}
if(item.getAttributes() != null && !item.getAttributes().isEmpty()) {
config.set(path+".attributes", item.getAttributes());
}
if(item.getBookEnchants() != null && !item.getBookEnchants().isEmpty()) {
config.set(path+".book_enchants", item.getBookEnchants());
}
if(item.getCanPlace() != null && !item.getCanPlace().isEmpty()) {
config.set(path+".can_place", item.getCanPlace());
}
if(item.getCanDestroy() != null && !item.getCanDestroy().isEmpty()) {
config.set(path+".can_destroy", item.getCanDestroy());
}
KitItemSkullData skullData = item.getSkullData();
if(skullData != null) {
config.set(path+".skull_data.texture", skullData.getTexture());
config.set(path+".skull_data.id", skullData.getId());
config.set(path+".skull_data.owner", skullData.getOwner());
}
KitItemPotionData potionData = item.getPotionData();
if(potionData != null) {
if(potionData.getPotionEffects() != null && !potionData.getPotionEffects().isEmpty()) {
config.set(path+".potion_data.effects", potionData.getPotionEffects());
} }
config.set(path+".potion_data.extended", potionData.isExtended()); if(item.getLore() != null && !item.getLore().isEmpty()) {
config.set(path+".potion_data.upgraded", potionData.isUpgraded()); config.set(path+".lore", item.getLore());
config.set(path+".potion_data.type", potionData.getPotionType());
if(potionData.getPotionColor() != 0) {
config.set(path+".potion_data.color", potionData.getPotionColor());
} }
} if(item.getEnchants() != null && !item.getEnchants().isEmpty()) {
config.set(path+".enchants", item.getEnchants());
KitItemFireworkData fireworkData = item.getFireworkData();
if(fireworkData != null) {
if(fireworkData.getFireworkRocketEffects() != null && !fireworkData.getFireworkRocketEffects().isEmpty()) {
config.set(path+".firework_data.rocket_effects", fireworkData.getFireworkRocketEffects());
} }
config.set(path+".firework_data.star_effect", fireworkData.getFireworkStarEffect()); if(item.getFlags() != null && !item.getFlags().isEmpty()) {
if(fireworkData.getFireworkPower() != 0) { config.set(path+".item_flags", item.getFlags());
config.set(path+".firework_data.power", fireworkData.getFireworkPower());
} }
}
KitItemBannerData bannerData = item.getBannerData(); if(item.getCustomModelData() != 0) {
if(bannerData != null) { config.set(path+".custom_model_data", item.getCustomModelData());
if(bannerData.getPatterns() != null && !bannerData.getPatterns().isEmpty()) { }
config.set(path+".banner_data.patterns", bannerData.getPatterns()); if(item.getColor() != 0) {
config.set(path+".color", item.getColor());
}
if(item.getNbt() != null && !item.getNbt().isEmpty()) {
config.set(path+".nbt", item.getNbt());
}
if(item.getAttributes() != null && !item.getAttributes().isEmpty()) {
config.set(path+".attributes", item.getAttributes());
}
if(item.getBookEnchants() != null && !item.getBookEnchants().isEmpty()) {
config.set(path+".book_enchants", item.getBookEnchants());
}
if(item.getCanPlace() != null && !item.getCanPlace().isEmpty()) {
config.set(path+".can_place", item.getCanPlace());
}
if(item.getCanDestroy() != null && !item.getCanDestroy().isEmpty()) {
config.set(path+".can_destroy", item.getCanDestroy());
} }
config.set(path+".banner_data.base_color", bannerData.getBaseColor());
}
KitItemBookData bookData = item.getBookData(); KitItemSkullData skullData = item.getSkullData();
if(bookData != null) { if(skullData != null) {
config.set(path+".book_data.author", bookData.getAuthor()); config.set(path+".skull_data.texture", skullData.getTexture());
config.set(path+".book_data.title", bookData.getTitle()); config.set(path+".skull_data.id", skullData.getId());
config.set(path+".book_data.pages", bookData.getPages()); config.set(path+".skull_data.owner", skullData.getOwner());
config.set(path+".book_data.generation", bookData.getGeneration()); }
}
KitItemTrimData trimData = item.getTrimData(); KitItemPotionData potionData = item.getPotionData();
if(trimData != null){ if(potionData != null) {
config.set(path+".trim_data.pattern", trimData.getPattern()); if(potionData.getPotionEffects() != null && !potionData.getPotionEffects().isEmpty()) {
config.set(path+".trim_data.material", trimData.getMaterial()); config.set(path+".potion_data.effects", potionData.getPotionEffects());
}
config.set(path+".potion_data.extended", potionData.isExtended());
config.set(path+".potion_data.upgraded", potionData.isUpgraded());
config.set(path+".potion_data.type", potionData.getPotionType());
if(potionData.getPotionColor() != 0) {
config.set(path+".potion_data.color", potionData.getPotionColor());
}
}
KitItemFireworkData fireworkData = item.getFireworkData();
if(fireworkData != null) {
if(fireworkData.getFireworkRocketEffects() != null && !fireworkData.getFireworkRocketEffects().isEmpty()) {
config.set(path+".firework_data.rocket_effects", fireworkData.getFireworkRocketEffects());
}
config.set(path+".firework_data.star_effect", fireworkData.getFireworkStarEffect());
if(fireworkData.getFireworkPower() != 0) {
config.set(path+".firework_data.power", fireworkData.getFireworkPower());
}
}
KitItemBannerData bannerData = item.getBannerData();
if(bannerData != null) {
if(bannerData.getPatterns() != null && !bannerData.getPatterns().isEmpty()) {
config.set(path+".banner_data.patterns", bannerData.getPatterns());
}
config.set(path+".banner_data.base_color", bannerData.getBaseColor());
}
KitItemBookData bookData = item.getBookData();
if(bookData != null) {
config.set(path+".book_data.author", bookData.getAuthor());
config.set(path+".book_data.title", bookData.getTitle());
config.set(path+".book_data.pages", bookData.getPages());
config.set(path+".book_data.generation", bookData.getGeneration());
}
KitItemTrimData trimData = item.getTrimData();
if(trimData != null){
config.set(path+".trim_data.pattern", trimData.getPattern());
config.set(path+".trim_data.material", trimData.getMaterial());
}
} }
if(item.isOffhand()){ if(item.isOffhand()){
@ -340,140 +353,144 @@ public class KitItemManager {
} }
public KitItem getKitItemFromConfig(FileConfiguration config, String path){ public KitItem getKitItemFromConfig(FileConfiguration config, String path){
String id = config.getString(path+".id");
String name = config.contains(path+".name") ? config.getString(path+".name") : null;
List<String> lore = config.contains(path+".lore") ? config.getStringList(path+".lore") : null;
int amount = config.contains(path+".amount") ? config.getInt(path+".amount") : 1;
short durability = config.contains(path+".durability") ? (short) config.getInt(path+".durability") : 0;
int customModelData = config.contains(path+".custom_model_data") ? config.getInt(path+".custom_model_data") : 0;
int color = config.contains(path+".color") ? config.getInt(path+".color") : 0;
List<String> enchants = config.contains(path+".enchants") ? config.getStringList(path+".enchants") : null;
List<String> flags = config.contains(path+".item_flags") ? config.getStringList(path+".item_flags") : null;
List<String> bookEnchants = config.contains(path+".book_enchants") ? config.getStringList(path+".book_enchants") : null;
List<String> nbtList = config.contains(path+".nbt") ? config.getStringList(path+".nbt") : null;
List<String> attributes = config.contains(path+".attributes") ? config.getStringList(path+".attributes") : null;
List<String> canPlace = config.contains(path+".can_place") ? config.getStringList(path+".can_place") : null;
List<String> canDestroy = config.contains(path+".can_destroy") ? config.getStringList(path+".can_destroy") : null;
boolean offhand = config.contains(path+".offhand") ? config.getBoolean(path+".offhand") : false; boolean offhand = config.contains(path+".offhand") ? config.getBoolean(path+".offhand") : false;
int previewSlot = config.contains(path+".preview_slot") ? config.getInt(path+".preview_slot") : -1; int previewSlot = config.contains(path+".preview_slot") ? config.getInt(path+".preview_slot") : -1;
KitItem kitItem = null;
if(config.contains(path+".original")){
kitItem = new KitItem(config.getItemStack(path+".original"));
}else{
String id = config.getString(path+".id");
String name = config.contains(path+".name") ? config.getString(path+".name") : null;
List<String> lore = config.contains(path+".lore") ? config.getStringList(path+".lore") : null;
int amount = config.contains(path+".amount") ? config.getInt(path+".amount") : 1;
short durability = config.contains(path+".durability") ? (short) config.getInt(path+".durability") : 0;
int customModelData = config.contains(path+".custom_model_data") ? config.getInt(path+".custom_model_data") : 0;
int color = config.contains(path+".color") ? config.getInt(path+".color") : 0;
List<String> enchants = config.contains(path+".enchants") ? config.getStringList(path+".enchants") : null;
List<String> flags = config.contains(path+".item_flags") ? config.getStringList(path+".item_flags") : null;
List<String> bookEnchants = config.contains(path+".book_enchants") ? config.getStringList(path+".book_enchants") : null;
List<String> nbtList = config.contains(path+".nbt") ? config.getStringList(path+".nbt") : null;
List<String> attributes = config.contains(path+".attributes") ? config.getStringList(path+".attributes") : null;
List<String> canPlace = config.contains(path+".can_place") ? config.getStringList(path+".can_place") : null;
List<String> canDestroy = config.contains(path+".can_destroy") ? config.getStringList(path+".can_destroy") : null;
KitItemSkullData skullData = null; KitItemSkullData skullData = null;
if(config.contains(path+".skull_data")) { if(config.contains(path+".skull_data")) {
String skullTexture = null; String skullTexture = null;
String skullId = null; String skullId = null;
String skullOwner = null; String skullOwner = null;
if(config.contains(path+".skull_data.texture")) { if(config.contains(path+".skull_data.texture")) {
skullTexture = config.getString(path+".skull_data.texture"); skullTexture = config.getString(path+".skull_data.texture");
}
if(config.contains(path+".skull_data.id")) {
skullId = config.getString(path+".skull_data.id");
}
if(config.contains(path+".skull_data.owner")) {
skullOwner = config.getString(path+".skull_data.owner");
}
skullData = new KitItemSkullData(skullOwner,skullTexture,skullId);
} }
if(config.contains(path+".skull_data.id")) { KitItemPotionData potionData = null;
skullId = config.getString(path+".skull_data.id"); if(config.contains(path+".potion_data")) {
List<String> potionEffects = null;
boolean extended = false;
boolean upgraded = false;
String potionType = null;
int potionColor = 0;
if(config.contains(path+".potion_data.effects")) {
potionEffects = config.getStringList(path+".potion_data.effects");
}
if(config.contains(path+".potion_data.extended")) {
extended = config.getBoolean(path+".potion_data.extended");
}
if(config.contains(path+".potion_data.upgraded")) {
upgraded = config.getBoolean(path+".potion_data.upgraded");
}
if(config.contains(path+".potion_data.type")) {
potionType = config.getString(path+".potion_data.type");
}
if(config.contains(path+".potion_data.color")) {
potionColor = config.getInt(path+".potion_data.color");
}
potionData = new KitItemPotionData(upgraded,extended,potionType,potionColor,potionEffects);
} }
if(config.contains(path+".skull_data.owner")) { KitItemFireworkData fireworkData = null;
skullOwner = config.getString(path+".skull_data.owner"); if(config.contains(path+".firework_data")) {
List<String> rocketEffects = null;
String starEffect = null;
int power = 0;
if(config.contains(path+".firework_data.rocket_effects")) {
rocketEffects = config.getStringList(path+".firework_data.rocket_effects");
}
if(config.contains(path+".firework_data.star_effect")) {
starEffect = config.getString(path+".firework_data.star_effect");
}
if(config.contains(path+".firework_data.power")) {
power = config.getInt(path+".firework_data.power");
}
fireworkData = new KitItemFireworkData(rocketEffects,starEffect,power);
} }
skullData = new KitItemSkullData(skullOwner,skullTexture,skullId); KitItemBannerData bannerData = null;
} if(config.contains(path+".banner_data")) {
KitItemPotionData potionData = null; List<String> patterns = null;
if(config.contains(path+".potion_data")) { String baseColor = null;
List<String> potionEffects = null; if(config.contains(path+".banner_data.patterns")) {
boolean extended = false; patterns = config.getStringList(path+".banner_data.patterns");
boolean upgraded = false; }
String potionType = null; if(config.contains(path+".banner_data.base_color")) {
int potionColor = 0; baseColor = config.getString(path+".banner_data.base_color");
if(config.contains(path+".potion_data.effects")) { }
potionEffects = config.getStringList(path+".potion_data.effects");
bannerData = new KitItemBannerData(patterns,baseColor);
} }
if(config.contains(path+".potion_data.extended")) { KitItemBookData bookData = null;
extended = config.getBoolean(path+".potion_data.extended"); if(config.contains(path+".book_data")) {
List<String> pages = config.getStringList(path+".book_data.pages");
String author = null;
String generation = null;
String title = null;
if(config.contains(path+".book_data.author")) {
author = config.getString(path+".book_data.author");
}
if(config.contains(path+".book_data.generation")) {
generation = config.getString(path+".book_data.generation");
}
if(config.contains(path+".book_data.title")) {
title = config.getString(path+".book_data.title");
}
bookData = new KitItemBookData(pages,author,generation,title);
} }
if(config.contains(path+".potion_data.upgraded")) { KitItemTrimData trimData = null;
upgraded = config.getBoolean(path+".potion_data.upgraded"); if(config.contains(path+".trim_data")){
} String material = config.getString(path+".trim_data.material");
if(config.contains(path+".potion_data.type")) { String pattern = config.getString(path+".trim_data.pattern");
potionType = config.getString(path+".potion_data.type"); trimData = new KitItemTrimData(pattern,material);
}
if(config.contains(path+".potion_data.color")) {
potionColor = config.getInt(path+".potion_data.color");
} }
potionData = new KitItemPotionData(upgraded,extended,potionType,potionColor,potionEffects); kitItem = new KitItem(id);
kitItem.setName(name);
kitItem.setLore(lore);
kitItem.setAmount(amount);
kitItem.setDurability(durability);
kitItem.setCustomModelData(customModelData);
kitItem.setColor(color);
kitItem.setEnchants(enchants);
kitItem.setFlags(flags);
kitItem.setBookEnchants(bookEnchants);
kitItem.setNbt(nbtList);
kitItem.setAttributes(attributes);
kitItem.setCanPlace(canPlace);
kitItem.setCanDestroy(canDestroy);
kitItem.setSkullData(skullData);
kitItem.setPotionData(potionData);
kitItem.setFireworkData(fireworkData);
kitItem.setBannerData(bannerData);
kitItem.setBookData(bookData);
kitItem.setTrimData(trimData);
} }
KitItemFireworkData fireworkData = null;
if(config.contains(path+".firework_data")) {
List<String> rocketEffects = null;
String starEffect = null;
int power = 0;
if(config.contains(path+".firework_data.rocket_effects")) {
rocketEffects = config.getStringList(path+".firework_data.rocket_effects");
}
if(config.contains(path+".firework_data.star_effect")) {
starEffect = config.getString(path+".firework_data.star_effect");
}
if(config.contains(path+".firework_data.power")) {
power = config.getInt(path+".firework_data.power");
}
fireworkData = new KitItemFireworkData(rocketEffects,starEffect,power);
}
KitItemBannerData bannerData = null;
if(config.contains(path+".banner_data")) {
List<String> patterns = null;
String baseColor = null;
if(config.contains(path+".banner_data.patterns")) {
patterns = config.getStringList(path+".banner_data.patterns");
}
if(config.contains(path+".banner_data.base_color")) {
baseColor = config.getString(path+".banner_data.base_color");
}
bannerData = new KitItemBannerData(patterns,baseColor);
}
KitItemBookData bookData = null;
if(config.contains(path+".book_data")) {
List<String> pages = config.getStringList(path+".book_data.pages");
String author = null;
String generation = null;
String title = null;
if(config.contains(path+".book_data.author")) {
author = config.getString(path+".book_data.author");
}
if(config.contains(path+".book_data.generation")) {
generation = config.getString(path+".book_data.generation");
}
if(config.contains(path+".book_data.title")) {
title = config.getString(path+".book_data.title");
}
bookData = new KitItemBookData(pages,author,generation,title);
}
KitItemTrimData trimData = null;
if(config.contains(path+".trim_data")){
String material = config.getString(path+".trim_data.material");
String pattern = config.getString(path+".trim_data.pattern");
trimData = new KitItemTrimData(pattern,material);
}
KitItem kitItem = new KitItem(id);
kitItem.setName(name);
kitItem.setLore(lore);
kitItem.setAmount(amount);
kitItem.setDurability(durability);
kitItem.setCustomModelData(customModelData);
kitItem.setColor(color);
kitItem.setEnchants(enchants);
kitItem.setFlags(flags);
kitItem.setBookEnchants(bookEnchants);
kitItem.setNbt(nbtList);
kitItem.setAttributes(attributes);
kitItem.setCanPlace(canPlace);
kitItem.setCanDestroy(canDestroy);
kitItem.setSkullData(skullData);
kitItem.setPotionData(potionData);
kitItem.setFireworkData(fireworkData);
kitItem.setBannerData(bannerData);
kitItem.setBookData(bookData);
kitItem.setTrimData(trimData);
kitItem.setOffhand(offhand); kitItem.setOffhand(offhand);
kitItem.setPreviewSlot(previewSlot); kitItem.setPreviewSlot(previewSlot);

View file

@ -65,7 +65,7 @@ public class KitsManager {
} }
} }
public void createKit(String kitName,Player player){ public void createKit(String kitName,Player player,boolean saveOriginalItems){
Kit kit = getKitByName(kitName); Kit kit = getKitByName(kitName);
FileConfiguration messagesFile = plugin.getConfigsManager().getMessagesConfigManager().getConfig(); FileConfiguration messagesFile = plugin.getConfigsManager().getMessagesConfigManager().getConfig();
MainConfigManager mainConfigManager = plugin.getConfigsManager().getMainConfigManager(); MainConfigManager mainConfigManager = plugin.getConfigsManager().getMainConfigManager();
@ -86,7 +86,7 @@ public class KitsManager {
continue; continue;
} }
KitItem kitItem = kitItemManager.createKitItemFromItemStack(item); KitItem kitItem = kitItemManager.createKitItemFromItemStack(item,saveOriginalItems);
//Check for armor/offhand //Check for armor/offhand
if(i >= 36 && i<=39){ if(i >= 36 && i<=39){
@ -109,6 +109,7 @@ public class KitsManager {
kit.setItems(items); kit.setItems(items);
kit.setDefaults(mainConfigManager.getNewKitDefault()); kit.setDefaults(mainConfigManager.getNewKitDefault());
kit.setAutoArmor(hasArmor); kit.setAutoArmor(hasArmor);
kit.setSaveOriginalItems(saveOriginalItems);
kits.add(kit); kits.add(kit);
plugin.getConfigsManager().getKitsConfigManager().saveConfig(kit); plugin.getConfigsManager().getKitsConfigManager().saveConfig(kit);

View file

@ -62,7 +62,7 @@ public class PlayerDataManager {
public PlayerData getPlayerByName(String name){ public PlayerData getPlayerByName(String name){
for(PlayerData player : players){ for(PlayerData player : players){
if(player.getName().equals(name)){ if(player.getName() != null && player.getName().equals(name)){
return player; return player;
} }
} }
@ -182,7 +182,7 @@ public class PlayerDataManager {
playerData.setModified(true); playerData.setModified(true);
players.add(playerData); players.add(playerData);
}else{ }else{
if(!playerData.getName().equals(player.getName())){ if(playerData.getName() == null || !playerData.getName().equals(player.getName())){
playerData.setName(player.getName()); playerData.setName(player.getName());
playerData.setModified(true); playerData.setModified(true);
} }

View file

@ -94,6 +94,9 @@ public class VerifyManager {
} }
for(KitItem kitItem : allKitItems){ for(KitItem kitItem : allKitItems){
if(kitItem != null){ if(kitItem != null){
if(kitItem.getOriginalItem() != null){
continue;
}
if(!verifyItem(kitItem.getId())){ if(!verifyItem(kitItem.getId())){
errors.add(new PKInvalidItem(kit.getName()+".yml",null,true,kitItem.getId())); errors.add(new PKInvalidItem(kit.getName()+".yml",null,true,kitItem.getId()));
criticalErrors = true; criticalErrors = true;

View file

@ -110,7 +110,7 @@ public class InventoryEditDisplayManager {
KitItem kitItem = null; KitItem kitItem = null;
if(item != null && !item.getType().equals(Material.AIR)){ if(item != null && !item.getType().equals(Material.AIR)){
kitItem = plugin.getKitItemManager().createKitItemFromItemStack(item); kitItem = plugin.getKitItemManager().createKitItemFromItemStack(item,false);
} }
Kit kit = plugin.getKitsManager().getKitByName(inventoryPlayer.getKitName()); Kit kit = plugin.getKitsManager().getKitByName(inventoryPlayer.getKitName());

View file

@ -159,12 +159,12 @@ public class InventoryEditKitItemsManager {
continue; continue;
} }
KitItem kitItem = kitItemManager.createKitItemFromItemStack(item); KitItem kitItem = kitItemManager.createKitItemFromItemStack(item,kit.isSaveOriginalItems());
//Check offhand //Check offhand
String offhand = ItemUtils.getTagStringItem(plugin,item,"playerkits_offhand"); String offhand = ItemUtils.getTagStringItem(plugin,item,"playerkits_offhand");
if(offhand != null){ if(offhand != null){
kitItem.setOffhand(true); kitItem.setOffhand(true);
kitItem.removeOffHandFromEditInventory(); kitItem.removeOffHandFromEditInventory(plugin);
} }
//Preview position //Preview position

View file

@ -215,7 +215,12 @@ public class InventoryEditManager {
lore.add("&7Current Items:"); lore.add("&7Current Items:");
int max = 20; int max = 20;
for(KitItem kitItem : kit.getItems()){ for(KitItem kitItem : kit.getItems()){
lore.add(MessagesManager.getColoredMessage("&8- &fx"+kitItem.getAmount()+" "+kitItem.getId())); if(kitItem.getOriginalItem() != null){
ItemStack originalItem = kitItem.getOriginalItem();
lore.add(MessagesManager.getColoredMessage("&8- &fx"+originalItem.getAmount()+" "+originalItem.getType()));
}else{
lore.add(MessagesManager.getColoredMessage("&8- &fx"+kitItem.getAmount()+" "+kitItem.getId()));
}
max--; max--;
if(max <= 0){ if(max <= 0){
break; break;

View file

@ -16,6 +16,7 @@ public class Kit {
private ArrayList<KitItem> items; private ArrayList<KitItem> items;
private ArrayList<KitAction> claimActions; private ArrayList<KitAction> claimActions;
private ArrayList<KitAction> errorActions; private ArrayList<KitAction> errorActions;
private boolean saveOriginalItems;
private KitItem displayItemDefault; private KitItem displayItemDefault;
private KitItem displayItemNoPermission; private KitItem displayItemNoPermission;
@ -31,6 +32,7 @@ public class Kit {
this.cooldown = 0; this.cooldown = 0;
this.autoArmor = false; this.autoArmor = false;
this.oneTime = false; this.oneTime = false;
this.saveOriginalItems = false;
} }
public String getName() { public String getName() {
@ -154,6 +156,14 @@ public class Kit {
this.customPermission = customPermission; this.customPermission = customPermission;
} }
public boolean isSaveOriginalItems() {
return saveOriginalItems;
}
public void setSaveOriginalItems(boolean saveOriginalItems) {
this.saveOriginalItems = saveOriginalItems;
}
public boolean playerHasPermission(CommandSender player){ public boolean playerHasPermission(CommandSender player){
if(permissionRequired){ if(permissionRequired){
if(customPermission != null){ if(customPermission != null){

View file

@ -1,5 +1,10 @@
package pk.ajneb97.model.item; package pk.ajneb97.model.item;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import pk.ajneb97.PlayerKits2;
import pk.ajneb97.utils.ItemUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -34,6 +39,8 @@ public class KitItem{
private boolean offhand; private boolean offhand;
private int previewSlot; private int previewSlot;
private ItemStack originalItem;
public KitItem(String id) { public KitItem(String id) {
this.id = id; this.id = id;
this.amount = 1; this.amount = 1;
@ -43,6 +50,19 @@ public class KitItem{
this.previewSlot = -1; this.previewSlot = -1;
} }
public KitItem(ItemStack item){
this.previewSlot = -1;
this.originalItem = item;
}
public ItemStack getOriginalItem() {
return originalItem;
}
public void setOriginalItem(ItemStack originalItem) {
this.originalItem = originalItem;
}
public String getId() { public String getId() {
return id; return id;
} }
@ -219,8 +239,18 @@ public class KitItem{
this.previewSlot = previewSlot; this.previewSlot = previewSlot;
} }
public void removeOffHandFromEditInventory(){ public void removeOffHandFromEditInventory(PlayerKits2 plugin){
//Assumes that has the lore and the nbt //Assumes that has the lore and the nbt
if(originalItem != null){
ItemMeta meta = originalItem.getItemMeta();
List<String> lore = meta.getLore();
lore.remove(lore.size()-1);
lore.remove(lore.size()-1);
meta.setLore(lore);
originalItem.setItemMeta(meta);
originalItem = ItemUtils.removeTagItem(plugin,originalItem,"playerkits_offhand");
return;
}
lore.remove(lore.size()-1); lore.remove(lore.size()-1);
lore.remove(lore.size()-1); lore.remove(lore.size()-1);
for(int i=0;i<nbt.size();i++){ for(int i=0;i<nbt.size();i++){

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>" commandCreateError: "&cYou need to use: &7/kit create <name> (optional)original"
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.9.4 version: 1.10.1
name: PlayerKits2 name: PlayerKits2
api-version: 1.13 api-version: 1.13
softdepend: [Vault,PlaceholderAPI] softdepend: [Vault,PlaceholderAPI]