1.2.1
This commit is contained in:
parent
d9d9128539
commit
7b6fc59673
15 changed files with 354 additions and 10 deletions
|
|
@ -64,6 +64,8 @@ public class MainCommand implements CommandExecutor, TabCompleter {
|
|||
reset(sender,args,messagesConfig,msgManager);
|
||||
}else if(args[0].equalsIgnoreCase("edit")) {
|
||||
edit(player,args,messagesConfig,msgManager);
|
||||
}else if(args[0].equalsIgnoreCase("verify")){
|
||||
verify(player,messagesConfig,msgManager);
|
||||
}
|
||||
else{
|
||||
// /kit <kit> (short command)
|
||||
|
|
@ -76,6 +78,10 @@ public class MainCommand implements CommandExecutor, TabCompleter {
|
|||
}
|
||||
}else{
|
||||
// /kit
|
||||
if(plugin.getVerifyManager().isCriticalErrors()){
|
||||
msgManager.sendMessage(player,messagesConfig.getString("pluginCriticalErrors"),true);
|
||||
return true;
|
||||
}
|
||||
plugin.getInventoryManager().openInventory(new InventoryPlayer(player,"main_inventory"));
|
||||
}
|
||||
|
||||
|
|
@ -98,10 +104,19 @@ public class MainCommand implements CommandExecutor, TabCompleter {
|
|||
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 reload &8Reloads the config."));
|
||||
sender.sendMessage(MessagesManager.getColoredMessage("&6/kit verify &8Checks the plugin for errors."));
|
||||
sender.sendMessage(MessagesManager.getColoredMessage(" "));
|
||||
sender.sendMessage(MessagesManager.getColoredMessage("&7[ [ &8[&bPlayerKits&a²&8] &7] ]"));
|
||||
}
|
||||
|
||||
public void verify(Player player,FileConfiguration messagesConfig,MessagesManager msgManager){
|
||||
if(!PlayerUtils.isPlayerKitsAdmin(player)){
|
||||
msgManager.sendMessage(player,messagesConfig.getString("noPermissions"),true);
|
||||
return;
|
||||
}
|
||||
plugin.getVerifyManager().sendVerification(player);
|
||||
}
|
||||
|
||||
public void reload(CommandSender sender,String[] args,FileConfiguration messagesConfig,MessagesManager msgManager){
|
||||
if(!PlayerUtils.isPlayerKitsAdmin(sender)){
|
||||
msgManager.sendMessage(sender,messagesConfig.getString("noPermissions"),true);
|
||||
|
|
@ -272,6 +287,7 @@ public class MainCommand implements CommandExecutor, TabCompleter {
|
|||
if(PlayerUtils.isPlayerKitsAdmin(sender)){
|
||||
commands.add("give");commands.add("delete");commands.add("create");
|
||||
commands.add("reload");commands.add("reset");commands.add("edit");
|
||||
commands.add("verify");
|
||||
}
|
||||
for(String c : commands) {
|
||||
if(args[0].isEmpty() || c.startsWith(args[0].toLowerCase())) {
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ public class PlayerKits2 extends JavaPlugin {
|
|||
private InventoryEditManager inventoryEditManager;
|
||||
private NMSManager nmsManager;
|
||||
private UpdateCheckerManager updateCheckerManager;
|
||||
private VerifyManager verifyManager;
|
||||
|
||||
private InventoryUpdateTaskManager inventoryUpdateTaskManager;
|
||||
private PlayerDataSaveTask playerDataSaveTask;
|
||||
|
|
@ -56,6 +57,9 @@ public class PlayerKits2 extends JavaPlugin {
|
|||
this.inventoryUpdateTaskManager = new InventoryUpdateTaskManager(this);
|
||||
this.inventoryUpdateTaskManager.start();
|
||||
|
||||
this.verifyManager = new VerifyManager(this);
|
||||
this.verifyManager.verify();
|
||||
|
||||
if(configsManager.getMainConfigManager().isMySQL()){
|
||||
mySQLConnection = new MySQLConnection(this);
|
||||
mySQLConnection.setupMySql();
|
||||
|
|
@ -147,12 +151,16 @@ public class PlayerKits2 extends JavaPlugin {
|
|||
return updateCheckerManager;
|
||||
}
|
||||
|
||||
public VerifyManager getVerifyManager() {
|
||||
return verifyManager;
|
||||
}
|
||||
|
||||
public void updateMessage(UpdateCheckerResult result){
|
||||
if(!result.isError()){
|
||||
String latestVersion = result.getLatestVersion();
|
||||
if(latestVersion != null){
|
||||
Bukkit.getConsoleSender().sendMessage(MessagesManager.getColoredMessage("&cThere is a new version available. &e(&7"+latestVersion+"&e)"));
|
||||
Bukkit.getConsoleSender().sendMessage(MessagesManager.getColoredMessage("&cYou can download it at: &fhttps://www.spigotmc.org/resources/112616/"));
|
||||
Bukkit.getConsoleSender().sendMessage(MessagesManager.getColoredMessage("&cYou can download it at: &fhttps://modrinth.com/plugin/playerkits-2"));
|
||||
}
|
||||
}else{
|
||||
Bukkit.getConsoleSender().sendMessage(MessagesManager.getColoredMessage(prefix+"&cError while checking update."));
|
||||
|
|
|
|||
|
|
@ -66,6 +66,8 @@ public class ConfigsManager {
|
|||
plugin.reloadPlayerDataSaveTask();
|
||||
}
|
||||
|
||||
plugin.getVerifyManager().verify();
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ public class MessagesConfigManager {
|
|||
this.plugin = plugin;
|
||||
this.configFile = new CustomConfig("messages.yml",plugin,null, false);
|
||||
this.configFile.registerConfig();
|
||||
|
||||
checkUpdate();
|
||||
}
|
||||
|
||||
public void configure(){
|
||||
|
|
@ -38,6 +38,10 @@ public class MessagesConfigManager {
|
|||
this.plugin.setMessagesManager(msgManager);
|
||||
}
|
||||
|
||||
public void saveConfig(){
|
||||
configFile.saveConfig();
|
||||
}
|
||||
|
||||
public boolean reloadConfig(){
|
||||
if(!configFile.reloadConfig()){
|
||||
return false;
|
||||
|
|
@ -54,13 +58,11 @@ public class MessagesConfigManager {
|
|||
Path pathConfig = Paths.get(configFile.getRoute());
|
||||
try{
|
||||
String text = new String(Files.readAllBytes(pathConfig));
|
||||
/*
|
||||
if(!text.contains("register_commands:")){
|
||||
List<String> commands = new ArrayList<>();
|
||||
getConfig().set("Config.register_commands", commands);
|
||||
if(!text.contains("pluginCriticalErrors:")){
|
||||
getConfig().set("pluginCriticalErrors", "&cThe plugin has detected some errors. Check them using &7/kit verify");
|
||||
saveConfig();
|
||||
}
|
||||
*/
|
||||
|
||||
}catch(IOException e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ public class InventoryEditListener implements Listener {
|
|||
if(inventoryPlayer.getInventoryName().startsWith("edit_position")){
|
||||
invManager.getInventoryEditPositionManager().closeInventory(inventoryPlayer);
|
||||
}
|
||||
plugin.getVerifyManager().verify();
|
||||
}
|
||||
plugin.getInventoryEditManager().removeInventoryPlayer(player);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ public class PlayerListener implements Listener {
|
|||
String latestVersion = plugin.getUpdateCheckerManager().getLatestVersion();
|
||||
if(player.isOp() && plugin.getConfigsManager().getMainConfigManager().isUpdateNotify() && !plugin.version.equals(latestVersion)){
|
||||
player.sendMessage(MessagesManager.getColoredMessage(plugin.prefix+"&cThere is a new version available. &e(&7"+latestVersion+"&e)"));
|
||||
player.sendMessage(MessagesManager.getColoredMessage("&cYou can download it at: &ahttps://www.spigotmc.org/resources/112616/"));
|
||||
player.sendMessage(MessagesManager.getColoredMessage("&cYou can download it at: &ahttps://modrinth.com/plugin/playerkits-2"));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
103
src/main/java/pk/ajneb97/managers/VerifyManager.java
Normal file
103
src/main/java/pk/ajneb97/managers/VerifyManager.java
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
package pk.ajneb97.managers;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import pk.ajneb97.PlayerKits2;
|
||||
import pk.ajneb97.model.Kit;
|
||||
import pk.ajneb97.model.KitAction;
|
||||
import pk.ajneb97.model.inventory.ItemKitInventory;
|
||||
import pk.ajneb97.model.inventory.KitInventory;
|
||||
import pk.ajneb97.model.verify.PKBaseError;
|
||||
import pk.ajneb97.model.verify.PKInventoryInvalidKitError;
|
||||
import pk.ajneb97.model.verify.PKKitActionError;
|
||||
import pk.ajneb97.model.verify.PKKitDisplayItemError;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class VerifyManager {
|
||||
private PlayerKits2 plugin;
|
||||
private ArrayList<PKBaseError> errors;
|
||||
private boolean criticalErrors;
|
||||
public VerifyManager(PlayerKits2 plugin) {
|
||||
this.plugin = plugin;
|
||||
this.errors = new ArrayList<PKBaseError>();
|
||||
this.criticalErrors = false;
|
||||
}
|
||||
|
||||
public void sendVerification(Player player) {
|
||||
player.sendMessage(MessagesManager.getColoredMessage("&f&l- - - - - - - - &b&lPLAYERKITS 2 VERIFY &f&l- - - - - - - -"));
|
||||
player.sendMessage(MessagesManager.getColoredMessage(""));
|
||||
if(errors.isEmpty()) {
|
||||
player.sendMessage(MessagesManager.getColoredMessage("&aThere are no errors in the plugin ;)"));
|
||||
}else {
|
||||
player.sendMessage(MessagesManager.getColoredMessage("&e&oHover on the errors to see more information."));
|
||||
for(PKBaseError error : errors) {
|
||||
error.sendMessage(player);
|
||||
}
|
||||
}
|
||||
player.sendMessage(MessagesManager.getColoredMessage(""));
|
||||
player.sendMessage(MessagesManager.getColoredMessage("&f&l- - - - - - - - &b&lPLAYERKITS 2 VERIFY &f&l- - - - - - - -"));
|
||||
}
|
||||
|
||||
public void verify() {
|
||||
this.errors = new ArrayList<PKBaseError>();
|
||||
this.criticalErrors = false;
|
||||
|
||||
//CHECK KITS
|
||||
ArrayList<Kit> kits = plugin.getKitsManager().getKits();
|
||||
for(Kit kit : kits) {
|
||||
verifyKit(kit);
|
||||
}
|
||||
|
||||
//CHECK INVENTORIES
|
||||
ArrayList<KitInventory> inventories = plugin.getInventoryManager().getInventories();
|
||||
for(KitInventory inventory : inventories){
|
||||
verifyInventory(inventory);
|
||||
}
|
||||
}
|
||||
|
||||
public void verifyKit(Kit kit) {
|
||||
String kitName = kit.getName();
|
||||
if(kit.getDisplayItemDefault() == null || kit.getDisplayItemDefault().getId() == null){
|
||||
errors.add(new PKKitDisplayItemError(kitName+".yml",null,true,kitName));
|
||||
criticalErrors = true;
|
||||
}
|
||||
verifyActions(kit.getClaimActions(),"claim",kitName);
|
||||
verifyActions(kit.getErrorActions(),"error",kitName);
|
||||
}
|
||||
|
||||
public void verifyActions(ArrayList<KitAction> actions,String actionGroup,String kitName){
|
||||
for(int i=0;i<actions.size();i++){
|
||||
KitAction action = actions.get(i);
|
||||
String[] actionText = action.getAction().split(" ");
|
||||
String actionName = actionText[0];
|
||||
if(actionName.equals("console_command:") || actionName.equals("player_command:")
|
||||
|| actionName.equals("playsound:") || actionName.equals("actionbar:")
|
||||
|| actionName.equals("title:") || actionName.equals("firework:")){
|
||||
continue;
|
||||
}
|
||||
errors.add(new PKKitActionError(kitName+".yml",action.getAction(),false,kitName,actionGroup,(i+1)+""));
|
||||
}
|
||||
}
|
||||
|
||||
public void verifyInventory(KitInventory inventory){
|
||||
//Invalid kit on slot
|
||||
KitsManager kitsManager = plugin.getKitsManager();
|
||||
List<ItemKitInventory> items = inventory.getItems();
|
||||
for(ItemKitInventory item : items){
|
||||
String type = item.getType();
|
||||
if(type != null && type.startsWith("kit: ")){
|
||||
String kitName = type.replace("kit: ","");
|
||||
if(kitsManager.getKitByName(kitName) == null){
|
||||
errors.add(new PKInventoryInvalidKitError("inventory.yml",null,true,kitName,
|
||||
inventory.getName(),item.getSlotsString()));
|
||||
criticalErrors = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isCriticalErrors() {
|
||||
return criticalErrors;
|
||||
}
|
||||
}
|
||||
|
|
@ -89,7 +89,7 @@ public class InventoryEditDisplayManager {
|
|||
lore.add("&7inventory.");
|
||||
new InventoryItem(inv, 26, Material.EMERALD_BLOCK).name("&6&lSave Item").lore(lore).ready();
|
||||
|
||||
if(kitItem != null){
|
||||
if(kitItem != null && kitItem.getId() != null){
|
||||
inv.setItem(13,plugin.getKitItemManager().createItemFromKitItem(kitItem, inventoryPlayer.getPlayer()));
|
||||
}
|
||||
|
||||
|
|
|
|||
45
src/main/java/pk/ajneb97/model/verify/PKBaseError.java
Normal file
45
src/main/java/pk/ajneb97/model/verify/PKBaseError.java
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
package pk.ajneb97.model.verify;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public abstract class PKBaseError {
|
||||
|
||||
protected String file;
|
||||
protected String errorText;
|
||||
protected boolean critical;
|
||||
protected String prefix;
|
||||
|
||||
public PKBaseError(String file, String errorText, boolean critical){
|
||||
this.file = file;
|
||||
this.errorText = errorText;
|
||||
this.critical = critical;
|
||||
this.prefix = "&e⚠ ";;
|
||||
if(this.critical){
|
||||
this.prefix = "&c⚠ ";
|
||||
}
|
||||
}
|
||||
|
||||
public List<String> getFixedErrorText(){
|
||||
List<String> sepText = new ArrayList<String>();
|
||||
int currentPos = 0;
|
||||
for(int i=0;i<errorText.length();i++) {
|
||||
if(currentPos >= 35 && errorText.charAt(i) == ' ') {
|
||||
String m = errorText.substring(i-currentPos, i);
|
||||
currentPos = 0;
|
||||
sepText.add(m);
|
||||
}else {
|
||||
currentPos++;
|
||||
}
|
||||
if(i==errorText.length()-1) {
|
||||
String m = errorText.substring(i-currentPos+1, errorText.length());
|
||||
sepText.add(m);
|
||||
}
|
||||
}
|
||||
return sepText;
|
||||
}
|
||||
|
||||
public abstract void sendMessage(Player player);
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
package pk.ajneb97.model.verify;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import pk.ajneb97.utils.JSONMessage;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class PKInventoryInvalidKitError extends PKBaseError{
|
||||
|
||||
private String kitName;
|
||||
private String inventoryName;
|
||||
private String slot;
|
||||
|
||||
public PKInventoryInvalidKitError(String file, String errorText, boolean critical, String kitName, String inventoryName, String slot) {
|
||||
super(file, errorText, critical);
|
||||
this.kitName = kitName;
|
||||
this.inventoryName = inventoryName;
|
||||
this.slot = slot;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendMessage(Player player) {
|
||||
List<String> hover = new ArrayList<String>();
|
||||
|
||||
JSONMessage jsonMessage = new JSONMessage(player,prefix+"&7Invalid kit named &c"+kitName+" &7on file &c"+file);
|
||||
hover.add("&eTHIS IS AN ERROR!");
|
||||
hover.add("&fA kit that doesn't exists is present on");
|
||||
hover.add("&finventory &c"+inventoryName+" &fand slot &c"+slot+"&f.");
|
||||
|
||||
jsonMessage.hover(hover).send();
|
||||
}
|
||||
}
|
||||
40
src/main/java/pk/ajneb97/model/verify/PKKitActionError.java
Normal file
40
src/main/java/pk/ajneb97/model/verify/PKKitActionError.java
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
package pk.ajneb97.model.verify;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import pk.ajneb97.utils.JSONMessage;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class PKKitActionError extends PKBaseError{
|
||||
|
||||
private String kitName;
|
||||
private String actionGroup;
|
||||
private String actionId;
|
||||
|
||||
public PKKitActionError(String file, String errorText, boolean critical, String kitName, String actionGroup, String actionId) {
|
||||
super(file, errorText, critical);
|
||||
this.kitName = kitName;
|
||||
this.actionId = actionId;
|
||||
this.actionGroup = actionGroup;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendMessage(Player player) {
|
||||
List<String> hover = new ArrayList<String>();
|
||||
|
||||
JSONMessage jsonMessage = new JSONMessage(player,prefix+"&7Action (&c"+actionGroup+"&7,&c"+actionId+"&7)" +
|
||||
" &7on kit &c"+kitName+" &7is not valid.");
|
||||
hover.add("&eTHIS IS A WARNING!");
|
||||
hover.add("&fThe action defined for this event");
|
||||
hover.add("&fis probably not formatted correctly:");
|
||||
for(String m : getFixedErrorText()) {
|
||||
hover.add("&c"+m);
|
||||
}
|
||||
hover.add(" ");
|
||||
hover.add("&fRemember to use a valid action from this list:");
|
||||
hover.add("&ahttps://ajneb97.gitbook.io/playerkits-2/actions");
|
||||
|
||||
jsonMessage.hover(hover).send();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
package pk.ajneb97.model.verify;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import pk.ajneb97.utils.JSONMessage;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class PKKitDisplayItemError extends PKBaseError{
|
||||
|
||||
private String kitName;
|
||||
|
||||
public PKKitDisplayItemError(String file, String errorText, boolean critical, String kitName) {
|
||||
super(file, errorText, critical);
|
||||
this.kitName = kitName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendMessage(Player player) {
|
||||
List<String> hover = new ArrayList<String>();
|
||||
|
||||
JSONMessage jsonMessage = new JSONMessage(player,prefix+"&7Kit &c"+kitName+" &7doesn't have a default display item.");
|
||||
hover.add("&eTHIS IS AN ERROR!");
|
||||
hover.add("&fAll kits must have a default display");
|
||||
hover.add("&fitem. Set one using /kit edit "+kitName);
|
||||
|
||||
jsonMessage.hover(hover).send();
|
||||
}
|
||||
}
|
||||
64
src/main/java/pk/ajneb97/utils/JSONMessage.java
Normal file
64
src/main/java/pk/ajneb97/utils/JSONMessage.java
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
package pk.ajneb97.utils;
|
||||
|
||||
import net.md_5.bungee.api.chat.BaseComponent;
|
||||
import net.md_5.bungee.api.chat.ClickEvent;
|
||||
import net.md_5.bungee.api.chat.HoverEvent;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class JSONMessage {
|
||||
|
||||
private Player player;
|
||||
private String text;
|
||||
private BaseComponent[] hover;
|
||||
private String suggestCommand;
|
||||
private String executeCommand;
|
||||
|
||||
public JSONMessage(Player player, String text) {
|
||||
this.player = player;
|
||||
this.hover = null;
|
||||
this.text = text;
|
||||
}
|
||||
|
||||
public JSONMessage hover(List<String> list) {
|
||||
hover = new BaseComponent[list.size()];
|
||||
for(int i=0;i<list.size();i++) {
|
||||
TextComponent line = new TextComponent();
|
||||
if(i == list.size()-1) {
|
||||
line.setText(ChatColor.translateAlternateColorCodes('&', list.get(i)));
|
||||
}else {
|
||||
line.setText(ChatColor.translateAlternateColorCodes('&', list.get(i))+"\n");
|
||||
}
|
||||
hover[i] = line;
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public JSONMessage setSuggestCommand(String command) {
|
||||
this.suggestCommand = command;
|
||||
return this;
|
||||
}
|
||||
|
||||
public JSONMessage setExecuteCommand(String command) {
|
||||
this.executeCommand = command;
|
||||
return this;
|
||||
}
|
||||
|
||||
public void send() {
|
||||
TextComponent message = new TextComponent();
|
||||
message.setText(ChatColor.translateAlternateColorCodes('&', text));
|
||||
if(hover != null) {
|
||||
message.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, hover));
|
||||
}
|
||||
if(suggestCommand != null) {
|
||||
message.setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, suggestCommand));
|
||||
}
|
||||
if(executeCommand != null) {
|
||||
message.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, executeCommand));
|
||||
}
|
||||
player.spigot().sendMessage(message);
|
||||
}
|
||||
}
|
||||
|
|
@ -34,5 +34,6 @@ minutes: 'm'
|
|||
hours: 'h'
|
||||
days: 'd'
|
||||
cooldownPlaceholderReady: "&a&lReady!"
|
||||
pluginCriticalErrors: "&cThe plugin has detected some errors. Check them using &7/kit verify"
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
main: pk.ajneb97.PlayerKits2
|
||||
version: 1.1.1
|
||||
version: 1.2.1
|
||||
name: PlayerKits2
|
||||
api-version: 1.13
|
||||
softdepend: [Vault,PlaceholderAPI]
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue