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("&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 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 give <kit> <player> &8Gives a kit to a player."));
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){
// /kit create <kit>
// /kit create <kit> (optional)<original>
if(!PlayerUtils.isPlayerKitsAdmin(player)){
msgManager.sendMessage(player,messagesConfig.getString("noPermissions"),true);
return;
@ -312,7 +312,12 @@ public class MainCommand implements CommandExecutor, TabCompleter {
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){
@ -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("permission_required",kit.isPermissionRequired());
config.set("custom_permission",kit.getCustomPermission());
config.set("save_original_items",kit.isSaveOriginalItems());
KitItemManager kitItemManager = plugin.getKitItemManager();
int currentPos = 1;
@ -233,6 +234,7 @@ public class KitsConfigManager {
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 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>();
if(config.contains(mainPath+"items")){
@ -281,6 +283,7 @@ public class KitsConfigManager {
kit.setDisplayItemOneTime(displayItemOneTime);
kit.setDisplayItemOneTimeRequirements(displayItemOneTimeRequirements);
kit.setRequirements(kitRequirements);
kit.setSaveOriginalItems(saveOriginalItems);
return kit;
}

View file

@ -27,7 +27,11 @@ public class KitItemManager {
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.setAmount(item.getAmount());
@ -119,7 +123,12 @@ public class KitItemManager {
return kitItem;
}
public ItemStack createItemFromKitItem(KitItem kitItem,Player player){
if(kitItem.getOriginalItem() != null){
return kitItem.getOriginalItem().clone();
}
ItemStack item = ItemUtils.createItemFromID(kitItem.getId());
item.setAmount(kitItem.getAmount());
@ -240,6 +249,9 @@ public class KitItemManager {
}
public void saveKitItemOnConfig(KitItem item,FileConfiguration config,String path){
if(item.getOriginalItem() != null){
config.set(path+".original",item.getOriginalItem().clone());
}else{
config.set(path+".id", item.getId());
config.set(path+".name", item.getName());
config.set(path+".amount", item.getAmount());
@ -330,6 +342,7 @@ public class KitItemManager {
config.set(path+".trim_data.pattern", trimData.getPattern());
config.set(path+".trim_data.material", trimData.getMaterial());
}
}
if(item.isOffhand()){
config.set(path+".offhand", item.isOffhand());
@ -340,6 +353,12 @@ public class KitItemManager {
}
public KitItem getKitItemFromConfig(FileConfiguration config, String path){
boolean offhand = config.contains(path+".offhand") ? config.getBoolean(path+".offhand") : false;
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;
@ -355,9 +374,6 @@ public class KitItemManager {
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;
int previewSlot = config.contains(path+".preview_slot") ? config.getInt(path+".preview_slot") : -1;
KitItemSkullData skullData = null;
if(config.contains(path+".skull_data")) {
String skullTexture = null;
@ -454,7 +470,7 @@ public class KitItemManager {
trimData = new KitItemTrimData(pattern,material);
}
KitItem kitItem = new KitItem(id);
kitItem = new KitItem(id);
kitItem.setName(name);
kitItem.setLore(lore);
kitItem.setAmount(amount);
@ -474,6 +490,7 @@ public class KitItemManager {
kitItem.setBannerData(bannerData);
kitItem.setBookData(bookData);
kitItem.setTrimData(trimData);
}
kitItem.setOffhand(offhand);
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);
FileConfiguration messagesFile = plugin.getConfigsManager().getMessagesConfigManager().getConfig();
MainConfigManager mainConfigManager = plugin.getConfigsManager().getMainConfigManager();
@ -86,7 +86,7 @@ public class KitsManager {
continue;
}
KitItem kitItem = kitItemManager.createKitItemFromItemStack(item);
KitItem kitItem = kitItemManager.createKitItemFromItemStack(item,saveOriginalItems);
//Check for armor/offhand
if(i >= 36 && i<=39){
@ -109,6 +109,7 @@ public class KitsManager {
kit.setItems(items);
kit.setDefaults(mainConfigManager.getNewKitDefault());
kit.setAutoArmor(hasArmor);
kit.setSaveOriginalItems(saveOriginalItems);
kits.add(kit);
plugin.getConfigsManager().getKitsConfigManager().saveConfig(kit);

View file

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

View file

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

View file

@ -110,7 +110,7 @@ public class InventoryEditDisplayManager {
KitItem kitItem = null;
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());

View file

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

View file

@ -215,7 +215,12 @@ public class InventoryEditManager {
lore.add("&7Current Items:");
int max = 20;
for(KitItem kitItem : kit.getItems()){
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--;
if(max <= 0){
break;

View file

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

View file

@ -1,5 +1,10 @@
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.List;
@ -34,6 +39,8 @@ public class KitItem{
private boolean offhand;
private int previewSlot;
private ItemStack originalItem;
public KitItem(String id) {
this.id = id;
this.amount = 1;
@ -43,6 +50,19 @@ public class KitItem{
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() {
return id;
}
@ -219,8 +239,18 @@ public class KitItem{
this.previewSlot = previewSlot;
}
public void removeOffHandFromEditInventory(){
public void removeOffHandFromEditInventory(PlayerKits2 plugin){
//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);
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%"
commandGiveCorrect: "&aKit &7%kit% &agiven to &e%player%&a!"
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>"
commandResetError: "&cYou need to use: &7/kit reset <kit> <player>"
commandEditError: "&cYou need to use: &7/kit edit <kit>"

View file

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