1.7.1
This commit is contained in:
parent
f41f74033e
commit
23384a49df
6 changed files with 273 additions and 7 deletions
|
|
@ -39,6 +39,8 @@ public class MainCommand implements CommandExecutor, TabCompleter {
|
||||||
delete(sender,args,messagesConfig,msgManager);
|
delete(sender,args,messagesConfig,msgManager);
|
||||||
}else if(args[0].equalsIgnoreCase("reset")) {
|
}else if(args[0].equalsIgnoreCase("reset")) {
|
||||||
reset(sender,args,messagesConfig,msgManager);
|
reset(sender,args,messagesConfig,msgManager);
|
||||||
|
}else if(args[0].equalsIgnoreCase("migrate")) {
|
||||||
|
migrate(sender,args,messagesConfig,msgManager);
|
||||||
}else{
|
}else{
|
||||||
help(sender,msgManager,messagesConfig);
|
help(sender,msgManager,messagesConfig);
|
||||||
}
|
}
|
||||||
|
|
@ -69,6 +71,8 @@ public class MainCommand implements CommandExecutor, TabCompleter {
|
||||||
edit(player,args,messagesConfig,msgManager);
|
edit(player,args,messagesConfig,msgManager);
|
||||||
}else if(args[0].equalsIgnoreCase("verify")){
|
}else if(args[0].equalsIgnoreCase("verify")){
|
||||||
verify(player,messagesConfig,msgManager);
|
verify(player,messagesConfig,msgManager);
|
||||||
|
}else if(args[0].equalsIgnoreCase("migrate")) {
|
||||||
|
migrate(sender,args,messagesConfig,msgManager);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
// /kit <kit> (short command)
|
// /kit <kit> (short command)
|
||||||
|
|
@ -113,6 +117,15 @@ public class MainCommand implements CommandExecutor, TabCompleter {
|
||||||
sender.sendMessage(MessagesManager.getColoredMessage("&7[ [ &8[&bPlayerKits&a²&8] &7] ]"));
|
sender.sendMessage(MessagesManager.getColoredMessage("&7[ [ &8[&bPlayerKits&a²&8] &7] ]"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void migrate(CommandSender sender,String[] args,FileConfiguration messagesConfig,MessagesManager msgManager){
|
||||||
|
if(!PlayerUtils.isPlayerKitsAdmin(sender)){
|
||||||
|
msgManager.sendMessage(sender,messagesConfig.getString("noPermissions"),true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
plugin.getMigrationManager().migrateKits(sender);
|
||||||
|
}
|
||||||
|
|
||||||
public void verify(Player player,FileConfiguration messagesConfig,MessagesManager msgManager){
|
public void verify(Player player,FileConfiguration messagesConfig,MessagesManager msgManager){
|
||||||
if(!PlayerUtils.isPlayerKitsAdmin(player)){
|
if(!PlayerUtils.isPlayerKitsAdmin(player)){
|
||||||
msgManager.sendMessage(player,messagesConfig.getString("noPermissions"),true);
|
msgManager.sendMessage(player,messagesConfig.getString("noPermissions"),true);
|
||||||
|
|
@ -328,7 +341,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("verify");commands.add("migrate");
|
||||||
}
|
}
|
||||||
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())) {
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,7 @@ public class PlayerKits2 extends JavaPlugin {
|
||||||
private NMSManager nmsManager;
|
private NMSManager nmsManager;
|
||||||
private UpdateCheckerManager updateCheckerManager;
|
private UpdateCheckerManager updateCheckerManager;
|
||||||
private VerifyManager verifyManager;
|
private VerifyManager verifyManager;
|
||||||
|
private MigrationManager migrationManager;
|
||||||
|
|
||||||
private InventoryUpdateTaskManager inventoryUpdateTaskManager;
|
private InventoryUpdateTaskManager inventoryUpdateTaskManager;
|
||||||
private PlayerDataSaveTask playerDataSaveTask;
|
private PlayerDataSaveTask playerDataSaveTask;
|
||||||
|
|
@ -59,6 +60,8 @@ public class PlayerKits2 extends JavaPlugin {
|
||||||
this.configsManager = new ConfigsManager(this);
|
this.configsManager = new ConfigsManager(this);
|
||||||
this.configsManager.configure();
|
this.configsManager.configure();
|
||||||
|
|
||||||
|
this.migrationManager = new MigrationManager(this);
|
||||||
|
|
||||||
this.inventoryUpdateTaskManager = new InventoryUpdateTaskManager(this);
|
this.inventoryUpdateTaskManager = new InventoryUpdateTaskManager(this);
|
||||||
this.inventoryUpdateTaskManager.start();
|
this.inventoryUpdateTaskManager.start();
|
||||||
|
|
||||||
|
|
@ -170,6 +173,9 @@ public class PlayerKits2 extends JavaPlugin {
|
||||||
return verifyManager;
|
return verifyManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public MigrationManager getMigrationManager() {
|
||||||
|
return migrationManager;
|
||||||
|
}
|
||||||
|
|
||||||
public void updateMessage(UpdateCheckerResult result){
|
public void updateMessage(UpdateCheckerResult result){
|
||||||
if(!result.isError()){
|
if(!result.isError()){
|
||||||
|
|
|
||||||
|
|
@ -15,10 +15,7 @@ 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 java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
public class KitItemManager {
|
public class KitItemManager {
|
||||||
|
|
||||||
|
|
@ -432,7 +429,133 @@ public class KitItemManager {
|
||||||
return kitItem;
|
return kitItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public KitItem getKitItemFromV1Config(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") ? Integer.parseInt(config.getString(path+".amount")) : 1;
|
||||||
|
short durability = config.contains(path+".durability") ? Short.parseShort(config.getString(path+".durability")) : 0;
|
||||||
|
int customModelData = config.contains(path+".custom_model_data") ? Integer.parseInt(config.getString(path+".custom_model_data")) : 0;
|
||||||
|
int color = config.contains(path+".color") ? Integer.parseInt(config.getString(path+".color")) : 0;
|
||||||
|
List<String> enchants = config.contains(path+".enchants") ? config.getStringList(path+".enchants") : null;
|
||||||
|
List<String> flags = config.contains(path+".hide-flags") ? config.getStringList(path+".hide-flags") : null;
|
||||||
|
List<String> bookEnchants = config.contains(path+".book-enchants") ? config.getStringList(path+".book-enchants") : null;
|
||||||
|
|
||||||
|
KitItemPotionData potionData = null;
|
||||||
|
if(config.contains(path+".potion-type")) {
|
||||||
|
List<String> potionEffects = null;
|
||||||
|
boolean extended = false;
|
||||||
|
boolean upgraded = false;
|
||||||
|
String potionType = null;
|
||||||
|
int potionColor = 0;
|
||||||
|
if(config.contains(path+".potion-effects")) {
|
||||||
|
potionEffects = config.getStringList(path+".potion-effects");
|
||||||
|
}
|
||||||
|
if(config.contains(path+".potion-extended")) {
|
||||||
|
extended = Boolean.parseBoolean(config.getString(path+".potion-extended"));
|
||||||
|
}
|
||||||
|
if(config.contains(path+".potion-upgraded")) {
|
||||||
|
upgraded = Boolean.parseBoolean(config.getString(path+".potion-upgraded"));
|
||||||
|
}
|
||||||
|
potionType = config.getString(path+".potion-type");
|
||||||
|
if(config.contains(path+".potion-color")) {
|
||||||
|
potionColor = config.getInt(path+".potion-color");
|
||||||
|
}
|
||||||
|
|
||||||
|
potionData = new KitItemPotionData(upgraded,extended,potionType,potionColor,potionEffects);
|
||||||
|
}
|
||||||
|
KitItemBookData bookData = null;
|
||||||
|
if(config.contains(path+".book-title")) {
|
||||||
|
List<String> pages = config.getStringList(path+".book-pages");
|
||||||
|
String author = null;
|
||||||
|
String generation = null;
|
||||||
|
String title = null;
|
||||||
|
if(config.contains(path+".book-author")) {
|
||||||
|
author = config.getString(path+".book-author");
|
||||||
|
}
|
||||||
|
if(config.contains(path+".book-generation")) {
|
||||||
|
generation = config.getString(path+".book-generation");
|
||||||
|
}
|
||||||
|
title = config.getString(path+".book-title");
|
||||||
|
|
||||||
|
bookData = new KitItemBookData(pages,author,generation,title);
|
||||||
|
}
|
||||||
|
KitItemFireworkData fireworkData = null;
|
||||||
|
if(config.contains(path+".firework-effects")) {
|
||||||
|
List<String> rocketEffects = null;
|
||||||
|
int power = 0;
|
||||||
|
rocketEffects = config.getStringList(path+".firework-effects");
|
||||||
|
if(config.contains(path+".firework-power")) {
|
||||||
|
power = Integer.parseInt(config.getString(path+".firework-power"));
|
||||||
|
}
|
||||||
|
|
||||||
|
fireworkData = new KitItemFireworkData(rocketEffects,null,power);
|
||||||
|
}
|
||||||
|
KitItemBannerData bannerData = null;
|
||||||
|
if(config.contains(path+".banner-pattern")) {
|
||||||
|
List<String> patterns = null;
|
||||||
|
String baseColor = null;
|
||||||
|
String[] pattern = config.getString(path+".banner-pattern").split(";");
|
||||||
|
patterns = new ArrayList<>();
|
||||||
|
for(String p : pattern){
|
||||||
|
String[] pSep = p.split(":");
|
||||||
|
patterns.add(pSep[0]+";"+pSep[1]);
|
||||||
|
}
|
||||||
|
if(config.contains(path+".banner-color")) {
|
||||||
|
baseColor = config.getString(path+".banner-color");
|
||||||
|
}
|
||||||
|
|
||||||
|
bannerData = new KitItemBannerData(patterns,baseColor);
|
||||||
|
}
|
||||||
|
KitItemSkullData skullData = null;
|
||||||
|
if(config.contains(path+".skull-texture")) {
|
||||||
|
String skullTexture = null;
|
||||||
|
String skullId = null;
|
||||||
|
skullTexture = config.getString(path+".skull-texture");
|
||||||
|
skullId = UUID.randomUUID().toString();
|
||||||
|
skullData = new KitItemSkullData(null,skullTexture,skullId);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<String> nbtList = new ArrayList<>();
|
||||||
|
if(config.contains(path+".nbt")){
|
||||||
|
nbtList = config.getStringList(path+".nbt");
|
||||||
|
for(int i=0;i<nbtList.size();i++){
|
||||||
|
nbtList.set(i,nbtList.get(i).replace(";","|"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
List<String> attributes = new ArrayList<>();
|
||||||
|
if(config.contains(path+".attributes")){
|
||||||
|
for(String attributeName : config.getConfigurationSection(path+".attributes").getKeys(false)){
|
||||||
|
String attribute = config.getString(path+".attributes."+attributeName+".modifiers");
|
||||||
|
attributes.add(attribute);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean offhand = config.contains(path+".offhand") ? config.getBoolean(path+".offhand") : false;
|
||||||
|
|
||||||
|
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.setSkullData(skullData);
|
||||||
|
kitItem.setPotionData(potionData);
|
||||||
|
kitItem.setFireworkData(fireworkData);
|
||||||
|
kitItem.setBannerData(bannerData);
|
||||||
|
kitItem.setBookData(bookData);
|
||||||
|
|
||||||
|
kitItem.setOffhand(offhand);
|
||||||
|
|
||||||
|
return kitItem;
|
||||||
|
}
|
||||||
|
|
||||||
public void replaceVariables(ItemStack item, ArrayList<KitVariable> variables){
|
public void replaceVariables(ItemStack item, ArrayList<KitVariable> variables){
|
||||||
if(item.hasItemMeta()){
|
if(item.hasItemMeta()){
|
||||||
|
|
|
||||||
|
|
@ -190,7 +190,8 @@ public class KitsManager {
|
||||||
|
|
||||||
//Requirements - Buy
|
//Requirements - Buy
|
||||||
KitRequirements kitRequirements = kit.getRequirements();
|
KitRequirements kitRequirements = kit.getRequirements();
|
||||||
if(!giveKitInstructions.isIgnoreRequirements() && kitRequirements != null){
|
if(!giveKitInstructions.isIgnoreRequirements() && kitRequirements != null &&
|
||||||
|
(kitRequirements.getPrice() != 0 || !kitRequirements.getExtraRequirements().isEmpty())){
|
||||||
if(!(kitRequirements.isOneTimeRequirements() && playerDataManager.isKitBought(player,kit.getName()))){
|
if(!(kitRequirements.isOneTimeRequirements() && playerDataManager.isKitBought(player,kit.getName()))){
|
||||||
if(!giveKitInstructions.isRequirementsSatisfied()){
|
if(!giveKitInstructions.isRequirementsSatisfied()){
|
||||||
//Player must buy it first
|
//Player must buy it first
|
||||||
|
|
|
||||||
123
src/main/java/pk/ajneb97/managers/MigrationManager.java
Normal file
123
src/main/java/pk/ajneb97/managers/MigrationManager.java
Normal file
|
|
@ -0,0 +1,123 @@
|
||||||
|
package pk.ajneb97.managers;
|
||||||
|
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
|
import pk.ajneb97.PlayerKits2;
|
||||||
|
import pk.ajneb97.configs.KitsConfigManager;
|
||||||
|
import pk.ajneb97.model.Kit;
|
||||||
|
import pk.ajneb97.model.KitAction;
|
||||||
|
import pk.ajneb97.model.KitRequirements;
|
||||||
|
import pk.ajneb97.model.item.KitItem;
|
||||||
|
import pk.ajneb97.model.item.KitItemSkullData;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class MigrationManager {
|
||||||
|
|
||||||
|
private PlayerKits2 plugin;
|
||||||
|
public MigrationManager(PlayerKits2 plugin){
|
||||||
|
this.plugin = plugin;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void migrateKits(CommandSender sender){
|
||||||
|
File bStatsFolder = new File(plugin.getDataFolder().getParentFile(), "PlayerKits");
|
||||||
|
File configFile = new File(bStatsFolder, "kits.yml");
|
||||||
|
if(!configFile.exists()){
|
||||||
|
sender.sendMessage(PlayerKits2.prefix+MessagesManager.getColoredMessage(" &cPlayerKits1 kits.yml file not found."));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
KitItemManager kitItemManager = plugin.getKitItemManager();
|
||||||
|
YamlConfiguration config = YamlConfiguration.loadConfiguration(configFile);
|
||||||
|
Kit defaultValues = plugin.getConfigsManager().getMainConfigManager().getNewKitDefault();
|
||||||
|
KitsConfigManager kitsConfigManager = plugin.getConfigsManager().getKitsConfigManager();
|
||||||
|
if(config.contains("Kits")){
|
||||||
|
for(String kitName : config.getConfigurationSection("Kits").getKeys(false)){
|
||||||
|
try{
|
||||||
|
String path = "Kits."+kitName;
|
||||||
|
Kit kit = new Kit(kitName);
|
||||||
|
|
||||||
|
boolean oneTime = config.contains(path+".one_time") ? config.getBoolean(path+".one_time") : false;
|
||||||
|
int cooldown = config.contains(path+".cooldown") ? config.getInt(path+".cooldown") : 0;
|
||||||
|
boolean permissionRequired = config.contains(path+".permission");
|
||||||
|
boolean autoArmor = config.contains(path+".auto_armor") ? config.getBoolean(path+".auto_armor") : false;
|
||||||
|
|
||||||
|
ArrayList<KitAction> claimActions = new ArrayList<>();
|
||||||
|
if(config.contains(path+".Commands")){
|
||||||
|
for(String command : config.getStringList(path+".Commands")){
|
||||||
|
claimActions.add(new KitAction("console_command: "+command,null,false,false));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ArrayList<KitItem> items = new ArrayList<>();
|
||||||
|
if(config.contains(path+".Items")){
|
||||||
|
for(String key : config.getConfigurationSection(path+".Items").getKeys(false)){
|
||||||
|
String pathItem = path+".Items."+key;
|
||||||
|
KitItem kitItem = kitItemManager.getKitItemFromV1Config(config,pathItem);
|
||||||
|
items.add(kitItem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
KitRequirements kitRequirements = null;
|
||||||
|
if(config.contains(path+".price")){
|
||||||
|
kitRequirements = new KitRequirements();
|
||||||
|
kitRequirements.setPrice(config.getInt(path+".price"));
|
||||||
|
boolean oneTimeBuy = config.contains(path+".one_time_buy") ? config.getBoolean(path+".one_time_buy") : false;
|
||||||
|
kitRequirements.setOneTimeRequirements(oneTimeBuy);
|
||||||
|
}
|
||||||
|
|
||||||
|
kit.setDisplayItemDefault(getDisplayItem(config,path));
|
||||||
|
if(config.contains(path+".noPermissionsItem")){
|
||||||
|
kit.setDisplayItemNoPermission(getDisplayItem(config,path+".noPermissionsItem"));
|
||||||
|
}
|
||||||
|
kit.setDisplayItemCooldown(defaultValues.getDisplayItemCooldown());
|
||||||
|
kit.setDisplayItemOneTime(defaultValues.getDisplayItemOneTime());
|
||||||
|
kit.setCooldown(cooldown);
|
||||||
|
kit.setAutoArmor(autoArmor);
|
||||||
|
kit.setOneTime(oneTime);
|
||||||
|
kit.setPermissionRequired(permissionRequired);
|
||||||
|
kit.setItems(items);
|
||||||
|
kit.setClaimActions(claimActions);
|
||||||
|
kit.setErrorActions(new ArrayList<>());
|
||||||
|
|
||||||
|
kit.setRequirements(kitRequirements);
|
||||||
|
|
||||||
|
kitsConfigManager.saveConfig(kit);
|
||||||
|
|
||||||
|
sender.sendMessage(PlayerKits2.prefix+MessagesManager.getColoredMessage(" &aKit &7"+kitName+" &amigrated."));
|
||||||
|
}catch(Exception e){
|
||||||
|
sender.sendMessage(PlayerKits2.prefix+MessagesManager.getColoredMessage(" &cError while trying to migrate kit &7"+kitName+"&c, check console."));
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
sender.sendMessage(PlayerKits2.prefix+MessagesManager.getColoredMessage(" &cNo kits found."));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
plugin.getConfigsManager().reload();
|
||||||
|
sender.sendMessage(PlayerKits2.prefix+MessagesManager.getColoredMessage(" &aMigration completed."));
|
||||||
|
}
|
||||||
|
|
||||||
|
public KitItem getDisplayItem(YamlConfiguration config,String path){
|
||||||
|
KitItem kitItem = new KitItem(config.getString(path+".display_item"));
|
||||||
|
String name = config.contains(path+".display_name") ? config.getString(path+".display_name") : null;
|
||||||
|
List<String> lore = config.contains(path+".display_lore") ? config.getStringList(path+".display_lore") : null;
|
||||||
|
int customModelData = config.contains(path+".display_item_custom_model_data") ? config.getInt(path+".display_item_custom_model_data") : 0;
|
||||||
|
|
||||||
|
KitItemSkullData skullData = null;
|
||||||
|
if(config.contains(path+".display_item_skulldata")) {
|
||||||
|
String[] fullSkull = config.getString(path+".display_item_skulldata").split(";");
|
||||||
|
skullData = new KitItemSkullData(null,fullSkull[0],fullSkull[1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
kitItem.setName(name);
|
||||||
|
kitItem.setLore(lore);
|
||||||
|
kitItem.setCustomModelData(customModelData);
|
||||||
|
kitItem.setSkullData(skullData);
|
||||||
|
return kitItem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
main: pk.ajneb97.PlayerKits2
|
main: pk.ajneb97.PlayerKits2
|
||||||
version: 1.6.1
|
version: 1.7.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