();
-
- public FileManager(JavaPlugin plugin) {
- this.plugin = plugin;
- }
-
- /**
- * Get the config by the name(Don't forget the .yml)
- *
- * @param name
- * @return
- */
- public Config getConfig(String name) {
- if (!configs.containsKey(name))
- configs.put(name, new Config(name));
-
- return configs.get(name);
- }
-
- /**
- * Save the config by the name(Don't forget the .yml)
- *
- * @param name
- * @return
- */
- public Config saveConfig(String name) {
- return getConfig(name).save();
- }
-
- /**
- * Reload the config by the name(Don't forget the .yml)
- *
- * @param name
- * @return
- */
- public Config reloadConfig(String name) {
- return getConfig(name).reload();
- }
-
- public class Config {
-
- private String name;
- private File file;
- private YamlConfiguration config;
-
- public Config(String name) {
- this.name = name;
- }
-
- /**
- * Saves the config as long as the config isn't empty
- *
- * @return
- */
- public Config save() {
- if ((this.config == null) || (this.file == null))
- return this;
- try {
- if (config.getConfigurationSection("").getKeys(true).size() != 0)
- config.save(this.file);
- } catch (IOException ex) {
- ex.printStackTrace();
- }
- return this;
- }
-
- /**
- * Gets the config as a YamlConfiguration
- *
- * @return
- */
- public YamlConfiguration get() {
- if (this.config == null)
- reload();
-
- return this.config;
- }
-
- /**
- * Saves the default config(Will overwrite anything in the current config's file)
- *
- * Don't forget to reload after!
- *
- * @return
- */
- public Config saveDefaultConfig() {
- file = new File(plugin.getDataFolder(), this.name);
-
- plugin.saveResource(this.name, false);
-
- return this;
- }
-
- /**
- * Reloads the config
- *
- * @return
- */
- public Config reload() {
- if (file == null)
- this.file = new File(plugin.getDataFolder(), this.name);
-
- this.config = YamlConfiguration.loadConfiguration(file);
-
- Reader defConfigStream;
- try {
- defConfigStream = new InputStreamReader(plugin.getResource(this.name), "UTF8");
-
- if (defConfigStream != null) {
- YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream);
- this.config.setDefaults(defConfig);
- }
- } catch (UnsupportedEncodingException | NullPointerException e) {
-
- }
- return this;
- }
-
- /**
- * Copies the config from the resources to the config's default settings.
- *
- * Force = true ----> Will add any new values from the default file
- *
- * Force = false ---> Will NOT add new values from the default file
- *
- * @param force
- * @return
- */
- public Config copyDefaults(boolean force) {
- get().options().copyDefaults(force);
- return this;
- }
-
- /**
- * An easy way to set a value into the config
- *
- * @param key
- * @param value
- * @return
- */
- public Config set(String key, Object value) {
- get().set(key, value);
- return this;
- }
-
- /**
- * An easy way to get a value from the config
- *
- * @param key
- * @return
- */
- public Object get(String key) {
- return get().get(key);
- }
- }
-
-}
\ No newline at end of file
diff --git a/src/main/java/me/nvus/xprison/database/PooledSQLDatabase.java b/src/main/java/me/nvus/xprison/database/PooledSQLDatabase.java
deleted file mode 100644
index caafa0a..0000000
--- a/src/main/java/me/nvus/xprison/database/PooledSQLDatabase.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package me.nvus.xprison.database;
-
-import com.zaxxer.hikari.HikariDataSource;
-import me.nvus.xprison.XPrison;
-
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.util.concurrent.atomic.AtomicInteger;
-
-public abstract class PooledSQLDatabase extends SQLDatabase {
-
- protected static final AtomicInteger POOL_COUNTER = new AtomicInteger(0);
- protected HikariDataSource hikari;
-
- public PooledSQLDatabase(XPrison plugin) {
- super(plugin);
- }
-
- @Override
- public void close() {
- if (this.hikari != null) {
- this.hikari.close();
- this.plugin.getLogger().info("Database Connection closed");
- }
- }
-
- @Override
- public Connection getConnection() {
- try {
- return this.hikari.getConnection();
- } catch (SQLException e) {
- this.plugin.getLogger().warning("Unable to get database connection!");
- e.printStackTrace();
- }
- return null;
- }
-
-
-}
diff --git a/src/main/java/me/nvus/xprison/database/SQLDatabase.java b/src/main/java/me/nvus/xprison/database/SQLDatabase.java
deleted file mode 100644
index e20c555..0000000
--- a/src/main/java/me/nvus/xprison/database/SQLDatabase.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package me.nvus.xprison.database;
-
-import me.nvus.xprison.XPrison;
-import me.nvus.xprison.database.model.SQLDatabaseType;
-import me.lucko.helper.Schedulers;
-
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.SQLException;
-import java.util.Arrays;
-
-public abstract class SQLDatabase {
-
- protected final XPrison plugin;
-
- SQLDatabase(XPrison plugin) {
- this.plugin = plugin;
- }
-
- public abstract SQLDatabaseType getDatabaseType();
-
- public abstract void connect();
-
- public abstract void close();
-
- public abstract Connection getConnection();
-
- public PreparedStatement prepareStatement(Connection connection, String sql, Object... replacements) {
-
- PreparedStatement statement;
- try {
- statement = connection.prepareStatement(sql);
- this.replaceQueryParameters(statement,replacements);
-
- if (this.plugin.isDebugMode()) {
- this.plugin.getLogger().info("Statement prepared: " + sql + " (Replacement values: " + Arrays.toString(replacements) + ")");
- }
-
- return statement;
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return null;
- }
-
- public void executeSql(String sql, Object... replacements) {
-
- if (sql == null || sql.isEmpty()) {
- return;
- }
-
- long startTime = System.currentTimeMillis();
-
- try (Connection c = getConnection(); PreparedStatement statement = prepareStatement(c,sql,replacements)) {
-
- statement.execute();
-
- long endTime = System.currentTimeMillis();
-
- if (this.plugin.isDebugMode()) {
- this.plugin.getLogger().info("Statement executed: " + sql + " (Replacement values: " + Arrays.toString(replacements) + "). Took " + (endTime - startTime) + "ms.");
- }
-
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
-
- private void replaceQueryParameters(PreparedStatement statement, Object[] replacements) {
- if (replacements != null) {
- for (int i = 0; i < replacements.length; i++) {
- int position = i + 1;
- Object value = replacements[i];
- try {
- statement.setObject(position, value);
- } catch (SQLException e) {
- this.plugin.getLogger().warning("Unable to set query parameter at position " + position + " to " + value + " for query: " + statement);
- e.printStackTrace();
- }
- }
- }
- }
-
- public void executeSqlAsync(String sql, Object... replacements) {
- Schedulers.async().run(() -> this.executeSql(sql, replacements));
- }
-}
diff --git a/src/main/java/me/nvus/xprison/database/impl/MySQLDatabase.java b/src/main/java/me/nvus/xprison/database/impl/MySQLDatabase.java
deleted file mode 100644
index d44be89..0000000
--- a/src/main/java/me/nvus/xprison/database/impl/MySQLDatabase.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package me.nvus.xprison.database.impl;
-
-import com.zaxxer.hikari.HikariConfig;
-import com.zaxxer.hikari.HikariDataSource;
-import me.nvus.xprison.XPrison;
-import me.nvus.xprison.database.PooledSQLDatabase;
-import me.nvus.xprison.database.model.ConnectionProperties;
-import me.nvus.xprison.database.model.DatabaseCredentials;
-import me.nvus.xprison.database.model.SQLDatabaseType;
-
-public final class MySQLDatabase extends PooledSQLDatabase {
-
- private final DatabaseCredentials credentials;
- private final ConnectionProperties connectionProperties;
-
- public MySQLDatabase(XPrison parent, DatabaseCredentials credentials, ConnectionProperties connectionProperties) {
- super(parent);
- this.connectionProperties = connectionProperties;
- this.credentials = credentials;
- }
-
- @Override
- public void connect() {
- final HikariConfig hikari = new HikariConfig();
-
- hikari.setPoolName("xprison-" + POOL_COUNTER.getAndIncrement());
-
- this.applyCredentials(hikari, credentials, connectionProperties);
- this.applyConnectionProperties(hikari, connectionProperties);
- this.addDefaultDataSourceProperties(hikari);
- this.hikari = new HikariDataSource(hikari);
- }
-
- private void applyCredentials(HikariConfig hikari, DatabaseCredentials credentials, ConnectionProperties connectionProperties) {
- hikari.setJdbcUrl("jdbc:mysql://" + credentials.getHost() + ":" + credentials.getPort() + "/" + credentials.getDatabaseName() + "?characterEncoding=" + connectionProperties.getCharacterEncoding());
- hikari.setUsername(credentials.getUserName());
- hikari.setPassword(credentials.getPassword());
- }
-
- private void applyConnectionProperties(HikariConfig hikari, ConnectionProperties connectionProperties) {
- hikari.setConnectionTimeout(connectionProperties.getConnectionTimeout());
- hikari.setIdleTimeout(connectionProperties.getIdleTimeout());
- hikari.setKeepaliveTime(connectionProperties.getKeepAliveTime());
- hikari.setMaxLifetime(connectionProperties.getMaxLifetime());
- hikari.setMinimumIdle(connectionProperties.getMinimumIdle());
- hikari.setMaximumPoolSize(connectionProperties.getMaximumPoolSize());
- hikari.setLeakDetectionThreshold(connectionProperties.getLeakDetectionThreshold());
- hikari.setConnectionTestQuery(connectionProperties.getTestQuery());
- }
-
- private void addDefaultDataSourceProperties(HikariConfig hikari) {
- hikari.addDataSourceProperty("cachePrepStmts", true);
- hikari.addDataSourceProperty("prepStmtCacheSize", 250);
- hikari.addDataSourceProperty("prepStmtCacheSqlLimit", 2048);
- hikari.addDataSourceProperty("useServerPrepStmts", true);
- hikari.addDataSourceProperty("useLocalSessionState", true);
- hikari.addDataSourceProperty("rewriteBatchedStatements", true);
- hikari.addDataSourceProperty("cacheResultSetMetadata", true);
- hikari.addDataSourceProperty("cacheServerConfiguration", true);
- hikari.addDataSourceProperty("elideSetAutoCommits", true);
- hikari.addDataSourceProperty("maintainTimeStats", false);
- }
-
- @Override
- public SQLDatabaseType getDatabaseType() {
- return SQLDatabaseType.MYSQL;
- }
-}
\ No newline at end of file
diff --git a/src/main/java/me/nvus/xprison/database/impl/SQLiteDatabase.java b/src/main/java/me/nvus/xprison/database/impl/SQLiteDatabase.java
deleted file mode 100644
index 6530791..0000000
--- a/src/main/java/me/nvus/xprison/database/impl/SQLiteDatabase.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package me.nvus.xprison.database.impl;
-
-import com.zaxxer.hikari.HikariConfig;
-import com.zaxxer.hikari.HikariDataSource;
-import me.nvus.xprison.XPrison;
-import me.nvus.xprison.database.PooledSQLDatabase;
-import me.nvus.xprison.database.model.ConnectionProperties;
-import me.nvus.xprison.database.model.SQLDatabaseType;
-
-import java.io.File;
-import java.io.IOException;
-
-public final class SQLiteDatabase extends PooledSQLDatabase {
-
- private static final String FILE_NAME = "playerdata.db";
-
- private final String filePath;
- private final ConnectionProperties connectionProperties;
-
- public SQLiteDatabase(XPrison plugin, ConnectionProperties connectionProperties) {
- super(plugin);
- this.connectionProperties = connectionProperties;
- this.filePath = this.plugin.getDataFolder().getPath() + File.separator + FILE_NAME;
- }
-
- @Override
- public SQLDatabaseType getDatabaseType() {
- return SQLDatabaseType.SQLITE;
- }
-
- @Override
- public void connect() {
-
- this.createDBFile();
-
- final HikariConfig hikari = new HikariConfig();
-
- hikari.setPoolName("xprison-" + POOL_COUNTER.getAndIncrement());
-
- hikari.setDriverClassName("org.sqlite.JDBC");
- hikari.setJdbcUrl("jdbc:sqlite:" + this.filePath);
-
- hikari.setConnectionTimeout(connectionProperties.getConnectionTimeout());
- hikari.setIdleTimeout(connectionProperties.getIdleTimeout());
- hikari.setKeepaliveTime(connectionProperties.getKeepAliveTime());
- hikari.setMaxLifetime(connectionProperties.getMaxLifetime());
- hikari.setMinimumIdle(connectionProperties.getMinimumIdle());
- hikari.setMaximumPoolSize(1);
- hikari.setLeakDetectionThreshold(connectionProperties.getLeakDetectionThreshold());
- hikari.setConnectionTestQuery(connectionProperties.getTestQuery());
-
- this.hikari = new HikariDataSource(hikari);
- }
-
- private void createDBFile() {
- File dbFile = new File(this.filePath);
- try {
- dbFile.createNewFile();
- } catch (IOException e) {
- this.plugin.getLogger().warning(String.format("Unable to create %s", FILE_NAME));
- e.printStackTrace();
- }
- }
-
-}
diff --git a/src/main/java/me/nvus/xprison/database/model/ConnectionProperties.java b/src/main/java/me/nvus/xprison/database/model/ConnectionProperties.java
deleted file mode 100644
index cd02a77..0000000
--- a/src/main/java/me/nvus/xprison/database/model/ConnectionProperties.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package me.nvus.xprison.database.model;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import org.bukkit.configuration.file.FileConfiguration;
-
-@Getter
-@AllArgsConstructor
-public class ConnectionProperties {
-
- private final long idleTimeout, maxLifetime, connectionTimeout, leakDetectionThreshold, keepAliveTime;
- private final int minimumIdle, maximumPoolSize;
- private final String testQuery, characterEncoding;
-
- public static ConnectionProperties fromConfig(FileConfiguration config) {
-
- String rootPath = "connection_properties.";
-
- long connectionTimeout = config.getLong(rootPath + "connection_timeout");
- long idleTimeout = config.getLong(rootPath + "idle_timeout");
- long keepAliveTime = config.getLong(rootPath + "keep_alive_time");
- long maxLifeTime = config.getLong(rootPath + "max_life_time");
- int minimumIdle = config.getInt(rootPath + "minimum_idle");
- int maximumPoolSize = config.getInt(rootPath + "maximum_pool_size");
- long leakDetectionThreshold = config.getLong(rootPath + "leak_detection_threshold");
- String characterEncoding = config.getString(rootPath + "character_encoding", "utf8");
- String testQuery = config.getString(rootPath + "connection_test_query");
- return new ConnectionProperties(idleTimeout, maxLifeTime, connectionTimeout, leakDetectionThreshold, keepAliveTime, minimumIdle, maximumPoolSize, testQuery,characterEncoding);
- }
-}
-
diff --git a/src/main/java/me/nvus/xprison/database/model/DatabaseCredentials.java b/src/main/java/me/nvus/xprison/database/model/DatabaseCredentials.java
deleted file mode 100644
index 0d592ba..0000000
--- a/src/main/java/me/nvus/xprison/database/model/DatabaseCredentials.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package me.nvus.xprison.database.model;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import org.apache.commons.lang.Validate;
-import org.bukkit.configuration.file.FileConfiguration;
-
-@Getter
-@AllArgsConstructor
-public class DatabaseCredentials {
-
- private final String host, databaseName, userName, password;
- private final int port;
-
- public static DatabaseCredentials fromConfig(FileConfiguration config) {
-
- String rootPath = "mysql.";
-
- String host = config.getString(rootPath + "host");
- String dbName = config.getString(rootPath + "database");
- String userName = config.getString(rootPath + "username");
- String password = config.getString(rootPath + "password");
- int port = config.getInt(rootPath + "port");
-
- Validate.notNull(host);
- Validate.notNull(dbName);
- Validate.notNull(userName);
- Validate.notNull(password);
-
- return new DatabaseCredentials(host, dbName, userName, password, port);
- }
-
-}
diff --git a/src/main/java/me/nvus/xprison/database/model/SQLDatabaseType.java b/src/main/java/me/nvus/xprison/database/model/SQLDatabaseType.java
deleted file mode 100644
index 9cd890d..0000000
--- a/src/main/java/me/nvus/xprison/database/model/SQLDatabaseType.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package me.nvus.xprison.database.model;
-
-public enum SQLDatabaseType {
- SQLITE,
- MYSQL
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/XPrisonEnchants.java b/src/main/java/me/nvus/xprison/enchants/XPrisonEnchants.java
deleted file mode 100644
index f228ff0..0000000
--- a/src/main/java/me/nvus/xprison/enchants/XPrisonEnchants.java
+++ /dev/null
@@ -1,161 +0,0 @@
-package me.nvus.xprison.enchants;
-
-import me.nvus.xprison.XPrison;
-import me.nvus.xprison.XPrisonModule;
-import me.nvus.xprison.autosell.XPrisonAutoSell;
-import me.nvus.xprison.enchants.api.XPrisonEnchantsAPI;
-import me.nvus.xprison.enchants.api.XPrisonEnchantsAPIImpl;
-import me.nvus.xprison.enchants.command.*;
-import me.nvus.xprison.enchants.config.EnchantsConfig;
-import me.nvus.xprison.enchants.gui.DisenchantGUI;
-import me.nvus.xprison.enchants.gui.EnchantGUI;
-import me.nvus.xprison.enchants.listener.EnchantsListener;
-import me.nvus.xprison.enchants.managers.CooldownManager;
-import me.nvus.xprison.enchants.managers.EnchantsManager;
-import me.nvus.xprison.enchants.managers.RespawnManager;
-import me.nvus.xprison.enchants.repo.EnchantsRepository;
-import me.nvus.xprison.mines.XPrisonMines;
-import me.nvus.xprison.multipliers.XPrisonMultipliers;
-import lombok.Getter;
-import me.lucko.helper.utils.Players;
-import org.bukkit.entity.Player;
-
-public final class XPrisonEnchants implements XPrisonModule {
-
-
- public static final String MODULE_NAME = "Enchants";
-
- @Getter
- private static XPrisonEnchants instance;
-
- @Getter
- private XPrisonEnchantsAPI api;
-
- @Getter
- private EnchantsManager enchantsManager;
-
- @Getter
- private CooldownManager cooldownManager;
-
- @Getter
- private RespawnManager respawnManager;
-
- @Getter
- private EnchantsConfig enchantsConfig;
-
- @Getter
- private EnchantsListener enchantsListener;
-
- @Getter
- private EnchantsRepository enchantsRepository;
-
- @Getter
- private final XPrison core;
-
- private boolean enabled;
-
- public XPrisonEnchants(XPrison core) {
- instance = this;
- this.core = core;
- }
-
- @Override
- public boolean isEnabled() {
- return enabled;
- }
-
- @Override
- public void reload() {
-
- this.enchantsConfig.reload();
- this.enchantsRepository.reload();
-
- EnchantGUI.init();
- DisenchantGUI.init();
-
- }
-
- @Override
- public void enable() {
-
- this.enchantsConfig = new EnchantsConfig(this);
- this.enchantsConfig.load();
-
- this.cooldownManager = new CooldownManager(this);
- this.respawnManager = new RespawnManager(this);
-
- this.enchantsManager = new EnchantsManager(this);
- this.enchantsManager.enable();
-
- this.enchantsListener = new EnchantsListener(this);
- this.enchantsListener.register();
-
- this.registerCommands();
-
- this.enchantsRepository = new EnchantsRepository(this);
- this.enchantsRepository.loadDefaultEnchantments();
-
- EnchantGUI.init();
- DisenchantGUI.init();
-
- this.api = new XPrisonEnchantsAPIImpl(this.enchantsManager, this.enchantsRepository);
-
-
- this.enabled = true;
- }
-
-
- private void registerCommands() {
- DisenchantCommand disenchantCommand = new DisenchantCommand(this);
- disenchantCommand.register();
-
- EnchantMenuCommand enchantMenuCommand = new EnchantMenuCommand(this);
- enchantMenuCommand.register();
-
- GiveFirstJoinPickaxeCommand giveFirstJoinPickaxeCommand = new GiveFirstJoinPickaxeCommand(this);
- giveFirstJoinPickaxeCommand.register();
-
- GivePickaxeCommand givePickaxeCommand = new GivePickaxeCommand(this);
- givePickaxeCommand.register();
-
- ValueCommand valueCommand = new ValueCommand(this);
- valueCommand.register();
- }
-
-
- @Override
- public void disable() {
- for (Player p : Players.all()) {
- p.closeInventory();
- }
- this.enchantsManager.disable();
- this.enabled = false;
- }
-
- @Override
- public String getName() {
- return MODULE_NAME;
- }
-
- @Override
- public boolean isHistoryEnabled() {
- return false;
- }
-
- @Override
- public void resetPlayerData() {
- }
-
- public boolean isAutoSellModuleEnabled() {
- return this.core.isModuleEnabled(XPrisonAutoSell.MODULE_NAME);
- }
-
- public boolean isMultipliersModuleEnabled() {
- return this.core.isModuleEnabled(XPrisonMultipliers.MODULE_NAME);
- }
-
- public boolean isMinesModuleEnabled() {
- return this.core.isModuleEnabled(XPrisonMines.MODULE_NAME);
- }
-
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/api/XPrisonEnchantsAPI.java b/src/main/java/me/nvus/xprison/enchants/api/XPrisonEnchantsAPI.java
deleted file mode 100644
index 69a012b..0000000
--- a/src/main/java/me/nvus/xprison/enchants/api/XPrisonEnchantsAPI.java
+++ /dev/null
@@ -1,89 +0,0 @@
-package me.nvus.xprison.enchants.api;
-
-import me.nvus.xprison.enchants.model.XPrisonEnchantment;
-import org.bukkit.entity.Player;
-import org.bukkit.inventory.ItemStack;
-
-import java.util.Map;
-
-public interface XPrisonEnchantsAPI {
-
-
- /**
- * Method to get all custom enchants applied on specific ItemStack
- *
- * @param itemStack ItemStack
- * @return
- */
- Map getEnchants(ItemStack itemStack);
-
- /**
- * Method to check if item has specific enchant
- *
- * @param item {@link ItemStack}
- * @param enchantment {@link XPrisonEnchantment}
- * @return true if item has enchant
- */
- boolean hasEnchant(ItemStack item, XPrisonEnchantment enchantment);
-
- /**
- * Method to get enchant level of specific ItemStack
- *
- * @param item ItemStack
- * @param enchantment {@link XPrisonEnchantment}
- * @return 0 if enchant was not found, otherwise level of enchant
- */
- int getEnchantLevel(ItemStack item, XPrisonEnchantment enchantment);
-
- /**
- * Method to set enchant with specific level to pickaxe
- *
- * @param item pickaxe
- * @param enchantment {@link XPrisonEnchantment}
- * @param level Enchant Level
- * @return modified ItemStack
- */
- ItemStack setEnchantLevel(Player player, ItemStack item, XPrisonEnchantment enchantment, int level);
-
- /**
- * Method to remove enchant from pickaxe
- *
- * @param item ItemStack pickaxe
- * @param enchantment {@link XPrisonEnchantment}
- * @return modified ItemStack
- */
- ItemStack removeEnchant(Player player, ItemStack item, XPrisonEnchantment enchantment);
-
- /**
- * Method to get Enchant by ID
- *
- * @param id enchant id
- * @return XPrisonEnchantment
- */
- XPrisonEnchantment getById(int id);
-
- /**
- * Method to get Enchant by ID
- *
- * @param rawName enchant rawname
- * @return XPrisonEnchantment
- */
- XPrisonEnchantment getByName(String rawName);
-
- /**
- * Registers a specific {@link XPrisonEnchantment}
- *
- * @param enchantment
- * @return
- */
- boolean registerEnchant(XPrisonEnchantment enchantment);
-
- /**
- * Unregisters a specific {@link XPrisonEnchantment}
- *
- * @param enchantment
- * @return
- */
- boolean unregisterEnchant(XPrisonEnchantment enchantment);
-
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/api/XPrisonEnchantsAPIImpl.java b/src/main/java/me/nvus/xprison/enchants/api/XPrisonEnchantsAPIImpl.java
deleted file mode 100644
index dfe6670..0000000
--- a/src/main/java/me/nvus/xprison/enchants/api/XPrisonEnchantsAPIImpl.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package me.nvus.xprison.enchants.api;
-
-import me.nvus.xprison.enchants.managers.EnchantsManager;
-import me.nvus.xprison.enchants.model.XPrisonEnchantment;
-import me.nvus.xprison.enchants.repo.EnchantsRepository;
-import org.bukkit.entity.Player;
-import org.bukkit.inventory.ItemStack;
-
-import java.util.Map;
-
-public final class XPrisonEnchantsAPIImpl implements XPrisonEnchantsAPI {
-
- private final EnchantsManager enchantsManager;
- private final EnchantsRepository enchantsRepository;
-
- public XPrisonEnchantsAPIImpl(EnchantsManager enchantsManager, EnchantsRepository enchantsRepository) {
- this.enchantsManager = enchantsManager;
- this.enchantsRepository = enchantsRepository;
- }
-
- @Override
- public Map getEnchants(ItemStack pickAxe) {
- return this.enchantsManager.getItemEnchants(pickAxe);
- }
-
- @Override
- public boolean hasEnchant(ItemStack item, XPrisonEnchantment enchant) {
- return getEnchantLevel(item, enchant) != 0;
- }
-
- @Override
- public int getEnchantLevel(ItemStack item, XPrisonEnchantment enchantment) {
- return this.enchantsManager.getEnchantLevel(item, enchantment);
- }
-
- @Override
- public ItemStack setEnchantLevel(Player player, ItemStack item, XPrisonEnchantment enchantment, int level) {
- return this.enchantsManager.setEnchantLevel(player, item, enchantment, level);
- }
-
- @Override
- public ItemStack removeEnchant(Player player, ItemStack item, XPrisonEnchantment enchantment) {
- return this.enchantsManager.removeEnchant(player, item, enchantment);
- }
-
- @Override
- public XPrisonEnchantment getById(int id) {
- return this.enchantsRepository.getEnchantById(id);
- }
-
- @Override
- public XPrisonEnchantment getByName(String rawName) {
- return this.enchantsRepository.getEnchantByName(rawName);
- }
-
- @Override
- public boolean registerEnchant(XPrisonEnchantment enchantment) {
- return this.enchantsRepository.register(enchantment);
- }
-
- @Override
- public boolean unregisterEnchant(XPrisonEnchantment enchantment) {
- return this.enchantsRepository.unregister(enchantment);
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/api/events/ExplosionTriggerEvent.java b/src/main/java/me/nvus/xprison/enchants/api/events/ExplosionTriggerEvent.java
deleted file mode 100644
index 15cb3f0..0000000
--- a/src/main/java/me/nvus/xprison/enchants/api/events/ExplosionTriggerEvent.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package me.nvus.xprison.enchants.api.events;
-
-
-import lombok.Getter;
-import org.bukkit.block.Block;
-import org.bukkit.entity.Player;
-import org.bukkit.event.HandlerList;
-import org.codemc.worldguardwrapper.region.IWrappedRegion;
-
-import java.util.List;
-
-@Getter
-public final class ExplosionTriggerEvent extends XPrisonPlayerEnchantTriggerEvent {
-
- private static final HandlerList HANDLERS_LIST = new HandlerList();
- private boolean cancelled;
-
- /**
- * Called when explosive enchant procs
- *
- * @param p Player
- * @param mineRegion WorldGuard region where it was triggered
- * @param originBlock Original block broken that triggered it
- * @param blocksAffected List of affected blocks (marked for removal)
- */
- public ExplosionTriggerEvent(Player p, IWrappedRegion mineRegion, Block originBlock, List blocksAffected) {
- super(p, mineRegion, originBlock, blocksAffected);
- }
-
- public static HandlerList getHandlerList() {
- return HANDLERS_LIST;
- }
-
- @Override
- public HandlerList getHandlers() {
- return HANDLERS_LIST;
- }
-
- @Override
- public boolean isCancelled() {
- return cancelled;
- }
-
- @Override
- public void setCancelled(boolean cancel) {
- this.cancelled = cancel;
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/api/events/LayerTriggerEvent.java b/src/main/java/me/nvus/xprison/enchants/api/events/LayerTriggerEvent.java
deleted file mode 100644
index 23c741e..0000000
--- a/src/main/java/me/nvus/xprison/enchants/api/events/LayerTriggerEvent.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package me.nvus.xprison.enchants.api.events;
-
-
-import lombok.Getter;
-import org.bukkit.block.Block;
-import org.bukkit.entity.Player;
-import org.bukkit.event.HandlerList;
-import org.codemc.worldguardwrapper.region.IWrappedRegion;
-
-import java.util.List;
-
-@Getter
-public final class LayerTriggerEvent extends XPrisonPlayerEnchantTriggerEvent {
-
- private static final HandlerList HANDLERS_LIST = new HandlerList();
- private boolean cancelled;
-
- /**
- * Called when layer enchant procs
- *
- * @param p Player
- * @param mineRegion WorldGuard region where it was triggered
- * @param originBlock Original block broken that triggered it
- * @param blocks List of affected blocks (marked for removal)
- */
- public LayerTriggerEvent(Player p, IWrappedRegion mineRegion, Block originBlock, List blocks) {
- super(p, mineRegion, originBlock, blocks);
- }
-
- public static HandlerList getHandlerList() {
- return HANDLERS_LIST;
- }
-
- @Override
- public HandlerList getHandlers() {
- return HANDLERS_LIST;
- }
-
- @Override
- public boolean isCancelled() {
- return cancelled;
- }
-
- @Override
- public void setCancelled(boolean cancel) {
- this.cancelled = cancel;
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/api/events/NukeTriggerEvent.java b/src/main/java/me/nvus/xprison/enchants/api/events/NukeTriggerEvent.java
deleted file mode 100644
index 0cdcf55..0000000
--- a/src/main/java/me/nvus/xprison/enchants/api/events/NukeTriggerEvent.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package me.nvus.xprison.enchants.api.events;
-
-
-import lombok.Getter;
-import org.bukkit.block.Block;
-import org.bukkit.entity.Player;
-import org.bukkit.event.HandlerList;
-import org.codemc.worldguardwrapper.region.IWrappedRegion;
-
-import java.util.List;
-
-@Getter
-public final class NukeTriggerEvent extends XPrisonPlayerEnchantTriggerEvent {
-
- private static final HandlerList HANDLERS_LIST = new HandlerList();
- private boolean cancelled;
-
- /**
- * Called when nuke enchant procs
- *
- * @param p Player
- * @param mineRegion WorldGuard region where it was triggered
- * @param originBlock Original block broken that triggered it
- * @param blocks List of affected blocks (marked for removal)
- */
- public NukeTriggerEvent(Player p, IWrappedRegion mineRegion, Block originBlock, List blocks) {
- super(p, mineRegion, originBlock, blocks);
- }
-
- public static HandlerList getHandlerList() {
- return HANDLERS_LIST;
- }
-
- @Override
- public HandlerList getHandlers() {
- return HANDLERS_LIST;
- }
-
- @Override
- public boolean isCancelled() {
- return cancelled;
- }
-
- @Override
- public void setCancelled(boolean cancel) {
- this.cancelled = cancel;
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/api/events/XPrisonPlayerEnchantEvent.java b/src/main/java/me/nvus/xprison/enchants/api/events/XPrisonPlayerEnchantEvent.java
deleted file mode 100644
index 9b3de87..0000000
--- a/src/main/java/me/nvus/xprison/enchants/api/events/XPrisonPlayerEnchantEvent.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package me.nvus.xprison.enchants.api.events;
-
-import me.nvus.xprison.api.events.player.XPrisonPlayerEvent;
-import lombok.Getter;
-import lombok.Setter;
-import org.bukkit.entity.Player;
-import org.bukkit.event.Cancellable;
-import org.bukkit.event.HandlerList;
-
-public final class XPrisonPlayerEnchantEvent extends XPrisonPlayerEvent implements Cancellable {
-
- private static final HandlerList handlers = new HandlerList();
-
- @Getter
- @Setter
- private long tokenCost;
- @Getter
- private final int level;
- @Getter
- @Setter
- private boolean cancelled;
-
-
- /**
- * Called when player enchants a tool
- *
- * @param player Player
- * @param tokenCost cost of enchant in tokens
- * @param level level of enchant
- */
- public XPrisonPlayerEnchantEvent(Player player, long tokenCost, int level) {
- super(player);
- this.tokenCost = tokenCost;
- this.level = level;
- }
-
- public static HandlerList getHandlerList() {
- return handlers;
- }
-
- @Override
- public HandlerList getHandlers() {
- return handlers;
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/api/events/XPrisonPlayerEnchantTriggerEvent.java b/src/main/java/me/nvus/xprison/enchants/api/events/XPrisonPlayerEnchantTriggerEvent.java
deleted file mode 100644
index 73d2521..0000000
--- a/src/main/java/me/nvus/xprison/enchants/api/events/XPrisonPlayerEnchantTriggerEvent.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package me.nvus.xprison.enchants.api.events;
-
-import me.nvus.xprison.api.events.player.XPrisonPlayerEvent;
-import lombok.Getter;
-import org.bukkit.block.Block;
-import org.bukkit.entity.Player;
-import org.bukkit.event.Cancellable;
-import org.codemc.worldguardwrapper.region.IWrappedRegion;
-
-import java.util.List;
-
-@Getter
-public abstract class XPrisonPlayerEnchantTriggerEvent extends XPrisonPlayerEvent implements Cancellable {
-
- protected final Player player;
- protected final IWrappedRegion mineRegion;
- protected final Block originBlock;
- protected final List blocksAffected;
-
- public XPrisonPlayerEnchantTriggerEvent(Player p, IWrappedRegion mineRegion, Block originBlock, List blocksAffected) {
- super(p);
- this.player = p;
- this.mineRegion = mineRegion;
- this.originBlock = originBlock;
- this.blocksAffected = blocksAffected;
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/command/DisenchantCommand.java b/src/main/java/me/nvus/xprison/enchants/command/DisenchantCommand.java
deleted file mode 100644
index 6d7686d..0000000
--- a/src/main/java/me/nvus/xprison/enchants/command/DisenchantCommand.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package me.nvus.xprison.enchants.command;
-
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.gui.DisenchantGUI;
-import me.nvus.xprison.utils.inventory.InventoryUtils;
-import me.nvus.xprison.utils.player.PlayerUtils;
-import me.lucko.helper.Commands;
-import org.bukkit.entity.Player;
-import org.bukkit.inventory.ItemStack;
-
-public class DisenchantCommand {
-
- private final XPrisonEnchants plugin;
-
- public DisenchantCommand(XPrisonEnchants plugin) {
-
- this.plugin = plugin;
- }
-
- public void register() {
- Commands.create()
- .assertPlayer()
- .handler(c -> {
- ItemStack pickAxe = c.sender().getItemInHand();
-
- if (!validatePickaxe(pickAxe)) {
- PlayerUtils.sendMessage(c.sender(), this.plugin.getEnchantsConfig().getMessage("no_pickaxe_found"));
- return;
- }
-
- openDisenchantGui(pickAxe, c.sender());
-
- }).registerAndBind(this.plugin.getCore(), "disenchant", "dise", "de", "disenchantmenu", "dismenu");
- }
-
- private void openDisenchantGui(ItemStack pickAxe, Player player) {
- int pickaxeSlot = InventoryUtils.getInventorySlot(player, pickAxe);
- this.plugin.getCore().debug("Pickaxe slot is: " + pickaxeSlot, this.plugin);
- new DisenchantGUI(this.plugin, player, pickAxe, pickaxeSlot).open();
- }
-
- private boolean validatePickaxe(ItemStack pickAxe) {
- return pickAxe != null && this.plugin.getCore().isPickaxeSupported(pickAxe.getType());
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/command/EnchantMenuCommand.java b/src/main/java/me/nvus/xprison/enchants/command/EnchantMenuCommand.java
deleted file mode 100644
index f42f9f7..0000000
--- a/src/main/java/me/nvus/xprison/enchants/command/EnchantMenuCommand.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package me.nvus.xprison.enchants.command;
-
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.gui.EnchantGUI;
-import me.nvus.xprison.utils.inventory.InventoryUtils;
-import me.nvus.xprison.utils.player.PlayerUtils;
-import me.lucko.helper.Commands;
-import org.bukkit.entity.Player;
-import org.bukkit.inventory.ItemStack;
-
-public class EnchantMenuCommand {
-
- private final XPrisonEnchants plugin;
-
- public EnchantMenuCommand(XPrisonEnchants plugin) {
-
- this.plugin = plugin;
- }
-
- public void register() {
- Commands.create()
- .assertPlayer()
- .handler(c -> {
- ItemStack pickAxe = c.sender().getItemInHand();
-
- if (!validatePickaxe(pickAxe)) {
- PlayerUtils.sendMessage(c.sender(), this.plugin.getEnchantsConfig().getMessage("no_pickaxe_found"));
- return;
- }
-
- openEnchantMenu(pickAxe, c.sender());
- }).registerAndBind(this.plugin.getCore(), "enchantmenu", "enchmenu");
- }
-
- private void openEnchantMenu(ItemStack pickAxe, Player player) {
- int pickaxeSlot = InventoryUtils.getInventorySlot(player, pickAxe);
- this.plugin.getCore().debug("Pickaxe slot is: " + pickaxeSlot, this.plugin);
- new EnchantGUI(this.plugin, player, pickAxe, pickaxeSlot).open();
- }
-
- private boolean validatePickaxe(ItemStack pickAxe) {
- return pickAxe != null && this.plugin.getCore().isPickaxeSupported(pickAxe.getType());
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/command/GiveFirstJoinPickaxeCommand.java b/src/main/java/me/nvus/xprison/enchants/command/GiveFirstJoinPickaxeCommand.java
deleted file mode 100644
index 82ef649..0000000
--- a/src/main/java/me/nvus/xprison/enchants/command/GiveFirstJoinPickaxeCommand.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package me.nvus.xprison.enchants.command;
-
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.utils.player.PlayerUtils;
-import me.lucko.helper.Commands;
-import org.bukkit.entity.Player;
-
-public class GiveFirstJoinPickaxeCommand {
-
- private final XPrisonEnchants plugin;
-
- public GiveFirstJoinPickaxeCommand(XPrisonEnchants plugin) {
-
- this.plugin = plugin;
- }
-
- public void register() {
- Commands.create()
- .assertOp()
- .handler(c -> {
-
- if (c.args().size() == 0) {
- PlayerUtils.sendMessage(c.sender(), "&c/givefirstjoinpickaxe ");
- return;
- }
-
- Player target = c.arg(0).parseOrFail(Player.class);
-
- this.plugin.getEnchantsManager().giveFirstJoinPickaxe(target);
- PlayerUtils.sendMessage(c.sender(), "&aYou have given first join pickaxe to &e" + target.getName());
- }).registerAndBind(this.plugin.getCore(), "givefirstjoinpickaxe");
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/command/GivePickaxeCommand.java b/src/main/java/me/nvus/xprison/enchants/command/GivePickaxeCommand.java
deleted file mode 100644
index 46095f9..0000000
--- a/src/main/java/me/nvus/xprison/enchants/command/GivePickaxeCommand.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package me.nvus.xprison.enchants.command;
-
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.model.XPrisonEnchantment;
-import me.nvus.xprison.enchants.repo.EnchantsRepository;
-import me.nvus.xprison.utils.player.PlayerUtils;
-import me.lucko.helper.Commands;
-import org.apache.commons.lang.StringUtils;
-import org.bukkit.entity.Player;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class GivePickaxeCommand {
-
- private final XPrisonEnchants plugin;
-
- public GivePickaxeCommand(XPrisonEnchants plugin) {
- this.plugin = plugin;
- }
-
- public void register() {
- Commands.create()
- .assertOp()
- .handler(c -> {
-
- if (c.args().size() == 0) {
- PlayerUtils.sendMessage(c.sender(), "&c/givepickaxe <[enchant1]=[level1],[enchant2]=[level2],...[enchantX]=[levelX]> ");
- return;
- }
-
- String input = null, name = null;
- Player target = null;
-
- if (c.args().size() == 1) {
- input = c.rawArg(0);
- } else if (c.args().size() == 2) {
- target = c.arg(0).parseOrFail(Player.class);
- input = c.rawArg(1);
- } else if (c.args().size() >= 3) {
- target = c.arg(0).parseOrFail(Player.class);
- input = c.rawArg(1);
- name = StringUtils.join(c.args().subList(2, c.args().size()), " ");
- }
-
- Map enchants = parseEnchantsFromInput(input);
-
- this.plugin.getEnchantsManager().givePickaxe(target, enchants, name, c.sender());
- }).registerAndBind(this.plugin.getCore(), "givepickaxe");
- }
-
-
- private Map parseEnchantsFromInput(String input) {
- Map enchants = new HashMap<>();
-
- String[] split = input.split(",");
- for (String s : split) {
- String[] enchantData = s.split("=");
-
- try {
- XPrisonEnchantment enchantment = getEnchantsRepository().getEnchantByName(enchantData[0]);
- if (enchantment == null) {
- enchantment = getEnchantsRepository().getEnchantById(Integer.parseInt(enchantData[0]));
- }
-
- if (enchantment == null) {
- continue;
- }
-
- int enchantLevel = Integer.parseInt(enchantData[1]);
- enchants.put(enchantment, enchantLevel);
- } catch (Exception ignored) {
-
- }
- }
- return enchants;
- }
-
- private EnchantsRepository getEnchantsRepository() {
- return this.plugin.getEnchantsRepository();
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/command/ValueCommand.java b/src/main/java/me/nvus/xprison/enchants/command/ValueCommand.java
deleted file mode 100644
index ccc4558..0000000
--- a/src/main/java/me/nvus/xprison/enchants/command/ValueCommand.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package me.nvus.xprison.enchants.command;
-
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.managers.CooldownManager;
-import me.nvus.xprison.utils.player.PlayerUtils;
-import me.lucko.helper.Commands;
-import org.bukkit.entity.Player;
-import org.bukkit.inventory.ItemStack;
-
-public class ValueCommand {
-
- private static final String COMMAND_NAME = "value";
-
- private final XPrisonEnchants plugin;
-
- public ValueCommand(XPrisonEnchants plugin) {
- this.plugin = plugin;
- }
-
-
- public void register() {
- Commands.create()
- .assertPlayer()
- .assertPermission("xprison.value", this.plugin.getEnchantsConfig().getMessage("value_no_permission"))
- .handler(c -> {
-
- if (!checkCooldown(c.sender())) {
- PlayerUtils.sendMessage(c.sender(), this.plugin.getEnchantsConfig().getMessage("value_cooldown").replace("%time%", String.valueOf(this.getCooldownManager().getRemainingTime(c.sender()))));
- return;
- }
-
- ItemStack pickAxe = c.sender().getItemInHand();
-
- if (!validatePickaxe(pickAxe)) {
- PlayerUtils.sendMessage(c.sender(), this.plugin.getEnchantsConfig().getMessage("value_no_pickaxe"));
- return;
- }
-
- PlayerUtils.sendMessage(c.sender(), this.plugin.getEnchantsConfig().getMessage("value_value").replace("%player%", c.sender().getName()).replace("%tokens%", String.format("%,d", this.plugin.getEnchantsManager().getPickaxeValue(pickAxe))));
- }).registerAndBind(plugin.getCore(), COMMAND_NAME);
- }
-
- private boolean validatePickaxe(ItemStack pickAxe) {
- return pickAxe != null && this.plugin.getCore().isPickaxeSupported(pickAxe.getType());
- }
-
- private boolean checkCooldown(Player sender) {
- return (sender.isOp() || !getCooldownManager().hasValueCooldown(sender));
- }
-
- private CooldownManager getCooldownManager() {
- return this.plugin.getCooldownManager();
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/config/EnchantsConfig.java b/src/main/java/me/nvus/xprison/enchants/config/EnchantsConfig.java
deleted file mode 100644
index ea91358..0000000
--- a/src/main/java/me/nvus/xprison/enchants/config/EnchantsConfig.java
+++ /dev/null
@@ -1,124 +0,0 @@
-package me.nvus.xprison.enchants.config;
-
-import me.nvus.xprison.config.FileManager;
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.model.LevelFormat;
-import me.nvus.xprison.utils.compat.CompMaterial;
-import me.nvus.xprison.utils.text.TextUtils;
-import org.bukkit.configuration.file.YamlConfiguration;
-import org.bukkit.event.block.Action;
-
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-public class EnchantsConfig {
-
- private final XPrisonEnchants plugin;
- private final FileManager.Config config;
-
- private Map messages;
-
- private LevelFormat levelFormat;
- private String excludedFormat;
- private List pickaxeLore;
- private boolean allowEnchantsOutside;
- private boolean firstJoinPickaxeEnabled;
- private CompMaterial firstJoinPickaxeMaterial;
- private List firstJoinPickaxeEnchants;
- private String firstJoinPickaxeName;
- private boolean keepPickaxesOnDeath;
- private boolean useUnbreakablePermission;
- private List openEnchantMenuActions;
-
- public EnchantsConfig(XPrisonEnchants plugin) {
- this.plugin = plugin;
- this.config = plugin.getCore().getFileManager().getConfig("enchants.yml").copyDefaults(true).save();
- }
-
- public void reload() {
- this.getConfig().reload();
- this.load();
- }
-
- public void load() {
- this.loadVariables();
- this.loadMessages();
- }
-
- private void loadVariables() {
- this.levelFormat = LevelFormat.of(getYamlConfig().getString("Pickaxe.level-format", "NUMBER"));
- this.excludedFormat = getYamlConfig().getString("Pickaxe.excluded-format", "&7[&c-&7] &8%Enchant% %Level%");
- this.pickaxeLore = getYamlConfig().getStringList("Pickaxe.lore");
- this.openEnchantMenuActions = Arrays.stream(getYamlConfig().getString("open-enchant-menu-action", "RIGHT_CLICK_AIR,RIGHT_CLICK_BLOCK").split(",")).map(s-> Action.valueOf(s.toUpperCase())).collect(Collectors.toList());
- this.allowEnchantsOutside = getYamlConfig().getBoolean("allow-enchants-outside-mine-regions");
- this.firstJoinPickaxeEnabled = getYamlConfig().getBoolean("first-join-pickaxe.enabled");
- this.firstJoinPickaxeMaterial = CompMaterial.fromString(getYamlConfig().getString("first-join-pickaxe.material"));
- this.firstJoinPickaxeEnchants = getYamlConfig().getStringList("first-join-pickaxe.enchants");
- this.firstJoinPickaxeName = getYamlConfig().getString("first-join-pickaxe.name");
- this.keepPickaxesOnDeath = getYamlConfig().getBoolean("keep-pickaxes-on-death");
- this.useUnbreakablePermission = getYamlConfig().getBoolean("use-unbreakable-permission");
- }
-
- private void loadMessages() {
- this.messages = new HashMap<>();
- for (String key : getYamlConfig().getConfigurationSection("messages").getKeys(false)) {
- messages.put(key, TextUtils.applyColor(getConfig().get().getString("messages." + key)));
- }
- }
-
-
- private FileManager.Config getConfig() {
- return this.config;
- }
-
- public YamlConfiguration getYamlConfig() {
- return this.config.get();
- }
-
- public String getMessage(String key) {
- return messages.getOrDefault(key.toLowerCase(), "Message not found with key: " + key);
- }
-
- public LevelFormat getLevelFormat() {
- return levelFormat;
- }
-
- public String getExcludedFormat() {
- return excludedFormat;
- }
-
- public List getPickaxeLore() {
- return pickaxeLore;
- }
-
- public boolean isFirstJoinPickaxeEnabled() {
- return firstJoinPickaxeEnabled;
- }
-
- public CompMaterial getFirstJoinPickaxeMaterial() {
- return firstJoinPickaxeMaterial;
- }
-
- public List getFirstJoinPickaxeEnchants() {
- return firstJoinPickaxeEnchants;
- }
-
- public String getFirstJoinPickaxeName() {
- return firstJoinPickaxeName;
- }
-
- public boolean isKeepPickaxesOnDeath() {
- return keepPickaxesOnDeath;
- }
-
- public boolean isUseUnbreakablePermission() {
- return useUnbreakablePermission;
- }
-
- public List getOpenEnchantMenuActions() {
- return openEnchantMenuActions;
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/gui/DisenchantGUI.java b/src/main/java/me/nvus/xprison/enchants/gui/DisenchantGUI.java
deleted file mode 100644
index 468124c..0000000
--- a/src/main/java/me/nvus/xprison/enchants/gui/DisenchantGUI.java
+++ /dev/null
@@ -1,159 +0,0 @@
-package me.nvus.xprison.enchants.gui;
-
-import me.nvus.xprison.XPrison;
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.model.XPrisonEnchantment;
-import me.nvus.xprison.enchants.utils.GuiUtils;
-import me.nvus.xprison.utils.compat.CompMaterial;
-import me.nvus.xprison.utils.item.ItemStackBuilder;
-import me.nvus.xprison.utils.misc.SkullUtils;
-import me.nvus.xprison.utils.text.TextUtils;
-import lombok.Getter;
-import lombok.Setter;
-import me.lucko.helper.Events;
-import me.lucko.helper.Schedulers;
-import me.lucko.helper.menu.Gui;
-import me.lucko.helper.menu.Item;
-import org.bukkit.Material;
-import org.bukkit.entity.Player;
-import org.bukkit.event.EventPriority;
-import org.bukkit.event.inventory.ClickType;
-import org.bukkit.event.inventory.InventoryCloseEvent;
-import org.bukkit.inventory.ItemStack;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-public final class DisenchantGUI extends Gui {
-
- private static List GUI_ITEM_LORE;
- private static String GUI_TITLE;
- private static Item EMPTY_SLOT_ITEM;
- private static Item HELP_ITEM;
- private static int HELP_ITEM_SLOT;
- private static int PICKAXE_ITEM_SLOT;
- private static int GUI_LINES;
- private static boolean PICKAXE_ITEM_ENABLED;
- private static boolean HELP_ITEM_ENABLED;
-
- @Getter
- @Setter
- private ItemStack pickAxe;
-
- @Getter
- private final int pickaxePlayerInventorySlot;
-
- private final XPrisonEnchants plugin;
-
- public DisenchantGUI(XPrisonEnchants plugin, Player player, ItemStack pickAxe, int pickaxePlayerInventorySlot) {
- super(player, GUI_LINES, GUI_TITLE);
- this.plugin = plugin;
- this.pickAxe = pickAxe;
- this.pickaxePlayerInventorySlot = pickaxePlayerInventorySlot;
-
- Events.subscribe(InventoryCloseEvent.class, EventPriority.LOWEST)
- .filter(e -> e.getInventory().equals(this.getHandle()))
- .handler(e -> {
- XPrison.getInstance().getEnchants().getEnchantsManager().handlePickaxeUnequip(this.getPlayer(), this.pickAxe);
- XPrison.getInstance().getEnchants().getEnchantsManager().handlePickaxeEquip(this.getPlayer(), this.pickAxe);
- }).bindWith(this);
-
- Schedulers.sync().runLater(() -> {
- if (!pickAxe.equals(this.getPlayer().getInventory().getItem(this.pickaxePlayerInventorySlot))) {
- this.close();
- }
- }, 10);
- setFallbackGui(player1 -> new EnchantGUI(plugin, player, pickAxe, pickaxePlayerInventorySlot));
-
- }
-
- @Override
- public void redraw() {
-
- if (isFirstDraw()) {
- for (int i = 0; i < this.getHandle().getSize(); i++) {
- this.setItem(i, EMPTY_SLOT_ITEM);
- }
- }
-
-
- if (HELP_ITEM_ENABLED) {
- this.setItem(HELP_ITEM_SLOT, HELP_ITEM);
- }
-
- if (PICKAXE_ITEM_ENABLED) {
- this.setItem(PICKAXE_ITEM_SLOT, Item.builder(pickAxe).build());
- }
-
- Collection allEnchants = this.plugin.getEnchantsRepository().getAll();
-
- for (XPrisonEnchantment enchantment : allEnchants) {
-
- if (!enchantment.isRefundEnabled() || !enchantment.isEnabled()) {
- continue;
- }
-
- int level = XPrisonEnchants.getInstance().getEnchantsManager().getEnchantLevel(this.pickAxe, enchantment);
- this.setItem(enchantment.getRefundGuiSlot(), getRefundGuiItem(enchantment, this, level));
- }
- }
-
-
- private Item getRefundGuiItem(XPrisonEnchantment enchantment, DisenchantGUI gui, int level) {
- Material m = enchantment.isRefundEnabled() ? enchantment.getMaterial() : CompMaterial.BARRIER.toMaterial();
- ItemStackBuilder builder = ItemStackBuilder.of(m);
-
- if (enchantment.getBase64() != null && !enchantment.getBase64().isEmpty()) {
- builder = ItemStackBuilder.of(SkullUtils.getCustomTextureHead(enchantment.getBase64()));
- }
-
- builder.name(enchantment.isRefundEnabled() ? enchantment.getGuiName() : this.plugin.getEnchantsConfig().getMessage("enchant_cant_disenchant"));
- builder.lore(enchantment.isRefundEnabled() ? GuiUtils.translateGuiLore(enchantment, GUI_ITEM_LORE, level) : new ArrayList<>());
-
- return enchantment.isRefundEnabled() ? builder.buildItem().bind(handler -> {
- if (handler.getClick() == ClickType.MIDDLE || handler.getClick() == ClickType.SHIFT_RIGHT) {
- this.plugin.getEnchantsManager().disenchant(enchantment, gui, level, 100);
- gui.redraw();
- } else if (handler.getClick() == ClickType.LEFT) {
- this.plugin.getEnchantsManager().disenchant(enchantment, gui, level, 1);
- gui.redraw();
- } else if (handler.getClick() == ClickType.RIGHT) {
- this.plugin.getEnchantsManager().disenchant(enchantment, gui, level, 10);
- gui.redraw();
- } else if (handler.getClick() == ClickType.DROP) {
- this.plugin.getEnchantsManager().disenchantMax(enchantment, gui, level);
- }
- }, ClickType.MIDDLE, ClickType.SHIFT_RIGHT, ClickType.LEFT, ClickType.RIGHT, ClickType.DROP).build() : builder.buildConsumer(handler -> handler.getWhoClicked().sendMessage(this.plugin.getEnchantsConfig().getMessage("enchant_cant_disenchant")));
- }
-
- public static void init() {
-
- GUI_ITEM_LORE = XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getStringList("disenchant_menu.item.lore");
- GUI_TITLE = TextUtils.applyColor(XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getString("disenchant_menu.title"));
- GUI_LINES = XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getInt("disenchant_menu.lines");
-
- EMPTY_SLOT_ITEM = ItemStackBuilder.
- of(CompMaterial.fromString(XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getString("disenchant_menu.empty_slots")).toItem()).buildItem().build();
-
- HELP_ITEM_ENABLED = XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getBoolean("disenchant_menu.help_item.enabled", true);
- PICKAXE_ITEM_ENABLED = XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getBoolean("disenchant_menu.pickaxe_enabled", true);
-
- if (HELP_ITEM_ENABLED) {
- String base64 = XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getString("disenchant_menu.help_item.Base64", null);
-
- if (base64 != null) {
- HELP_ITEM = ItemStackBuilder.of(SkullUtils.getCustomTextureHead(base64))
- .name(XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getString("disenchant_menu.help_item.name")).lore(XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getStringList("disenchant_menu.help_item.lore")).buildItem().build();
- } else {
- HELP_ITEM = ItemStackBuilder.of(CompMaterial.fromString(XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getString("disenchant_menu.help_item.material")).toMaterial())
- .name(XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getString("disenchant_menu.help_item.name")).lore(XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getStringList("disenchant_menu.help_item.lore")).buildItem().build();
- }
- HELP_ITEM_SLOT = XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getInt("disenchant_menu.help_item.slot");
- }
-
- if (PICKAXE_ITEM_ENABLED) {
- PICKAXE_ITEM_SLOT = XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getInt("disenchant_menu.pickaxe_slot");
- }
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/gui/EnchantGUI.java b/src/main/java/me/nvus/xprison/enchants/gui/EnchantGUI.java
deleted file mode 100644
index 0d51746..0000000
--- a/src/main/java/me/nvus/xprison/enchants/gui/EnchantGUI.java
+++ /dev/null
@@ -1,183 +0,0 @@
-package me.nvus.xprison.enchants.gui;
-
-import me.nvus.xprison.XPrison;
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.model.XPrisonEnchantment;
-import me.nvus.xprison.enchants.utils.GuiUtils;
-import me.nvus.xprison.utils.compat.CompMaterial;
-import me.nvus.xprison.utils.item.ItemStackBuilder;
-import me.nvus.xprison.utils.misc.SkullUtils;
-import me.nvus.xprison.utils.player.PlayerUtils;
-import me.nvus.xprison.utils.text.TextUtils;
-import lombok.Getter;
-import lombok.Setter;
-import me.lucko.helper.Events;
-import me.lucko.helper.Schedulers;
-import me.lucko.helper.menu.Gui;
-import me.lucko.helper.menu.Item;
-import org.bukkit.entity.Player;
-import org.bukkit.event.EventPriority;
-import org.bukkit.event.inventory.ClickType;
-import org.bukkit.event.inventory.InventoryCloseEvent;
-import org.bukkit.inventory.ItemStack;
-
-import java.util.Collection;
-import java.util.List;
-
-public final class EnchantGUI extends Gui {
-
- private static List GUI_ITEM_LORE;
- private static String GUI_TITLE;
- private static Item EMPTY_SLOT_ITEM;
- private static int PICKAXE_ITEM_SLOT;
- private static int HELP_ITEM_SLOT;
- private static int DISENCHANT_ITEM_SLOT;
- private static int GUI_LINES;
- private static Item HELP_ITEM;
- private static ItemStack DISENCHANT_ITEM;
- private static boolean PICKAXE_ITEM_ENABLED;
- private static boolean HELP_ITEM_ENABLED;
- private static boolean DISENCHANT_ITEM_ENABLED;
-
- @Getter
- @Setter
- private ItemStack pickAxe;
-
- @Getter
- private final int pickaxePlayerInventorySlot;
-
- private final XPrisonEnchants plugin;
-
- public EnchantGUI(XPrisonEnchants plugin, Player player, ItemStack pickAxe, int pickaxePlayerInventorySlot) {
- super(player, GUI_LINES, GUI_TITLE);
- this.plugin = plugin;
- this.pickAxe = pickAxe;
- this.pickaxePlayerInventorySlot = pickaxePlayerInventorySlot;
-
- Events.subscribe(InventoryCloseEvent.class, EventPriority.LOWEST)
- .filter(e -> e.getInventory().equals(this.getHandle()))
- .handler(e -> {
- XPrison.getInstance().getEnchants().getEnchantsManager().handlePickaxeUnequip(this.getPlayer(), this.pickAxe);
- XPrison.getInstance().getEnchants().getEnchantsManager().handlePickaxeEquip(this.getPlayer(), this.pickAxe);
- }).bindWith(this);
-
- // Checking for duping
- Schedulers.sync().runLater(() -> {
- if (!pickAxe.equals(this.getPlayer().getInventory().getItem(this.pickaxePlayerInventorySlot))) {
- this.close();
- }
- },10);
- }
-
- @Override
- public void redraw() {
-
- // perform initial setup.
- if (isFirstDraw()) {
- for (int i = 0; i < this.getHandle().getSize(); i++) {
- this.setItem(i, EMPTY_SLOT_ITEM);
- }
- }
-
- if (HELP_ITEM_ENABLED) {
- this.setItem(HELP_ITEM_SLOT, HELP_ITEM);
- }
-
- if (DISENCHANT_ITEM_ENABLED) {
- this.setItem(DISENCHANT_ITEM_SLOT, ItemStackBuilder.of(DISENCHANT_ITEM).build(() -> {
- this.close();
- new DisenchantGUI(this.plugin, this.getPlayer(), this.pickAxe, this.pickaxePlayerInventorySlot).open();
- }));
- }
-
- if (PICKAXE_ITEM_ENABLED) {
- this.setItem(PICKAXE_ITEM_SLOT, Item.builder(this.pickAxe).build());
- }
-
- Collection allEnchants = this.plugin.getEnchantsRepository().getAll();
- for (XPrisonEnchantment enchantment : allEnchants) {
- if (!enchantment.isEnabled()) {
- continue;
- }
- int level = XPrisonEnchants.getInstance().getEnchantsManager().getEnchantLevel(this.pickAxe, enchantment);
- this.setItem(enchantment.getGuiSlot(), getGuiItem(enchantment, this, level));
- }
- }
-
- private Item getGuiItem(XPrisonEnchantment enchantment, EnchantGUI gui, int currentLevel) {
-
- ItemStackBuilder builder = ItemStackBuilder.of(enchantment.getMaterial());
-
- if (enchantment.getBase64() != null && !enchantment.getBase64().isEmpty()) {
- builder = ItemStackBuilder.of(SkullUtils.getCustomTextureHead(enchantment.getBase64()));
- }
-
- builder.name(enchantment.getGuiName());
- builder.lore(GuiUtils.translateGuiLore(enchantment, GUI_ITEM_LORE, currentLevel));
-
- return builder.buildItem().bind(handler -> {
- if (!enchantment.canBeBought(gui.getPickAxe())) {
- PlayerUtils.sendMessage(this.getPlayer(), this.plugin.getEnchantsConfig().getMessage("pickaxe_level_required").replace("%pickaxe_level%", String.format("%,d", enchantment.getRequiredPickaxeLevel())));
- return;
- }
- if (handler.getClick() == ClickType.MIDDLE || handler.getClick() == ClickType.SHIFT_RIGHT) {
- this.plugin.getEnchantsManager().buyEnchnant(enchantment, gui, currentLevel, 100);
- gui.redraw();
- } else if (handler.getClick() == ClickType.LEFT) {
- this.plugin.getEnchantsManager().buyEnchnant(enchantment, gui, currentLevel, 1);
- gui.redraw();
- } else if (handler.getClick() == ClickType.RIGHT) {
- this.plugin.getEnchantsManager().buyEnchnant(enchantment, gui, currentLevel, 10);
- gui.redraw();
- } else if (handler.getClick() == ClickType.DROP) {
- this.plugin.getEnchantsManager().buyMaxEnchant(enchantment, gui, currentLevel);
- }
- }, ClickType.MIDDLE, ClickType.SHIFT_RIGHT, ClickType.RIGHT, ClickType.LEFT, ClickType.DROP).build();
- }
-
- public static void init() {
-
- GUI_ITEM_LORE = XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getStringList("enchant_menu.item.lore");
- GUI_TITLE = TextUtils.applyColor(XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getString("enchant_menu.title"));
- EMPTY_SLOT_ITEM = ItemStackBuilder.
- of(CompMaterial.fromString(XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getString("enchant_menu.empty_slots")).toItem()).buildItem().build();
- GUI_LINES = XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getInt("enchant_menu.lines");
-
- HELP_ITEM_ENABLED = XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getBoolean("enchant_menu.help_item.enabled", true);
- PICKAXE_ITEM_ENABLED = XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getBoolean("enchant_menu.pickaxe_enabled", true);
- DISENCHANT_ITEM_ENABLED = XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getBoolean("enchant_menu.disenchant_item.enabled", true);
-
- if (DISENCHANT_ITEM_ENABLED) {
- String base64 = XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getString("enchant_menu.disenchant_item.Base64", null);
-
- if (base64 != null) {
- DISENCHANT_ITEM = ItemStackBuilder.of(SkullUtils.getCustomTextureHead(base64))
- .name(XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getString("enchant_menu.disenchant_item.name")).lore(XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getStringList("enchant_menu.disenchant_item.lore")).build();
- } else {
- DISENCHANT_ITEM = ItemStackBuilder.of(CompMaterial.fromString(XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getString("enchant_menu.disenchant_item.material")).toMaterial())
- .name(XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getString("enchant_menu.disenchant_item.name")).lore(XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getStringList("enchant_menu.disenchant_item.lore")).build();
- }
- DISENCHANT_ITEM_SLOT = XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getInt("enchant_menu.disenchant_item.slot");
-
- }
-
- if (HELP_ITEM_ENABLED) {
- String base64 = XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getString("enchant_menu.help_item.Base64", null);
-
- if (base64 != null) {
- HELP_ITEM = ItemStackBuilder.of(SkullUtils.getCustomTextureHead(base64))
- .name(XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getString("enchant_menu.help_item.name")).lore(XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getStringList("enchant_menu.help_item.lore")).buildItem().build();
- } else {
- HELP_ITEM = ItemStackBuilder.of(CompMaterial.fromString(XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getString("enchant_menu.help_item.material")).toMaterial())
- .name(XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getString("enchant_menu.help_item.name")).lore(XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getStringList("enchant_menu.help_item.lore")).buildItem().build();
- }
-
- HELP_ITEM_SLOT = XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getInt("enchant_menu.help_item.slot");
-
- }
-
- if (PICKAXE_ITEM_ENABLED) {
- PICKAXE_ITEM_SLOT = XPrisonEnchants.getInstance().getEnchantsConfig().getYamlConfig().getInt("enchant_menu.pickaxe_slot");
- }
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/listener/EnchantsListener.java b/src/main/java/me/nvus/xprison/enchants/listener/EnchantsListener.java
deleted file mode 100644
index 2c04d60..0000000
--- a/src/main/java/me/nvus/xprison/enchants/listener/EnchantsListener.java
+++ /dev/null
@@ -1,172 +0,0 @@
-package me.nvus.xprison.enchants.listener;
-
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.gui.EnchantGUI;
-import me.nvus.xprison.utils.Constants;
-import me.nvus.xprison.utils.compat.MinecraftVersion;
-import me.nvus.xprison.utils.inventory.InventoryUtils;
-import me.lucko.helper.Events;
-import org.bukkit.entity.Player;
-import org.bukkit.event.EventPriority;
-import org.bukkit.event.block.BlockBreakEvent;
-import org.bukkit.event.entity.PlayerDeathEvent;
-import org.bukkit.event.inventory.InventoryAction;
-import org.bukkit.event.inventory.InventoryClickEvent;
-import org.bukkit.event.player.*;
-import org.bukkit.inventory.GrindstoneInventory;
-import org.bukkit.inventory.ItemStack;
-import org.codemc.worldguardwrapper.flag.IWrappedFlag;
-import org.codemc.worldguardwrapper.flag.WrappedState;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Optional;
-import java.util.stream.Collectors;
-
-public class EnchantsListener {
-
- private final XPrisonEnchants plugin;
- private final List ignoredEvents = new ArrayList<>();
-
- public EnchantsListener(XPrisonEnchants plugin) {
- this.plugin = plugin;
- }
-
- public void register() {
-
- this.subscribeToPlayerDeathEvent();
- this.subscribeToPlayerRespawnEvent();
- this.subscribeToInventoryClickEvent();
- this.subscribeToPlayerJoinEvent();
- this.subscribeToPlayerDropItemEvent();
- this.subscribeToPlayerInteractEvent();
- this.subscribeToPlayerItemHeldEvent();
- this.subscribeToBlockBreakEvent();
- }
-
- public List getIgnoredEvents() {
- return ignoredEvents;
- }
-
- private void subscribeToBlockBreakEvent() {
- Events.subscribe(BlockBreakEvent.class, EventPriority.HIGHEST)
- .filter(e -> !e.isCancelled() && !ignoredEvents.contains(e))
- .filter(e -> e.getPlayer().getItemInHand() != null && this.plugin.getCore().isPickaxeSupported(e.getPlayer().getItemInHand().getType()))
- .handler(e -> this.plugin.getEnchantsManager().handleBlockBreak(e, e.getPlayer().getItemInHand())).bindWith(this.plugin.getCore());
- }
-
- private void subscribeToPlayerItemHeldEvent() {
- // Switching pickaxes
- Events.subscribe(PlayerItemHeldEvent.class, EventPriority.HIGHEST)
- .handler(e -> {
-
- ItemStack newItem = e.getPlayer().getInventory().getItem(e.getNewSlot());
- ItemStack previousItem = e.getPlayer().getInventory().getItem(e.getPreviousSlot());
-
- // Old item
- if (previousItem != null && this.plugin.getCore().isPickaxeSupported(previousItem.getType())) {
- this.plugin.getEnchantsManager().handlePickaxeUnequip(e.getPlayer(), previousItem);
- }
-
- // New item
- if (newItem != null && this.plugin.getCore().isPickaxeSupported(newItem.getType())) {
- this.plugin.getEnchantsManager().handlePickaxeEquip(e.getPlayer(), newItem);
- }
-
- }).bindWith(this.plugin.getCore());
- }
-
- private void subscribeToPlayerInteractEvent() {
- Events.subscribe(PlayerInteractEvent.class)
- .filter(e -> e.getItem() != null && this.plugin.getCore().isPickaxeSupported(e.getItem().getType()))
- .filter(e -> (this.plugin.getEnchantsConfig().getOpenEnchantMenuActions().contains(e.getAction())))
- .handler(e -> {
-
- e.setCancelled(true);
-
- ItemStack pickAxe = e.getItem();
- int pickaxeSlot = InventoryUtils.getInventorySlot(e.getPlayer(), pickAxe);
- this.plugin.getCore().debug("Pickaxe slot is: " + pickaxeSlot, this.plugin);
-
- new EnchantGUI(this.plugin, e.getPlayer(), pickAxe, pickaxeSlot).open();
- }).bindWith(this.plugin.getCore());
- }
-
- private void subscribeToPlayerDropItemEvent() {
- // Dropping pickaxe
- Events.subscribe(PlayerDropItemEvent.class, EventPriority.HIGHEST)
- .handler(e -> {
- if (this.plugin.getCore().isPickaxeSupported(e.getItemDrop().getItemStack())) {
- this.plugin.getEnchantsManager().handlePickaxeUnequip(e.getPlayer(), e.getItemDrop().getItemStack());
- }
- }).bindWith(this.plugin.getCore());
- }
-
- private void subscribeToPlayerJoinEvent() {
- //First join pickaxe
- Events.subscribe(PlayerJoinEvent.class)
- .filter(e -> !e.getPlayer().hasPlayedBefore() && this.plugin.getEnchantsConfig().isFirstJoinPickaxeEnabled())
- .handler(e -> {
- ItemStack firstJoinPickaxe = this.plugin.getEnchantsManager().createFirstJoinPickaxe(e.getPlayer());
- e.getPlayer().getInventory().addItem(firstJoinPickaxe);
- }).bindWith(this.plugin.getCore());
- }
-
- private void subscribeToPlayerRespawnEvent() {
- Events.subscribe(PlayerRespawnEvent.class, EventPriority.LOWEST)
- .handler(e -> this.plugin.getRespawnManager().handleRespawn(e.getPlayer())).bindWith(this.plugin.getCore());
- }
-
- private void subscribeToInventoryClickEvent() {
- //Grindstone disenchanting - disable
- if (MinecraftVersion.atLeast(MinecraftVersion.V.v1_14)) {
- Events.subscribe(InventoryClickEvent.class)
- .filter(e -> e.getInventory() instanceof GrindstoneInventory)
- .handler(e -> {
- ItemStack item1 = e.getInventory().getItem(0);
- ItemStack item2 = e.getInventory().getItem(1);
- if (e.getSlot() == 2 && (this.plugin.getEnchantsManager().hasEnchants(item1) || this.plugin.getEnchantsManager().hasEnchants(item2))) {
- e.setCancelled(true);
- }
- }).bindWith(this.plugin.getCore());
- }
-
- Events.subscribe(InventoryClickEvent.class, EventPriority.MONITOR)
- .filter(e -> e.getAction() == InventoryAction.MOVE_TO_OTHER_INVENTORY)
- .filter(e -> e.getWhoClicked() instanceof Player)
- .filter(e -> !e.isCancelled())
- .handler(e -> {
- ItemStack item = e.getCurrentItem();
- if (this.plugin.getCore().isPickaxeSupported(item)) {
- this.plugin.getEnchantsManager().handlePickaxeUnequip((Player) e.getWhoClicked(), item);
- }
- }).bindWith(this.plugin.getCore());
- }
-
- private void subscribeToPlayerDeathEvent() {
- Events.subscribe(PlayerDeathEvent.class, EventPriority.LOWEST)
- .handler(e -> {
-
- if (!this.plugin.getEnchantsConfig().isKeepPickaxesOnDeath()) {
- return;
- }
-
- List pickaxes = e.getDrops().stream().filter(itemStack -> this.plugin.getCore().isPickaxeSupported(itemStack) &&
- this.plugin.getEnchantsManager().hasEnchants(itemStack)).collect(Collectors.toList());
- e.getDrops().removeAll(pickaxes);
-
- this.plugin.getRespawnManager().addRespawnItems(e.getEntity(), pickaxes);
-
- if (pickaxes.size() > 0) {
- this.plugin.getCore().debug("Removed " + e.getEntity().getName() + "'s pickaxes from drops (" + pickaxes.size() + "). Will be given back on respawn.", this.plugin);
- } else {
- this.plugin.getCore().debug("No Pickaxes found for player " + e.getEntity().getName() + " (PlayerDeathEvent)", this.plugin);
- }
-
- }).bindWith(this.plugin.getCore());
- }
-
- private Optional> getWGFlag() {
- return this.plugin.getCore().getWorldGuardWrapper().getFlag(Constants.ENCHANTS_WG_FLAG_NAME, WrappedState.class);
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/managers/CooldownManager.java b/src/main/java/me/nvus/xprison/enchants/managers/CooldownManager.java
deleted file mode 100644
index ec441a9..0000000
--- a/src/main/java/me/nvus/xprison/enchants/managers/CooldownManager.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package me.nvus.xprison.enchants.managers;
-
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.lucko.helper.cooldown.Cooldown;
-import me.lucko.helper.cooldown.CooldownMap;
-import org.bukkit.entity.Player;
-
-import java.util.concurrent.TimeUnit;
-
-public class CooldownManager {
-
- private final XPrisonEnchants plugin;
- private final CooldownMap valueCooldown;
-
- public CooldownManager(XPrisonEnchants plugin) {
- this.plugin = plugin;
- this.valueCooldown = CooldownMap.create(Cooldown.of(30, TimeUnit.SECONDS));
- }
-
- public boolean hasValueCooldown(Player sender) {
- return !valueCooldown.test(sender);
- }
-
- public long getRemainingTime(Player sender) {
- return valueCooldown.get(sender).remainingTime(TimeUnit.SECONDS);
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/managers/EnchantsManager.java b/src/main/java/me/nvus/xprison/enchants/managers/EnchantsManager.java
deleted file mode 100644
index 996d87c..0000000
--- a/src/main/java/me/nvus/xprison/enchants/managers/EnchantsManager.java
+++ /dev/null
@@ -1,560 +0,0 @@
-package me.nvus.xprison.enchants.managers;
-
-import com.saicone.rtag.util.ServerInstance;
-import me.nvus.xprison.api.enums.LostCause;
-import me.nvus.xprison.api.enums.ReceiveCause;
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.api.events.XPrisonPlayerEnchantEvent;
-import me.nvus.xprison.enchants.gui.DisenchantGUI;
-import me.nvus.xprison.enchants.gui.EnchantGUI;
-import me.nvus.xprison.enchants.model.XPrisonEnchantment;
-import me.nvus.xprison.enchants.repo.EnchantsRepository;
-import me.nvus.xprison.enchants.utils.EnchantUtils;
-import me.nvus.xprison.pickaxelevels.XPrisonPickaxeLevels;
-import me.nvus.xprison.pickaxelevels.model.PickaxeLevel;
-import me.nvus.xprison.utils.Constants;
-import me.nvus.xprison.utils.compat.CompMaterial;
-import me.nvus.xprison.utils.item.ItemStackBuilder;
-import me.nvus.xprison.utils.item.PrisonItem;
-import me.nvus.xprison.utils.misc.RegionUtils;
-import me.nvus.xprison.utils.player.PlayerUtils;
-import me.nvus.xprison.utils.text.TextUtils;
-import me.clip.placeholderapi.PlaceholderAPI;
-import me.lucko.helper.Events;
-import me.lucko.helper.Schedulers;
-import me.lucko.helper.time.Time;
-import org.bukkit.Material;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-import org.bukkit.event.block.BlockBreakEvent;
-import org.bukkit.inventory.ItemFlag;
-import org.bukkit.inventory.ItemStack;
-import org.bukkit.inventory.meta.ItemMeta;
-import org.codemc.worldguardwrapper.flag.WrappedState;
-
-import java.util.*;
-import java.util.function.BiConsumer;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-public class EnchantsManager {
-
- private static final String EXCLUDE_PERMISSION = "xprison.enchant.exclude.";
- private static final String UNBREAK_PERMISSION = "xprison.pickaxe.unbreakable";
- private static final boolean USE_META_UNBREAK = ServerInstance.verNumber >= 11;
- private static final Pattern PICKAXE_LORE_ENCHANT_PATTER = Pattern.compile("(?i)%Enchant-\\d+%");
-
- private final XPrisonEnchants plugin;
- private final List lockedPlayers;
-
- public EnchantsManager(XPrisonEnchants plugin) {
- this.plugin = plugin;
- this.lockedPlayers = Collections.synchronizedList(new ArrayList<>());
- }
-
- public Map getItemEnchants(ItemStack itemStack) {
-
- if (itemStack == null || itemStack.getType() == Material.AIR) {
- return new HashMap<>();
- }
-
- return new PrisonItem(itemStack).getEnchants(getEnchantsRepository());
- }
-
- public ItemStack updatePickaxe(Player player, ItemStack item) {
-
- if (item == null || !this.plugin.getCore().isPickaxeSupported(item.getType())) {
- return item;
- }
-
- return this.applyLoreToPickaxe(player, item);
- }
-
- private ItemStack applyLoreToPickaxe(Player player, ItemStack item) {
-
- ItemMeta meta = item.getItemMeta();
- List lore = new ArrayList<>();
-
- boolean pickaxeLevels = this.plugin.getCore().isModuleEnabled(XPrisonPickaxeLevels.MODULE_NAME);
-
- PickaxeLevel currentLevel = null;
- PickaxeLevel nextLevel = null;
- String pickaxeProgressBar = "";
-
- if (pickaxeLevels) {
- currentLevel = this.plugin.getCore().getPickaxeLevels().getPickaxeLevelsManager().getPickaxeLevel(item).orElse(null);
- nextLevel = this.plugin.getCore().getPickaxeLevels().getPickaxeLevelsManager().getNextPickaxeLevel(currentLevel).orElse(null);
- pickaxeProgressBar = this.plugin.getCore().getPickaxeLevels().getPickaxeLevelsManager().getProgressBar(item);
- }
-
- long blocksBroken = getBlocksBroken(item);
- final PrisonItem prisonItem = new PrisonItem(item);
- Map enchants = prisonItem.getEnchants(getEnchantsRepository());
-
- List pickaxeLore = this.plugin.getEnchantsConfig().getPickaxeLore();
-
- final boolean isUnbreakable;
- Boolean unbreakResult = null;
- if (USE_META_UNBREAK ? meta.isUnbreakable() : prisonItem.isUnbreakable()) {
- if (!this.plugin.getEnchantsConfig().isUseUnbreakablePermission() || player.hasPermission(UNBREAK_PERMISSION)) {
- isUnbreakable = true;
- } else {
- isUnbreakable = false;
- unbreakResult = false;
- }
- } else {
- if (this.plugin.getEnchantsConfig().isUseUnbreakablePermission() && player.hasPermission(UNBREAK_PERMISSION)) {
- isUnbreakable = true;
- unbreakResult = true;
- } else {
- isUnbreakable = false;
- }
- }
- final String durability = isUnbreakable ? "∞" : String.valueOf(item.getType().getMaxDurability() - EnchantUtils.getDurability(item, meta));
- if (unbreakResult != null) {
- if (USE_META_UNBREAK) {
- meta.setUnbreakable(unbreakResult);
- } else {
- if (unbreakResult) {
- prisonItem.setUnbreakable(true);
- } else {
- prisonItem.remove("Unbreakable");
- }
- prisonItem.load();
- meta = item.getItemMeta();
- }
- }
-
- for (String s : pickaxeLore) {
- s = s.replace("%Blocks%", String.valueOf(blocksBroken));
- s = s.replace("%Durability%", durability);
-
- if (pickaxeLevels) {
- s = s.replace("%Blocks_Required%", nextLevel == null ? "∞" : String.valueOf(nextLevel.getBlocksRequired()));
- s = s.replace("%PickaxeLevel%", currentLevel == null ? "0" : String.valueOf(currentLevel.getLevel()));
- s = s.replace("%PickaxeProgress%", pickaxeProgressBar);
- }
-
- Matcher matcher = PICKAXE_LORE_ENCHANT_PATTER.matcher(s);
-
- if (matcher.find()) {
- int enchId = Integer.parseInt(matcher.group().replaceAll("\\D", ""));
- XPrisonEnchantment enchantment = getEnchantsRepository().getEnchantById(enchId);
-
- if (enchantment != null) {
- int enchLvl = enchants.getOrDefault(enchantment, 0);
- if (enchLvl > 0) {
- final String line;
- if (player.hasPermission(EXCLUDE_PERMISSION + enchantment.getRawName())) {
- line = this.plugin.getEnchantsConfig().getExcludedFormat()
- .replace("%Enchant%", enchantment.getNameUncolor())
- .replace("%Level%", this.plugin.getEnchantsConfig().getLevelFormat().format(enchLvl));
- } else {
- line = enchantment.getName() + " " + this.plugin.getEnchantsConfig().getLevelFormat().format(enchLvl);
- }
- s = s.replace(matcher.group(), line);
- } else {
- continue;
- }
- } else {
- continue;
- }
- }
-
- if (this.plugin.getCore().isPlaceholderAPIEnabled()) {
- s = PlaceholderAPI.setPlaceholders(player, s);
- }
-
- lore.add(TextUtils.applyColor(s));
- }
-
- meta.setLore(lore);
- meta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
- item.setItemMeta(meta);
- return item;
- }
-
- private EnchantsRepository getEnchantsRepository() {
- return this.plugin.getEnchantsRepository();
- }
-
- public long getBlocksBroken(ItemStack item) {
-
- if (item == null || item.getType() == Material.AIR) {
- return 0;
- }
-
- return new PrisonItem(item).getBrokenBlocks();
- }
-
- public synchronized void addBlocksBrokenToItem(Player p, int amount) {
-
- if (amount == 0) {
- return;
- }
-
- final PrisonItem prisonItem = new PrisonItem(p.getItemInHand());
- prisonItem.addBrokenBlocks(amount);
- ItemStack item = prisonItem.loadCopy();
- applyLoreToPickaxe(p, item);
- p.setItemInHand(item);
- }
-
- public synchronized void addBlocksBrokenToItem(Player player, ItemStack item, int amount) {
-
- if (amount == 0) {
- return;
- }
-
- final PrisonItem prisonItem = new PrisonItem(item);
- prisonItem.addBrokenBlocks(amount);
- player.setItemInHand(prisonItem.loadCopy());
- applyLoreToPickaxe(player, player.getItemInHand());
- }
-
- public synchronized int getEnchantLevel(ItemStack itemStack, XPrisonEnchantment enchantment) {
-
- if (enchantment == null || itemStack == null || itemStack.getType() == Material.AIR) {
- return 0;
- }
-
- return Math.min(new PrisonItem(itemStack).getEnchantLevel(enchantment), enchantment.getMaxLevel());
- }
-
- public void forEachEffectiveEnchant(Player player, ItemStack item, BiConsumer consumer) {
- for (var entry : this.getItemEnchants(item).entrySet()) {
- final XPrisonEnchantment enchant = entry.getKey();
- if (enchant.isEnabled() && !player.hasPermission(EXCLUDE_PERMISSION + enchant.getRawName())) {
- consumer.accept(enchant, entry.getValue());
- }
- }
- }
-
- public void handleBlockBreak(BlockBreakEvent e, ItemStack pickAxe) {
-
- this.addBlocksBrokenToItem(e.getPlayer(), 1);
-
- if (RegionUtils.getRegionWithHighestPriorityAndFlag(e.getBlock().getLocation(), Constants.ENCHANTS_WG_FLAG_NAME, WrappedState.ALLOW) == null) {
- this.plugin.getCore().debug("EnchantsManager::handleBlockBreak >> No region with flag upc-enchants found. Enchants will not be triggered.", this.plugin);
- return;
- }
-
- forEachEffectiveEnchant(e.getPlayer(), pickAxe, (enchant, level) -> enchant.onBlockBreak(e, level));
- }
-
- public void handlePickaxeEquip(Player p, ItemStack newItem) {
- forEachEffectiveEnchant(p, newItem, (enchant, level) -> enchant.onEquip(p, newItem, level));
- }
-
- public void handlePickaxeUnequip(Player p, ItemStack newItem) {
- forEachEffectiveEnchant(p, newItem, (enchant, level) -> enchant.onUnequip(p, newItem, level));
- }
-
- public ItemStack setEnchantLevel(Player player, ItemStack item, XPrisonEnchantment enchantment, int level) {
-
- if (enchantment == null || item == null) {
- return item;
- }
-
- final PrisonItem prisonItem = new PrisonItem(item);
- prisonItem.setEnchant(enchantment, level);
- prisonItem.load();
- return this.applyLoreToPickaxe(player, item);
- }
-
- public ItemStack removeEnchant(Player player, ItemStack item, XPrisonEnchantment enchantment) {
- return setEnchantLevel(player, item, enchantment, 0);
- }
-
- public void buyEnchnant(XPrisonEnchantment enchantment, EnchantGUI gui, int currentLevel, int addition) {
-
- if (currentLevel >= enchantment.getMaxLevel()) {
- PlayerUtils.sendMessage(gui.getPlayer(), plugin.getEnchantsConfig().getMessage("enchant_max_level"));
- return;
- }
-
- if (currentLevel + addition > enchantment.getMaxLevel()) {
- PlayerUtils.sendMessage(gui.getPlayer(), plugin.getEnchantsConfig().getMessage("enchant_max_level_exceed"));
- return;
- }
-
- long totalCost = 0;
-
- long startTime = Time.nowMillis();
-
- for (int j = 0; j < addition; j++) {
- totalCost += enchantment.getCostOfLevel(currentLevel + j + 1);
- }
-
- this.plugin.getCore().debug(String.format("Calculation of levels %,d - %,d of %s enchant took %dms", currentLevel + 1, currentLevel + addition + 1, enchantment.getRawName(), Time.nowMillis() - startTime), this.plugin);
-
- if (!plugin.getCore().getTokens().getApi().hasEnough(gui.getPlayer(), totalCost)) {
- PlayerUtils.sendMessage(gui.getPlayer(), plugin.getEnchantsConfig().getMessage("not_enough_tokens"));
- return;
- }
-
- XPrisonPlayerEnchantEvent event = new XPrisonPlayerEnchantEvent(gui.getPlayer(), totalCost, currentLevel + addition);
-
- Events.callSync(event);
-
- if (event.isCancelled()) {
- return;
- }
-
- plugin.getCore().getTokens().getApi().removeTokens(gui.getPlayer(), totalCost, LostCause.ENCHANT);
-
- this.setEnchantLevel(gui.getPlayer(), gui.getPickAxe(), enchantment, currentLevel + addition);
-
- enchantment.onUnequip(gui.getPlayer(), gui.getPickAxe(), currentLevel);
- enchantment.onEquip(gui.getPlayer(), gui.getPickAxe(), currentLevel + addition);
-
- gui.getPlayer().getInventory().setItem(gui.getPickaxePlayerInventorySlot(), gui.getPickAxe());
-
- if (addition == 1) {
- PlayerUtils.sendMessage(gui.getPlayer(), plugin.getEnchantsConfig().getMessage("enchant_bought").replace("%tokens%", String.format("%,d", totalCost)));
- } else {
- PlayerUtils.sendMessage(gui.getPlayer(), plugin.getEnchantsConfig().getMessage("enchant_bought_multiple")
- .replace("%amount%", String.valueOf(addition))
- .replace("%enchant%", enchantment.getName())
- .replace("%tokens%", String.format("%,d", totalCost)));
- }
- }
-
- public void disenchant(XPrisonEnchantment enchantment, DisenchantGUI gui, int currentLevel, int substraction) {
-
- if (currentLevel <= 0) {
- PlayerUtils.sendMessage(gui.getPlayer(), plugin.getEnchantsConfig().getMessage("enchant_no_level"));
- return;
- }
-
- if (currentLevel - substraction < 0) {
- PlayerUtils.sendMessage(gui.getPlayer(), plugin.getEnchantsConfig().getMessage("enchant_min_level_exceed"));
- return;
- }
-
- long totalRefunded = 0;
-
- for (int j = 0; j < substraction; j++) {
- totalRefunded += enchantment.getRefundForLevel(currentLevel - j);
- }
-
- plugin.getCore().getTokens().getTokensManager().giveTokens(gui.getPlayer(), totalRefunded, null, ReceiveCause.REFUND);
-
- this.setEnchantLevel(gui.getPlayer(), gui.getPickAxe(), enchantment, currentLevel - substraction);
-
- enchantment.onUnequip(gui.getPlayer(), gui.getPickAxe(), currentLevel);
- enchantment.onEquip(gui.getPlayer(), gui.getPickAxe(), currentLevel - substraction);
-
- gui.getPlayer().getInventory().setItem(gui.getPickaxePlayerInventorySlot(), gui.getPickAxe());
-
- PlayerUtils.sendMessage(gui.getPlayer(), plugin.getEnchantsConfig().getMessage("enchant_refunded").replace("%amount%", String.format("%,d", substraction)).replace("%enchant%", enchantment.getName()));
- PlayerUtils.sendMessage(gui.getPlayer(), plugin.getEnchantsConfig().getMessage("enchant_tokens_back").replace("%tokens%", String.format("%,d", totalRefunded)));
- }
-
- public void disenchantMax(XPrisonEnchantment enchantment, DisenchantGUI gui, int currentLevel) {
-
- if (currentLevel <= 0) {
- PlayerUtils.sendMessage(gui.getPlayer(), plugin.getEnchantsConfig().getMessage("enchant_no_level"));
- return;
- }
-
- if (this.lockedPlayers.contains(gui.getPlayer().getUniqueId())) {
- PlayerUtils.sendMessage(gui.getPlayer(), plugin.getEnchantsConfig().getMessage("transaction_in_progress"));
- return;
- }
-
- this.lockedPlayers.add(gui.getPlayer().getUniqueId());
-
-
- Schedulers.async().run(() -> {
- int current = currentLevel;
- int levelsToRefund = current;
-
- long totalRefunded = 0;
-
- while (gui.getPlayer().isOnline() && current > 0) {
- totalRefunded += enchantment.getRefundForLevel(current);
- current--;
- }
-
- if (!gui.getPlayer().isOnline()) {
- this.lockedPlayers.remove(gui.getPlayer().getUniqueId());
- return;
- }
-
- int finalCurrent = current;
-
- this.lockedPlayers.remove(gui.getPlayer().getUniqueId());
-
- Schedulers.sync().run(() -> {
- enchantment.onUnequip(gui.getPlayer(), gui.getPickAxe(), currentLevel);
- this.setEnchantLevel(gui.getPlayer(), gui.getPickAxe(), enchantment, finalCurrent);
- gui.getPlayer().getInventory().setItem(gui.getPickaxePlayerInventorySlot(), gui.getPickAxe());
- enchantment.onEquip(gui.getPlayer(), gui.getPickAxe(), finalCurrent);
- gui.redraw();
- });
-
- plugin.getCore().getTokens().getTokensManager().giveTokens(gui.getPlayer(), totalRefunded, null, ReceiveCause.REFUND);
-
- PlayerUtils.sendMessage(gui.getPlayer(), plugin.getEnchantsConfig().getMessage("enchant_refunded").replace("%amount%", String.format("%,d", levelsToRefund)).replace("%enchant%", enchantment.getName()));
- PlayerUtils.sendMessage(gui.getPlayer(), plugin.getEnchantsConfig().getMessage("enchant_tokens_back").replace("%tokens%", String.format("%,d", totalRefunded)));
- });
- }
-
- public void buyMaxEnchant(XPrisonEnchantment enchantment, EnchantGUI gui, int currentLevel) {
-
- if (currentLevel >= enchantment.getMaxLevel()) {
- PlayerUtils.sendMessage(gui.getPlayer(), plugin.getEnchantsConfig().getMessage("enchant_max_level"));
- return;
- }
-
- if (this.lockedPlayers.contains(gui.getPlayer().getUniqueId())) {
- PlayerUtils.sendMessage(gui.getPlayer(), plugin.getEnchantsConfig().getMessage("transaction_in_progress"));
- return;
- }
-
- this.lockedPlayers.add(gui.getPlayer().getUniqueId());
-
- Schedulers.async().run(() -> {
- int levelsToBuy = 0;
- long totalCost = 0;
-
- while (gui.getPlayer().isOnline() && (currentLevel + levelsToBuy + 1) <= enchantment.getMaxLevel() && this.plugin.getCore().getTokens().getApi().hasEnough(gui.getPlayer(), totalCost + enchantment.getCostOfLevel(currentLevel + levelsToBuy + 1))) {
- levelsToBuy += 1;
- totalCost += enchantment.getCostOfLevel(currentLevel + levelsToBuy + 1);
- }
-
- if (!gui.getPlayer().isOnline()) {
- this.lockedPlayers.remove(gui.getPlayer().getUniqueId());
- return;
- }
-
- if (levelsToBuy == 0) {
- this.lockedPlayers.remove(gui.getPlayer().getUniqueId());
- PlayerUtils.sendMessage(gui.getPlayer(), plugin.getEnchantsConfig().getMessage("not_enough_tokens"));
- return;
- }
-
- XPrisonPlayerEnchantEvent event = new XPrisonPlayerEnchantEvent(gui.getPlayer(), totalCost, currentLevel + levelsToBuy);
-
- Events.callSync(event);
-
- if (event.isCancelled()) {
- this.lockedPlayers.remove(gui.getPlayer().getUniqueId());
- return;
- }
-
- plugin.getCore().getTokens().getApi().removeTokens(gui.getPlayer(), totalCost, LostCause.ENCHANT);
-
- int finalLevelsToBuy = levelsToBuy;
-
- this.lockedPlayers.remove(gui.getPlayer().getUniqueId());
- Schedulers.sync().run(() -> {
- enchantment.onUnequip(gui.getPlayer(), gui.getPickAxe(), currentLevel);
- this.setEnchantLevel(gui.getPlayer(), gui.getPickAxe(), enchantment, currentLevel + finalLevelsToBuy);
- enchantment.onEquip(gui.getPlayer(), gui.getPickAxe(), currentLevel + finalLevelsToBuy);
- gui.getPlayer().getInventory().setItem(gui.getPickaxePlayerInventorySlot(), gui.getPickAxe());
- gui.redraw();
- });
-
- if (levelsToBuy == 1) {
- PlayerUtils.sendMessage(gui.getPlayer(), plugin.getEnchantsConfig().getMessage("enchant_bought").replace("%tokens%", String.format("%,d", totalCost)));
- } else {
- PlayerUtils.sendMessage(gui.getPlayer(), plugin.getEnchantsConfig().getMessage("enchant_bought_multiple")
- .replace("%amount%", String.valueOf(levelsToBuy))
- .replace("%enchant%", enchantment.getName())
- .replace("%tokens%", String.format("%,d", totalCost)));
- }
- });
- }
-
- public long getPickaxeValue(ItemStack pickAxe) {
-
- long sum = 0;
-
- Map playerEnchants = this.getItemEnchants(pickAxe);
-
- for (XPrisonEnchantment enchantment : playerEnchants.keySet()) {
- for (int i = 1; i <= playerEnchants.get(enchantment); i++) {
- sum += enchantment.getCostOfLevel(i);
- }
- }
- return sum;
- }
-
- // /givepickaxe
- public void givePickaxe(Player target, Map enchants, String pickaxeName, CommandSender sender) {
- ItemStackBuilder pickaxeBuilder = ItemStackBuilder.of(Material.DIAMOND_PICKAXE);
-
- if (pickaxeName != null) {
- pickaxeBuilder.name(pickaxeName);
- }
-
- ItemStack pickaxe = pickaxeBuilder.build();
-
- for (Map.Entry entry : enchants.entrySet()) {
- this.setEnchantLevel(target, pickaxe, entry.getKey(), entry.getValue());
- }
-
- pickaxe = this.applyLoreToPickaxe(target, pickaxe);
-
- if (target == null && sender instanceof Player) {
- target = (Player) sender;
- }
-
- if (target != null) {
- if (target.getInventory().firstEmpty() == -1) {
- PlayerUtils.sendMessage(sender, this.plugin.getEnchantsConfig().getMessage("pickaxe_inventory_full").replace("%player%", target.getName()));
- return;
- }
-
- target.getInventory().addItem(pickaxe);
- PlayerUtils.sendMessage(sender, this.plugin.getEnchantsConfig().getMessage("pickaxe_given").replace("%player%", target.getName()));
- PlayerUtils.sendMessage(target, this.plugin.getEnchantsConfig().getMessage("pickaxe_received").replace("%sender%", sender.getName()));
- }
- }
-
- public ItemStack createFirstJoinPickaxe(Player player) {
-
- String pickaxeName = this.plugin.getEnchantsConfig().getFirstJoinPickaxeName();
- pickaxeName = pickaxeName.replace("%player%", player.getName());
-
- if (this.plugin.getCore().isPlaceholderAPIEnabled()) {
- pickaxeName = PlaceholderAPI.setPlaceholders(player, pickaxeName);
- }
-
- CompMaterial material = this.plugin.getEnchantsConfig().getFirstJoinPickaxeMaterial();
- ItemStack item = ItemStackBuilder.of(material.toItem()).name(pickaxeName).build();
-
- List firstJoinPickaxeEnchants = this.plugin.getEnchantsConfig().getFirstJoinPickaxeEnchants();
-
- for (String s : firstJoinPickaxeEnchants) {
- try {
- String[] data = s.split(" ");
- XPrisonEnchantment enchantment = getEnchantsRepository().getEnchantByName(data[0]);
- int level = Integer.parseInt(data[1]);
- this.setEnchantLevel(player, item, enchantment, level);
- } catch (Exception e) {
-
- }
- }
-
- return this.applyLoreToPickaxe(player, item);
- }
-
- public boolean hasEnchants(ItemStack item) {
- return item != null && !this.getItemEnchants(item).isEmpty();
- }
-
- public void enable() {
-
- }
-
- public void disable() {
-
- }
-
- public void giveFirstJoinPickaxe(Player target) {
- target.getInventory().addItem(this.createFirstJoinPickaxe(target));
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/managers/RespawnManager.java b/src/main/java/me/nvus/xprison/enchants/managers/RespawnManager.java
deleted file mode 100644
index 00f7b7d..0000000
--- a/src/main/java/me/nvus/xprison/enchants/managers/RespawnManager.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package me.nvus.xprison.enchants.managers;
-
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import org.bukkit.entity.Player;
-import org.bukkit.inventory.ItemStack;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-
-public class RespawnManager {
-
- private final XPrisonEnchants plugin;
- private final Map> respawnItems;
-
-
- public RespawnManager(XPrisonEnchants plugin) {
- this.plugin = plugin;
- this.respawnItems = new HashMap<>();
- }
-
- public void addRespawnItems(Player player, List items) {
- this.respawnItems.put(player.getUniqueId(), items);
- }
-
- public void handleRespawn(Player player) {
- if (this.respawnItems.containsKey(player.getUniqueId())) {
- this.respawnItems.remove(player.getUniqueId()).forEach(itemStack -> {
- player.getInventory().addItem(itemStack);
- });
- }
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/model/LevelFormat.java b/src/main/java/me/nvus/xprison/enchants/model/LevelFormat.java
deleted file mode 100644
index 4319a36..0000000
--- a/src/main/java/me/nvus/xprison/enchants/model/LevelFormat.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package me.nvus.xprison.enchants.model;
-
-import java.util.Map;
-import java.util.TreeMap;
-
-public enum LevelFormat {
-
- NUMBER, ROMAN, FIXED;
-
- private static final Map FIXED_NUMBERS = Map.of(
- 1, "I",
- 2, "II",
- 3, "III",
- 4, "IV",
- 5, "V",
- 6, "VI",
- 7, "VII",
- 8, "VIII",
- 9, "IX",
- 10, "X"
- );
-
- private static final TreeMap ROMAN_NUMBERS = new TreeMap<>();
-
- static {
- ROMAN_NUMBERS.put(1000, "M");
- ROMAN_NUMBERS.put(900, "CM");
- ROMAN_NUMBERS.put(500, "D");
- ROMAN_NUMBERS.put(400, "CD");
- ROMAN_NUMBERS.put(100, "C");
- ROMAN_NUMBERS.put(90, "XC");
- ROMAN_NUMBERS.put(50, "L");
- ROMAN_NUMBERS.put(40, "XL");
- ROMAN_NUMBERS.put(10, "X");
- ROMAN_NUMBERS.put(9, "IX");
- ROMAN_NUMBERS.put(5, "V");
- ROMAN_NUMBERS.put(4, "IV");
- ROMAN_NUMBERS.put(1, "I");
- }
-
- public static LevelFormat of(String name) {
- if (name == null) {
- return LevelFormat.NUMBER;
- }
- switch (name.trim().toUpperCase()) {
- case "ROMAN":
- return LevelFormat.ROMAN;
- case "FIXED":
- return LevelFormat.FIXED;
- case "NUMBER":
- default:
- return LevelFormat.NUMBER;
- }
- }
-
- public String format(int level) {
- if (this == NUMBER || level < 1) {
- return String.valueOf(level);
- }
- if (level <= 10) {
- return FIXED_NUMBERS.get(level);
- }
- if (this == ROMAN) {
- return toRoman(level);
- }
- return String.valueOf(level);
- }
-
- private String toRoman(int level) {
- final int mapLevel = ROMAN_NUMBERS.floorKey(level);
- if (mapLevel == level) {
- return ROMAN_NUMBERS.get(level);
- }
- return ROMAN_NUMBERS.get(mapLevel) + toRoman(level - mapLevel);
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/model/Refundable.java b/src/main/java/me/nvus/xprison/enchants/model/Refundable.java
deleted file mode 100644
index d74a66b..0000000
--- a/src/main/java/me/nvus/xprison/enchants/model/Refundable.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package me.nvus.xprison.enchants.model;
-
-public interface Refundable {
-
- boolean isRefundEnabled();
-
- int getRefundGuiSlot();
-
- double getRefundPercentage();
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/model/XPrisonEnchantment.java b/src/main/java/me/nvus/xprison/enchants/model/XPrisonEnchantment.java
deleted file mode 100644
index 06355a7..0000000
--- a/src/main/java/me/nvus/xprison/enchants/model/XPrisonEnchantment.java
+++ /dev/null
@@ -1,116 +0,0 @@
-package me.nvus.xprison.enchants.model;
-
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.pickaxelevels.XPrisonPickaxeLevels;
-import me.nvus.xprison.pickaxelevels.model.PickaxeLevel;
-import me.nvus.xprison.utils.compat.CompMaterial;
-import me.nvus.xprison.utils.text.TextUtils;
-import lombok.Getter;
-import org.bukkit.Material;
-import org.bukkit.entity.Player;
-import org.bukkit.event.block.BlockBreakEvent;
-import org.bukkit.inventory.ItemStack;
-
-import java.util.List;
-import java.util.Optional;
-
-@Getter
-public abstract class XPrisonEnchantment implements Refundable {
-
- protected final XPrisonEnchants plugin;
-
- protected final int id;
- private String rawName;
- private String name;
- private String nameUncolor;
- private String guiName;
- private String base64;
- private Material material;
- private List description;
- private boolean enabled;
- private int guiSlot;
- private int maxLevel;
- private long cost;
- private long increaseCost;
- private int requiredPickaxeLevel;
- private boolean messagesEnabled;
- private boolean refundEnabled;
- private int refundGuiSlot;
- private double refundPercentage;
-
- public XPrisonEnchantment(XPrisonEnchants plugin, int id) {
- this.plugin = plugin;
- this.id = id;
- this.reloadDefaultAttributes();
- this.reload();
- }
-
- private void reloadDefaultAttributes() {
- this.rawName = this.plugin.getEnchantsConfig().getYamlConfig().getString("enchants." + id + ".RawName");
- this.name = TextUtils.applyColor(this.plugin.getEnchantsConfig().getYamlConfig().getString("enchants." + id + ".Name"));
- this.nameUncolor = this.name.replaceAll("§.", "");
- this.guiName = TextUtils.applyColor(this.plugin.getEnchantsConfig().getYamlConfig().getString("enchants." + id + ".GuiName"));
- this.material = CompMaterial.fromString(this.plugin.getEnchantsConfig().getYamlConfig().getString("enchants." + id + ".Material")).toMaterial();
- this.description = TextUtils.applyColor(this.plugin.getEnchantsConfig().getYamlConfig().getStringList("enchants." + id + ".Description"));
- this.enabled = this.plugin.getEnchantsConfig().getYamlConfig().getBoolean("enchants." + id + ".Enabled");
- this.guiSlot = this.plugin.getEnchantsConfig().getYamlConfig().getInt("enchants." + id + ".InGuiSlot");
- this.maxLevel = this.plugin.getEnchantsConfig().getYamlConfig().getInt("enchants." + id + ".Max");
- this.cost = this.plugin.getEnchantsConfig().getYamlConfig().getLong("enchants." + id + ".Cost");
- this.increaseCost = this.plugin.getEnchantsConfig().getYamlConfig().getLong("enchants." + id + ".Increase-Cost-by");
- this.requiredPickaxeLevel = this.plugin.getEnchantsConfig().getYamlConfig().getInt("enchants." + id + ".Pickaxe-Level-Required");
- this.messagesEnabled = this.plugin.getEnchantsConfig().getYamlConfig().getBoolean("enchants." + id + ".Messages-Enabled", true);
- this.base64 = this.plugin.getEnchantsConfig().getYamlConfig().getString("enchants." + id + ".Base64", null);
- this.refundEnabled = this.plugin.getEnchantsConfig().getYamlConfig().getBoolean("enchants." + this.id + ".Refund.Enabled", true);
- this.refundGuiSlot = this.plugin.getEnchantsConfig().getYamlConfig().getInt("enchants." + this.id + ".Refund.InGuiSlot");
- this.refundPercentage = this.plugin.getEnchantsConfig().getYamlConfig().getDouble("enchants." + this.id + ".Refund.Percentage", 100.0d);
- }
-
- public abstract String getAuthor();
-
- public abstract void onEquip(Player p, ItemStack pickAxe, int level);
-
- public abstract void onUnequip(Player p, ItemStack pickAxe, int level);
-
- public abstract void onBlockBreak(BlockBreakEvent e, int enchantLevel);
-
- public abstract double getChanceToTrigger(int enchantLevel);
-
- public void reload() {
- this.reloadDefaultAttributes();
- }
-
- public long getCostOfLevel(int level) {
- return (this.cost + (this.increaseCost * (level - 1)));
- }
-
- public long getRefundForLevel(int level) {
- return (long) (this.getCostOfLevel(level) * (this.getRefundPercentage() / 100.0));
- }
-
- @Override
- public boolean isRefundEnabled() {
- return refundEnabled;
- }
-
- @Override
- public double getRefundPercentage() {
- return refundPercentage;
- }
-
- @Override
- public int getRefundGuiSlot() {
- return refundGuiSlot;
- }
-
- public int getMaxLevel() {
- return this.maxLevel == -1 ? Integer.MAX_VALUE : this.maxLevel;
- }
-
- public boolean canBeBought(ItemStack pickAxe) {
- if (!this.plugin.getCore().isModuleEnabled(XPrisonPickaxeLevels.MODULE_NAME)) {
- return true;
- }
- Optional pickaxeLevelOptional = this.plugin.getCore().getPickaxeLevels().getApi().getPickaxeLevel(pickAxe);
- return pickaxeLevelOptional.map(level -> level.getLevel() >= this.requiredPickaxeLevel).orElse(true);
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/model/impl/AutoSellEnchant.java b/src/main/java/me/nvus/xprison/enchants/model/impl/AutoSellEnchant.java
deleted file mode 100644
index f1293df..0000000
--- a/src/main/java/me/nvus/xprison/enchants/model/impl/AutoSellEnchant.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package me.nvus.xprison.enchants.model.impl;
-
-import me.nvus.xprison.autosell.XPrisonAutoSell;
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.model.XPrisonEnchantment;
-import me.nvus.xprison.utils.misc.RegionUtils;
-import org.bukkit.entity.Player;
-import org.bukkit.event.block.BlockBreakEvent;
-import org.bukkit.inventory.ItemStack;
-
-import java.util.concurrent.ThreadLocalRandom;
-
-public final class AutoSellEnchant extends XPrisonEnchantment {
-
- private double chance;
-
- public AutoSellEnchant(XPrisonEnchants instance) {
- super(instance, 19);
- this.chance = plugin.getEnchantsConfig().getYamlConfig().getDouble("enchants." + id + ".Chance");
- }
-
- @Override
- public String getAuthor() {
- return "Drawethree";
- }
-
- @Override
- public void onEquip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onUnequip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onBlockBreak(BlockBreakEvent e, int enchantLevel) {
-
- if (!this.plugin.getCore().isModuleEnabled(XPrisonAutoSell.MODULE_NAME)) {
- return;
- }
-
- double chance = getChanceToTrigger(enchantLevel);
- if (chance < ThreadLocalRandom.current().nextDouble(100)) {
- return;
- }
-
- this.plugin.getCore().getAutoSell().getManager().sellAll(e.getPlayer(), RegionUtils.getRegionWithHighestPriority(e.getPlayer().getLocation()));
-
- }
-
- @Override
- public double getChanceToTrigger(int enchantLevel) {
- return chance * enchantLevel;
- }
-
- @Override
- public void reload() {
- super.reload();
- this.chance = plugin.getEnchantsConfig().getYamlConfig().getDouble("enchants." + id + ".Chance");
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/model/impl/BackpackAutoSellEnchant.java b/src/main/java/me/nvus/xprison/enchants/model/impl/BackpackAutoSellEnchant.java
deleted file mode 100644
index 642d771..0000000
--- a/src/main/java/me/nvus/xprison/enchants/model/impl/BackpackAutoSellEnchant.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package me.nvus.xprison.enchants.model.impl;
-
-import dev.drawethree.ultrabackpacks.api.UltraBackpacksAPI;
-import dev.drawethree.ultrabackpacks.api.exception.BackpackNotFoundException;
-import me.nvus.xprison.XPrison;
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.model.XPrisonEnchantment;
-import org.bukkit.entity.Player;
-import org.bukkit.event.block.BlockBreakEvent;
-import org.bukkit.inventory.ItemStack;
-
-import java.util.concurrent.ThreadLocalRandom;
-
-public final class BackpackAutoSellEnchant extends XPrisonEnchantment {
-
- private double chance;
-
- public BackpackAutoSellEnchant(XPrisonEnchants instance) {
- super(instance, 19);
- this.chance = plugin.getEnchantsConfig().getYamlConfig().getDouble("enchants." + id + ".Chance");
- }
-
- @Override
- public String getAuthor() {
- return "Drawethree";
- }
-
- @Override
- public void onEquip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onUnequip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onBlockBreak(BlockBreakEvent e, int enchantLevel) {
-
- if (!XPrison.getInstance().isUltraBackpacksEnabled()) {
- return;
- }
-
- double chance = getChanceToTrigger(enchantLevel);
-
- if (chance < ThreadLocalRandom.current().nextDouble(100)) {
- return;
- }
-
- try {
- UltraBackpacksAPI.sellBackpack(e.getPlayer(), true);
- } catch (BackpackNotFoundException ignored) {
- this.plugin.getCore().debug("BackpackAutoSellEnchant::onBlockBreak > Player " + e.getPlayer().getName() + " does not have backpack.", this.plugin);
- }
-
- }
-
- @Override
- public double getChanceToTrigger(int enchantLevel) {
- return this.chance * enchantLevel;
- }
-
- @Override
- public void reload() {
- super.reload();
- this.chance = plugin.getEnchantsConfig().getYamlConfig().getDouble("enchants." + id + ".Chance");
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/model/impl/BlessingEnchant.java b/src/main/java/me/nvus/xprison/enchants/model/impl/BlessingEnchant.java
deleted file mode 100644
index eb09602..0000000
--- a/src/main/java/me/nvus/xprison/enchants/model/impl/BlessingEnchant.java
+++ /dev/null
@@ -1,92 +0,0 @@
-package me.nvus.xprison.enchants.model.impl;
-
-import me.nvus.xprison.api.enums.ReceiveCause;
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.model.XPrisonEnchantment;
-import me.nvus.xprison.tokens.XPrisonTokens;
-import me.nvus.xprison.utils.player.PlayerUtils;
-import me.lucko.helper.utils.Players;
-import net.objecthunter.exp4j.Expression;
-import net.objecthunter.exp4j.ExpressionBuilder;
-import org.bukkit.entity.Player;
-import org.bukkit.event.block.BlockBreakEvent;
-import org.bukkit.inventory.ItemStack;
-
-import java.util.concurrent.ThreadLocalRandom;
-
-public final class BlessingEnchant extends XPrisonEnchantment {
-
- private double chance;
- private String amountToGiveExpression;
-
- public BlessingEnchant(XPrisonEnchants instance) {
- super(instance, 13);
- this.chance = plugin.getEnchantsConfig().getYamlConfig().getDouble("enchants." + id + ".Chance");
- this.amountToGiveExpression = plugin.getEnchantsConfig().getYamlConfig().getString("enchants." + id + ".Amount-To-Give");
- }
-
- @Override
- public String getAuthor() {
- return "Drawethree";
- }
-
- @Override
- public void onEquip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onUnequip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onBlockBreak(BlockBreakEvent e, int enchantLevel) {
-
- if (!this.plugin.getCore().isModuleEnabled(XPrisonTokens.MODULE_NAME)) {
- return;
- }
-
- double chance = getChanceToTrigger(enchantLevel);
-
- if (chance < ThreadLocalRandom.current().nextDouble(100)) {
- return;
- }
-
- long amount = (long) createExpression(enchantLevel).evaluate();
-
- for (Player p : Players.all()) {
- plugin.getCore().getTokens().getTokensManager().giveTokens(p, amount, null, ReceiveCause.MINING_OTHERS);
-
- if (!this.isMessagesEnabled()) {
- continue;
- }
-
- if (p.equals(e.getPlayer())) {
- PlayerUtils.sendMessage(p, plugin.getEnchantsConfig().getMessage("blessing_your").replace("%amount%", String.format("%,d", amount)));
- } else {
- PlayerUtils.sendMessage(p, plugin.getEnchantsConfig().getMessage("blessing_other").replace("%amount%", String.format("%,d", amount)).replace("%player%", e.getPlayer().getName()));
- }
- }
- }
-
- @Override
- public double getChanceToTrigger(int enchantLevel) {
- return chance * enchantLevel;
- }
-
- @Override
- public void reload() {
- super.reload();
- this.chance = plugin.getEnchantsConfig().getYamlConfig().getDouble("enchants." + id + ".Chance");
- this.amountToGiveExpression = plugin.getEnchantsConfig().getYamlConfig().getString("enchants." + id + ".Amount-To-Give");
- }
-
- private Expression createExpression(int level) {
- return new ExpressionBuilder(this.amountToGiveExpression)
- .variables("level")
- .build()
- .setVariable("level", level);
- }
-
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/model/impl/BlockBoosterEnchant.java b/src/main/java/me/nvus/xprison/enchants/model/impl/BlockBoosterEnchant.java
deleted file mode 100644
index 9250feb..0000000
--- a/src/main/java/me/nvus/xprison/enchants/model/impl/BlockBoosterEnchant.java
+++ /dev/null
@@ -1,127 +0,0 @@
-package me.nvus.xprison.enchants.model.impl;
-
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.model.XPrisonEnchantment;
-import me.nvus.xprison.tokens.api.events.XPrisonBlockBreakEvent;
-import me.nvus.xprison.utils.player.PlayerUtils;
-import me.lucko.helper.Events;
-import me.lucko.helper.Schedulers;
-import me.lucko.helper.time.Time;
-import org.bukkit.ChatColor;
-import org.bukkit.block.Block;
-import org.bukkit.entity.Player;
-import org.bukkit.event.block.BlockBreakEvent;
-import org.bukkit.inventory.ItemStack;
-
-import java.util.*;
-import java.util.concurrent.ThreadLocalRandom;
-import java.util.concurrent.TimeUnit;
-
-public final class BlockBoosterEnchant extends XPrisonEnchantment {
-
- private static final Map BOOSTED_PLAYERS = new HashMap<>();
- private double chance;
-
- public BlockBoosterEnchant(XPrisonEnchants instance) {
- super(instance, 17);
- this.chance = plugin.getEnchantsConfig().getYamlConfig().getDouble("enchants." + id + ".Chance");
-
- Events.subscribe(XPrisonBlockBreakEvent.class)
- .handler(e -> {
- if (BOOSTED_PLAYERS.containsKey(e.getPlayer().getUniqueId())) {
- List blocks = new ArrayList<>();
- for (Block b : e.getBlocks()) {
- blocks.add(b);
- blocks.add(b);
- }
- e.setBlocks(blocks);
- }
- }).bindWith(instance.getCore());
- }
-
- public static boolean hasBlockBoosterRunning(Player p) {
- return BOOSTED_PLAYERS.containsKey(p.getUniqueId());
- }
-
- public static String getTimeLeft(Player p) {
-
- if (!BOOSTED_PLAYERS.containsKey(p.getUniqueId())) {
- return "";
- }
-
- long endTime = BOOSTED_PLAYERS.get(p.getUniqueId());
-
- if (System.currentTimeMillis() > endTime) {
- return "";
- }
-
-
- long timeLeft = endTime - System.currentTimeMillis();
-
- long days = timeLeft / (24 * 60 * 60 * 1000);
- timeLeft -= days * (24 * 60 * 60 * 1000);
-
- long hours = timeLeft / (60 * 60 * 1000);
- timeLeft -= hours * (60 * 60 * 1000);
-
- long minutes = timeLeft / (60 * 1000);
- timeLeft -= minutes * (60 * 1000);
-
- long seconds = timeLeft / (1000);
-
- timeLeft -= seconds * 1000;
-
- return ChatColor.GRAY + "(" + ChatColor.WHITE + days + "d " + hours + "h " + minutes + "m " + seconds + "s" + ChatColor.GRAY + ")";
- }
-
- @Override
- public void onEquip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onUnequip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onBlockBreak(BlockBreakEvent e, int enchantLevel) {
- if (hasBlockBoosterRunning(e.getPlayer())) {
- return;
- }
-
- double chance = getChanceToTrigger(enchantLevel);
-
- if (chance < ThreadLocalRandom.current().nextDouble(100)) {
- return;
- }
-
- PlayerUtils.sendMessage(e.getPlayer(), this.plugin.getEnchantsConfig().getMessage("block_booster_on"));
-
- BOOSTED_PLAYERS.put(e.getPlayer().getUniqueId(), Time.nowMillis() + TimeUnit.MINUTES.toMillis(1));
-
- Schedulers.sync().runLater(() -> {
- if (e.getPlayer().isOnline()) {
- PlayerUtils.sendMessage(e.getPlayer(), this.plugin.getEnchantsConfig().getMessage("block_booster_off"));
- }
- BOOSTED_PLAYERS.remove(e.getPlayer().getUniqueId());
- }, 5, TimeUnit.MINUTES);
-
- }
-
- @Override
- public double getChanceToTrigger(int enchantLevel) {
- return chance * enchantLevel;
- }
-
- @Override
- public void reload() {
- super.reload();
- this.chance = plugin.getEnchantsConfig().getYamlConfig().getDouble("enchants." + id + ".Chance");
- }
-
- @Override
- public String getAuthor() {
- return "Drawethree";
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/model/impl/CharityEnchant.java b/src/main/java/me/nvus/xprison/enchants/model/impl/CharityEnchant.java
deleted file mode 100644
index d1f4e8d..0000000
--- a/src/main/java/me/nvus/xprison/enchants/model/impl/CharityEnchant.java
+++ /dev/null
@@ -1,91 +0,0 @@
-package me.nvus.xprison.enchants.model.impl;
-
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.model.XPrisonEnchantment;
-import me.nvus.xprison.tokens.XPrisonTokens;
-import me.nvus.xprison.utils.player.PlayerUtils;
-import me.lucko.helper.utils.Players;
-import net.objecthunter.exp4j.Expression;
-import net.objecthunter.exp4j.ExpressionBuilder;
-import org.bukkit.entity.Player;
-import org.bukkit.event.block.BlockBreakEvent;
-import org.bukkit.inventory.ItemStack;
-
-import java.util.concurrent.ThreadLocalRandom;
-
-public final class CharityEnchant extends XPrisonEnchantment {
-
- private double chance;
- private String amountToGiveExpression;
-
- public CharityEnchant(XPrisonEnchants instance) {
- super(instance, 11);
- this.chance = plugin.getEnchantsConfig().getYamlConfig().getDouble("enchants." + id + ".Chance");
- this.amountToGiveExpression = plugin.getEnchantsConfig().getYamlConfig().getString("enchants." + id + ".Amount-To-Give");
- }
-
- @Override
- public String getAuthor() {
- return "Drawethree";
- }
-
- @Override
- public void onEquip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onUnequip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onBlockBreak(BlockBreakEvent e, int enchantLevel) {
-
- if (!this.plugin.getCore().isModuleEnabled(XPrisonTokens.MODULE_NAME)) {
- return;
- }
-
- double chance = getChanceToTrigger(enchantLevel);
-
- if (chance < ThreadLocalRandom.current().nextDouble(100)) {
- return;
- }
-
- long amount = (long) createExpression(enchantLevel).evaluate();
-
- for (Player p : Players.all()) {
- plugin.getCore().getEconomy().depositPlayer(p, amount);
-
- if (!this.isMessagesEnabled()) {
- continue;
- }
-
- if (p.equals(e.getPlayer())) {
- PlayerUtils.sendMessage(p, plugin.getEnchantsConfig().getMessage("charity_your").replace("%amount%", String.format("%,d", amount)));
- } else {
- PlayerUtils.sendMessage(p, plugin.getEnchantsConfig().getMessage("charity_other").replace("%amount%", String.format("%,d", amount)).replace("%player%", e.getPlayer().getName()));
- }
- }
-
- }
-
- @Override
- public double getChanceToTrigger(int enchantLevel) {
- return chance * enchantLevel;
- }
-
- @Override
- public void reload() {
- super.reload();
- this.chance = plugin.getEnchantsConfig().getYamlConfig().getDouble("enchants." + id + ".Chance");
- this.amountToGiveExpression = plugin.getEnchantsConfig().getYamlConfig().getString("enchants." + id + ".Amount-To-Give");
- }
-
- private Expression createExpression(int level) {
- return new ExpressionBuilder(this.amountToGiveExpression)
- .variables("level")
- .build()
- .setVariable("level", level);
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/model/impl/EfficiencyEnchant.java b/src/main/java/me/nvus/xprison/enchants/model/impl/EfficiencyEnchant.java
deleted file mode 100644
index 488cc83..0000000
--- a/src/main/java/me/nvus/xprison/enchants/model/impl/EfficiencyEnchant.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package me.nvus.xprison.enchants.model.impl;
-
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.model.XPrisonEnchantment;
-import org.bukkit.enchantments.Enchantment;
-import org.bukkit.entity.Player;
-import org.bukkit.event.block.BlockBreakEvent;
-import org.bukkit.inventory.ItemStack;
-import org.bukkit.inventory.meta.ItemMeta;
-
-public final class EfficiencyEnchant extends XPrisonEnchantment {
- public EfficiencyEnchant(XPrisonEnchants instance) {
- super(instance, 1);
- }
-
- @Override
- public void onEquip(Player p, ItemStack pickAxe, int level) {
- ItemMeta meta = pickAxe.getItemMeta();
- meta.addEnchant(Enchantment.DIG_SPEED, level, true);
- pickAxe.setItemMeta(meta);
- }
-
- @Override
- public void onUnequip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onBlockBreak(BlockBreakEvent e, int enchantLevel) {
-
- }
-
- @Override
- public double getChanceToTrigger(int enchantLevel) {
- return 100.0;
- }
-
- @Override
- public void reload() {
- super.reload();
- }
-
- @Override
- public String getAuthor() {
- return "Drawethree";
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/model/impl/ExplosiveEnchant.java b/src/main/java/me/nvus/xprison/enchants/model/impl/ExplosiveEnchant.java
deleted file mode 100644
index 48ff832..0000000
--- a/src/main/java/me/nvus/xprison/enchants/model/impl/ExplosiveEnchant.java
+++ /dev/null
@@ -1,209 +0,0 @@
-package me.nvus.xprison.enchants.model.impl;
-
-import dev.drawethree.ultrabackpacks.api.UltraBackpacksAPI;
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.api.events.ExplosionTriggerEvent;
-import me.nvus.xprison.enchants.model.XPrisonEnchantment;
-import me.nvus.xprison.enchants.utils.EnchantUtils;
-import me.nvus.xprison.mines.model.mine.Mine;
-import me.nvus.xprison.multipliers.enums.MultiplierType;
-import me.nvus.xprison.utils.Constants;
-import me.nvus.xprison.utils.block.CuboidExplosionBlockProvider;
-import me.nvus.xprison.utils.block.ExplosionBlockProvider;
-import me.nvus.xprison.utils.block.SpheroidExplosionBlockProvider;
-import me.nvus.xprison.utils.compat.CompMaterial;
-import me.nvus.xprison.utils.misc.RegionUtils;
-import me.lucko.helper.Events;
-import me.lucko.helper.time.Time;
-import org.bukkit.Bukkit;
-import org.bukkit.Material;
-import org.bukkit.block.Block;
-import org.bukkit.entity.Player;
-import org.bukkit.event.block.BlockBreakEvent;
-import org.bukkit.inventory.ItemStack;
-import org.codemc.worldguardwrapper.flag.WrappedState;
-import org.codemc.worldguardwrapper.region.IWrappedRegion;
-
-import java.util.List;
-import java.util.concurrent.ThreadLocalRandom;
-import java.util.stream.Collectors;
-
-public final class ExplosiveEnchant extends XPrisonEnchantment {
-
- private double chance;
- private boolean countBlocksBroken;
- private boolean soundsEnabled;
- private boolean useEvents;
- private ExplosionBlockProvider blockProvider;
-
- public ExplosiveEnchant(XPrisonEnchants instance) {
- super(instance, 9);
- this.chance = plugin.getEnchantsConfig().getYamlConfig().getDouble("enchants." + id + ".Chance");
- this.countBlocksBroken = plugin.getEnchantsConfig().getYamlConfig().getBoolean("enchants." + id + ".Count-Blocks-Broken");
- this.soundsEnabled = plugin.getEnchantsConfig().getYamlConfig().getBoolean("enchants." + id + ".Sounds");
- this.useEvents = plugin.getEnchantsConfig().getYamlConfig().getBoolean("enchants." + id + ".Use-Events");
- this.blockProvider = this.loadBlockProvider();
- }
-
- private ExplosionBlockProvider loadBlockProvider() {
- String explosionType = plugin.getEnchantsConfig().getYamlConfig().getString("enchants." + id + ".Explosion-Type", "CUBE");
-
- if ("CUBE".equalsIgnoreCase(explosionType)) {
- return CuboidExplosionBlockProvider.instance();
- } else if ("SPHERE".equalsIgnoreCase(explosionType)) {
- return SpheroidExplosionBlockProvider.instance();
- } else {
- return CuboidExplosionBlockProvider.instance();
- }
- }
-
- @Override
- public String getAuthor() {
- return "Drawethree";
- }
-
-
- @Override
- public void onEquip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onUnequip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onBlockBreak(BlockBreakEvent e, int enchantLevel) {
- double chance = getChanceToTrigger(enchantLevel);
-
- if (chance < ThreadLocalRandom.current().nextDouble(100)) {
- return;
- }
-
- long timeStart = Time.nowMillis();
- final Player p = e.getPlayer();
- final Block b = e.getBlock();
-
- IWrappedRegion region = RegionUtils.getRegionWithHighestPriorityAndFlag(b.getLocation(), Constants.ENCHANTS_WG_FLAG_NAME, WrappedState.ALLOW);
-
- if (region == null) {
- return;
- }
-
- this.plugin.getCore().debug("ExplosiveEnchant::onBlockBreak >> WG Region used: " + region.getId(), this.plugin);
- int radius = this.calculateRadius(enchantLevel);
-
- List blocksAffected = this.blockProvider.provide(b, radius).stream().filter(block -> region.contains(block.getLocation()) && block.getType() != Material.AIR).collect(Collectors.toList());
-
- ExplosionTriggerEvent event = this.callExplosionTriggerEvent(e.getPlayer(), region, e.getBlock(), blocksAffected);
-
- if (event.isCancelled() || event.getBlocksAffected().isEmpty()) {
- this.plugin.getCore().debug("ExplosiveEnchant::onBlockBreak >> ExplosiveTriggerEvent was cancelled. (Blocks affected size: " + event.getBlocksAffected().size(), this.plugin);
- return;
- }
-
- if (this.soundsEnabled) {
- b.getWorld().createExplosion(b.getLocation().getX(), b.getLocation().getY(), b.getLocation().getZ(), 0F, false, false);
- }
-
- if (this.useEvents) {
- final List ignored = this.plugin.getEnchantsListener().getIgnoredEvents();
- blocksAffected = event.getBlocksAffected().stream().filter(block -> {
- final BlockBreakEvent blockEvent = new BlockBreakEvent(block, p);
- ignored.add(blockEvent);
- Bukkit.getPluginManager().callEvent(blockEvent);
- ignored.remove(blockEvent);
- return !e.isCancelled();
- }).collect(Collectors.toList());
- } else {
- blocksAffected = event.getBlocksAffected();
- }
-
- if (!this.plugin.getCore().isUltraBackpacksEnabled()) {
- handleAffectedBlocks(p, region, blocksAffected);
- } else {
- UltraBackpacksAPI.handleBlocksBroken(p, blocksAffected);
- }
-
- if (!this.useEvents && this.plugin.isMinesModuleEnabled()) {
- Mine mine = plugin.getCore().getMines().getApi().getMineAtLocation(e.getBlock().getLocation());
- if (mine != null) {
- mine.handleBlockBreak(blocksAffected);
- }
- }
-
- if (this.countBlocksBroken) {
- plugin.getEnchantsManager().addBlocksBrokenToItem(p, blocksAffected.size());
- }
-
- if (!this.useEvents) {
- plugin.getCore().getTokens().getTokensManager().handleBlockBreak(p, blocksAffected, countBlocksBroken);
- }
-
- long timeEnd = Time.nowMillis();
- this.plugin.getCore().debug("ExplosiveEnchant::onBlockBreak >> Took " + (timeEnd - timeStart) + " ms.", this.plugin);
- }
-
- @Override
- public double getChanceToTrigger(int enchantLevel) {
- return chance * enchantLevel;
- }
-
- private void handleAffectedBlocks(Player p, IWrappedRegion region, List blocksAffected) {
- double totalDeposit = 0.0;
- int fortuneLevel = EnchantUtils.getItemFortuneLevel(p.getItemInHand());
- boolean autoSellPlayerEnabled = this.plugin.isAutoSellModuleEnabled() && plugin.getCore().getAutoSell().getManager().hasAutoSellEnabled(p);
-
- for (Block block : blocksAffected) {
-
- int amplifier = fortuneLevel;
-
- if (FortuneEnchant.isBlockBlacklisted(block)) {
- amplifier = 1;
- }
-
- if (autoSellPlayerEnabled) {
- totalDeposit += ((plugin.getCore().getAutoSell().getManager().getPriceForBlock(region.getId(), block) + 0.0) * amplifier);
- } else {
- ItemStack itemToGive = CompMaterial.fromBlock(block).toItem(amplifier);
- p.getInventory().addItem(itemToGive);
- }
- block.setType(Material.AIR, true);
- }
- this.giveEconomyRewardToPlayer(p, totalDeposit);
- }
-
- private void giveEconomyRewardToPlayer(Player p, double totalDeposit) {
-
- double total = this.plugin.isMultipliersModuleEnabled() ? plugin.getCore().getMultipliers().getApi().getTotalToDeposit(p, totalDeposit, MultiplierType.SELL) : totalDeposit;
-
- plugin.getCore().getEconomy().depositPlayer(p, total);
-
- if (this.plugin.isAutoSellModuleEnabled()) {
- plugin.getCore().getAutoSell().getManager().addToCurrentEarnings(p, total);
- }
- }
-
- private int calculateRadius(int enchantLevel) {
- int threshold = this.getMaxLevel() / 3;
- return enchantLevel <= threshold ? 3 : enchantLevel <= threshold * 2 ? 4 : 5;
- }
-
- private ExplosionTriggerEvent callExplosionTriggerEvent(Player p, IWrappedRegion mineRegion, Block originBlock, List blocks) {
- ExplosionTriggerEvent event = new ExplosionTriggerEvent(p, mineRegion, originBlock, blocks);
- Events.callSync(event);
- this.plugin.getCore().debug("ExplosiveEnchant::callExplosiveTriggerEvent >> ExplosiveTriggerEvent called.", this.plugin);
- return event;
- }
-
- @Override
- public void reload() {
- super.reload();
- this.chance = plugin.getEnchantsConfig().getYamlConfig().getDouble("enchants." + id + ".Chance");
- this.countBlocksBroken = plugin.getEnchantsConfig().getYamlConfig().getBoolean("enchants." + id + ".Count-Blocks-Broken");
- this.soundsEnabled = plugin.getEnchantsConfig().getYamlConfig().getBoolean("enchants." + id + ".Sounds");
- this.useEvents = plugin.getEnchantsConfig().getYamlConfig().getBoolean("enchants." + id + ".Use-Events");
- this.blockProvider = this.loadBlockProvider();
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/model/impl/FlyEnchant.java b/src/main/java/me/nvus/xprison/enchants/model/impl/FlyEnchant.java
deleted file mode 100644
index 106c23d..0000000
--- a/src/main/java/me/nvus/xprison/enchants/model/impl/FlyEnchant.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package me.nvus.xprison.enchants.model.impl;
-
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.model.XPrisonEnchantment;
-import org.bukkit.entity.Player;
-import org.bukkit.event.block.BlockBreakEvent;
-import org.bukkit.inventory.ItemStack;
-
-public final class FlyEnchant extends XPrisonEnchantment {
-
-
-
- public FlyEnchant(XPrisonEnchants instance) {
- super(instance, 8);
- }
-
- @Override
- public void onEquip(Player p, ItemStack pickAxe, int level) {
- p.setAllowFlight(true);
-
- }
-
- @Override
- public void onUnequip(Player p, ItemStack pickAxe, int level) {
- p.setAllowFlight(false);
- }
-
- @Override
- public void onBlockBreak(BlockBreakEvent e, int enchantLevel) {
- }
-
- @Override
- public double getChanceToTrigger(int enchantLevel) {
- return 100.0;
- }
-
- @Override
- public void reload() {
- super.reload();
- }
-
- @Override
- public String getAuthor() {
- return "Drawethree";
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/model/impl/FortuneEnchant.java b/src/main/java/me/nvus/xprison/enchants/model/impl/FortuneEnchant.java
deleted file mode 100644
index 6fa4925..0000000
--- a/src/main/java/me/nvus/xprison/enchants/model/impl/FortuneEnchant.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package me.nvus.xprison.enchants.model.impl;
-
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.model.XPrisonEnchantment;
-import me.nvus.xprison.utils.compat.CompMaterial;
-import org.bukkit.block.Block;
-import org.bukkit.enchantments.Enchantment;
-import org.bukkit.entity.Player;
-import org.bukkit.event.block.BlockBreakEvent;
-import org.bukkit.inventory.ItemStack;
-import org.bukkit.inventory.meta.ItemMeta;
-
-import java.util.List;
-import java.util.Objects;
-import java.util.stream.Collectors;
-
-public final class FortuneEnchant extends XPrisonEnchantment {
-
- private static List blackListedBlocks;
-
- public FortuneEnchant(XPrisonEnchants instance) {
- super(instance, 3);
- blackListedBlocks = plugin.getEnchantsConfig().getYamlConfig().getStringList("enchants." + id + ".Blacklist").stream().map(CompMaterial::fromString).filter(Objects::nonNull).collect(Collectors.toList());
- }
-
- @Override
- public void onEquip(Player p, ItemStack pickAxe, int level) {
- ItemMeta meta = pickAxe.getItemMeta();
- meta.removeEnchant(Enchantment.LOOT_BONUS_BLOCKS);
- pickAxe.setItemMeta(meta);
- }
-
- @Override
- public void onUnequip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onBlockBreak(BlockBreakEvent e, int enchantLevel) {
-
- }
-
- @Override
- public double getChanceToTrigger(int enchantLevel) {
- return 100.0;
- }
-
- @Override
- public void reload() {
- super.reload();
- blackListedBlocks = plugin.getEnchantsConfig().getYamlConfig().getStringList("enchants." + id + ".Blacklist").stream().map(CompMaterial::fromString).filter(Objects::nonNull).collect(Collectors.toList());
- }
-
- @Override
- public String getAuthor() {
- return "Drawethree";
- }
-
- public static boolean isBlockBlacklisted(Block block) {
- CompMaterial blockMaterial = CompMaterial.fromBlock(block);
- return blackListedBlocks.contains(blockMaterial);
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/model/impl/GangValueFinderEnchant.java b/src/main/java/me/nvus/xprison/enchants/model/impl/GangValueFinderEnchant.java
deleted file mode 100644
index 09b1d49..0000000
--- a/src/main/java/me/nvus/xprison/enchants/model/impl/GangValueFinderEnchant.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package me.nvus.xprison.enchants.model.impl;
-
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.model.XPrisonEnchantment;
-import me.nvus.xprison.gangs.XPrisonGangs;
-import net.objecthunter.exp4j.Expression;
-import net.objecthunter.exp4j.ExpressionBuilder;
-import org.bukkit.entity.Player;
-import org.bukkit.event.block.BlockBreakEvent;
-import org.bukkit.inventory.ItemStack;
-
-import java.util.concurrent.ThreadLocalRandom;
-
-public final class GangValueFinderEnchant extends XPrisonEnchantment {
-
- private double chance;
- private String amountToGiveExpression;
-
-
- public GangValueFinderEnchant(XPrisonEnchants instance) {
- super(instance, 23);
- this.amountToGiveExpression = plugin.getEnchantsConfig().getYamlConfig().getString("enchants." + id + ".Amount-To-Give");
- this.chance = plugin.getEnchantsConfig().getYamlConfig().getDouble("enchants." + id + ".Chance");
- }
-
- @Override
- public void onEquip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onUnequip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onBlockBreak(BlockBreakEvent e, int enchantLevel) {
-
- if (!this.plugin.getCore().isModuleEnabled(XPrisonGangs.MODULE_NAME)) {
- return;
- }
-
- double chance = getChanceToTrigger(enchantLevel);
-
- if (chance < ThreadLocalRandom.current().nextDouble(100)) {
- return;
- }
-
- int amount = (int) createExpression(enchantLevel).evaluate();
- plugin.getCore().getGangs().getGangsManager().getPlayerGang(e.getPlayer()).ifPresent(gang -> gang.setValue(gang.getValue() + amount));
-
- }
-
- @Override
- public double getChanceToTrigger(int enchantLevel) {
- return chance * enchantLevel;
- }
-
- @Override
- public void reload() {
- super.reload();
- this.amountToGiveExpression = plugin.getEnchantsConfig().getYamlConfig().getString("enchants." + id + ".Amount-To-Give");
- this.chance = plugin.getEnchantsConfig().getYamlConfig().getDouble("enchants." + id + ".Chance");
- }
-
- private Expression createExpression(int level) {
- return new ExpressionBuilder(this.amountToGiveExpression)
- .variables("level")
- .build()
- .setVariable("level", level);
- }
-
- @Override
- public String getAuthor() {
- return "Drawethree";
- }
-}
\ No newline at end of file
diff --git a/src/main/java/me/nvus/xprison/enchants/model/impl/GemFinderEnchant.java b/src/main/java/me/nvus/xprison/enchants/model/impl/GemFinderEnchant.java
deleted file mode 100644
index f27add0..0000000
--- a/src/main/java/me/nvus/xprison/enchants/model/impl/GemFinderEnchant.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package me.nvus.xprison.enchants.model.impl;
-
-import me.nvus.xprison.api.enums.ReceiveCause;
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.model.XPrisonEnchantment;
-import me.nvus.xprison.gems.XPrisonGems;
-import net.objecthunter.exp4j.Expression;
-import net.objecthunter.exp4j.ExpressionBuilder;
-import org.bukkit.entity.Player;
-import org.bukkit.event.block.BlockBreakEvent;
-import org.bukkit.inventory.ItemStack;
-
-import java.util.concurrent.ThreadLocalRandom;
-
-public final class GemFinderEnchant extends XPrisonEnchantment {
-
- private double chance;
- private String amountToGiveExpression;
-
- public GemFinderEnchant(XPrisonEnchants instance) {
- super(instance, 22);
- this.chance = plugin.getEnchantsConfig().getYamlConfig().getDouble("enchants." + id + ".Chance");
- this.amountToGiveExpression = plugin.getEnchantsConfig().getYamlConfig().getString("enchants." + id + ".Amount-To-Give");
- }
-
- @Override
- public void onEquip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onUnequip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onBlockBreak(BlockBreakEvent e, int enchantLevel) {
-
- if (!this.plugin.getCore().isModuleEnabled(XPrisonGems.MODULE_NAME)) {
- return;
- }
-
- double chance = getChanceToTrigger(enchantLevel);
-
- if (chance < ThreadLocalRandom.current().nextDouble(100)) {
- return;
- }
-
- long amount = (long) createExpression(enchantLevel).evaluate();
- plugin.getCore().getGems().getGemsManager().giveGems(e.getPlayer(), amount, null, ReceiveCause.MINING);
- }
-
- @Override
- public double getChanceToTrigger(int enchantLevel) {
- return chance * enchantLevel;
- }
-
- @Override
- public void reload() {
- super.reload();
- this.amountToGiveExpression = plugin.getEnchantsConfig().getYamlConfig().getString("enchants." + id + ".Amount-To-Give");
- this.chance = plugin.getEnchantsConfig().getYamlConfig().getDouble("enchants." + id + ".Chance");
- }
-
- private Expression createExpression(int level) {
- return new ExpressionBuilder(this.amountToGiveExpression)
- .variables("level")
- .build()
- .setVariable("level", level);
- }
-
- @Override
- public String getAuthor() {
- return "Drawethree";
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/model/impl/HasteEnchant.java b/src/main/java/me/nvus/xprison/enchants/model/impl/HasteEnchant.java
deleted file mode 100644
index 8512dc6..0000000
--- a/src/main/java/me/nvus/xprison/enchants/model/impl/HasteEnchant.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package me.nvus.xprison.enchants.model.impl;
-
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.model.XPrisonEnchantment;
-import org.bukkit.entity.Player;
-import org.bukkit.event.block.BlockBreakEvent;
-import org.bukkit.inventory.ItemStack;
-import org.bukkit.potion.PotionEffect;
-import org.bukkit.potion.PotionEffectType;
-
-public final class HasteEnchant extends XPrisonEnchantment {
-
- public HasteEnchant(XPrisonEnchants instance) {
- super(instance, 4);
- }
-
- @Override
- public void onEquip(Player p, ItemStack pickAxe, int level) {
- if (level == 0) {
- this.onUnequip(p, pickAxe, level);
- return;
- }
- p.addPotionEffect(new PotionEffect(PotionEffectType.FAST_DIGGING, Integer.MAX_VALUE, level - 1, true, true), true);
- }
-
- @Override
- public void onUnequip(Player p, ItemStack pickAxe, int level) {
- p.removePotionEffect(PotionEffectType.FAST_DIGGING);
- }
-
- @Override
- public void onBlockBreak(BlockBreakEvent e, int enchantLevel) {
-
- }
-
- @Override
- public double getChanceToTrigger(int enchantLevel) {
- return 100.0;
- }
-
- @Override
- public void reload() {
- super.reload();
- }
-
- @Override
- public String getAuthor() {
- return "Drawethree";
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/model/impl/JumpBoostEnchant.java b/src/main/java/me/nvus/xprison/enchants/model/impl/JumpBoostEnchant.java
deleted file mode 100644
index 37ee020..0000000
--- a/src/main/java/me/nvus/xprison/enchants/model/impl/JumpBoostEnchant.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package me.nvus.xprison.enchants.model.impl;
-
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.model.XPrisonEnchantment;
-import org.bukkit.entity.Player;
-import org.bukkit.event.block.BlockBreakEvent;
-import org.bukkit.inventory.ItemStack;
-import org.bukkit.potion.PotionEffect;
-import org.bukkit.potion.PotionEffectType;
-
-public final class JumpBoostEnchant extends XPrisonEnchantment {
- public JumpBoostEnchant(XPrisonEnchants instance) {
- super(instance, 6);
- }
-
- @Override
- public void onEquip(Player p, ItemStack pickAxe, int level) {
- if (level == 0) {
- this.onUnequip(p, pickAxe, level);
- return;
- }
- p.addPotionEffect(new PotionEffect(PotionEffectType.JUMP, Integer.MAX_VALUE, level - 1, true, true), true);
- }
-
- @Override
- public void onUnequip(Player p, ItemStack pickAxe, int level) {
- p.removePotionEffect(PotionEffectType.JUMP);
- }
-
- @Override
- public void onBlockBreak(BlockBreakEvent e, int enchantLevel) {
-
- }
-
- @Override
- public double getChanceToTrigger(int enchantLevel) {
- return 100.0;
- }
-
- @Override
- public void reload() {
- super.reload();
- }
-
- @Override
- public String getAuthor() {
- return "Drawethree";
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/model/impl/KeyFinderEnchant.java b/src/main/java/me/nvus/xprison/enchants/model/impl/KeyFinderEnchant.java
deleted file mode 100644
index 0eaa775..0000000
--- a/src/main/java/me/nvus/xprison/enchants/model/impl/KeyFinderEnchant.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package me.nvus.xprison.enchants.model.impl;
-
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.model.XPrisonEnchantment;
-import org.bukkit.Bukkit;
-import org.bukkit.entity.Player;
-import org.bukkit.event.block.BlockBreakEvent;
-import org.bukkit.inventory.ItemStack;
-
-import java.util.List;
-import java.util.concurrent.ThreadLocalRandom;
-
-public final class KeyFinderEnchant extends XPrisonEnchantment {
-
- private double chance;
- private List commandsToExecute;
-
- public KeyFinderEnchant(XPrisonEnchants instance) {
- super(instance, 15);
- this.chance = plugin.getEnchantsConfig().getYamlConfig().getDouble("enchants." + id + ".Chance");
- this.commandsToExecute = plugin.getEnchantsConfig().getYamlConfig().getStringList("enchants." + id + ".Commands");
- }
-
- @Override
- public void onEquip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onUnequip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onBlockBreak(BlockBreakEvent e, int enchantLevel) {
- double chance = getChanceToTrigger(enchantLevel);
-
- if (chance < ThreadLocalRandom.current().nextDouble(100)) {
- return;
- }
-
- String randomCmd = this.getRandomCommandToExecute();
- Bukkit.dispatchCommand(Bukkit.getConsoleSender(), randomCmd.replace("%player%", e.getPlayer().getName()));
- }
-
-
- private String getRandomCommandToExecute() {
- return this.commandsToExecute.get(ThreadLocalRandom.current().nextInt(commandsToExecute.size()));
- }
-
- @Override
- public double getChanceToTrigger(int enchantLevel) {
- return this.chance * enchantLevel;
- }
-
- @Override
- public void reload() {
- super.reload();
- this.chance = plugin.getEnchantsConfig().getYamlConfig().getDouble("enchants." + id + ".Chance");
- this.commandsToExecute = plugin.getEnchantsConfig().getYamlConfig().getStringList("enchants." + id + ".Commands");
- }
-
- @Override
- public String getAuthor() {
- return "Drawethree";
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/model/impl/KeyallsEnchant.java b/src/main/java/me/nvus/xprison/enchants/model/impl/KeyallsEnchant.java
deleted file mode 100644
index 2ce6d89..0000000
--- a/src/main/java/me/nvus/xprison/enchants/model/impl/KeyallsEnchant.java
+++ /dev/null
@@ -1,66 +0,0 @@
-package me.nvus.xprison.enchants.model.impl;
-
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.model.XPrisonEnchantment;
-import org.bukkit.Bukkit;
-import org.bukkit.entity.Player;
-import org.bukkit.event.block.BlockBreakEvent;
-import org.bukkit.inventory.ItemStack;
-
-import java.util.List;
-import java.util.concurrent.ThreadLocalRandom;
-
-public final class KeyallsEnchant extends XPrisonEnchantment {
-
- private double chance;
- private List commandsToExecute;
-
- public KeyallsEnchant(XPrisonEnchants instance) {
- super(instance, 18);
- this.chance = plugin.getEnchantsConfig().getYamlConfig().getDouble("enchants." + id + ".Chance");
- this.commandsToExecute = plugin.getEnchantsConfig().getYamlConfig().getStringList("enchants." + id + ".Commands");
- }
-
- @Override
- public void onEquip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onUnequip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onBlockBreak(BlockBreakEvent e, int enchantLevel) {
- double chance = getChanceToTrigger(enchantLevel);
-
- if (chance < ThreadLocalRandom.current().nextDouble(100)) {
- return;
- }
-
- String randomCmd = getRandomCommandToExecute();
- Bukkit.dispatchCommand(Bukkit.getConsoleSender(), randomCmd.replace("%player%", e.getPlayer().getName()));
- }
-
- private String getRandomCommandToExecute() {
- return this.commandsToExecute.get(ThreadLocalRandom.current().nextInt(commandsToExecute.size()));
- }
-
- @Override
- public double getChanceToTrigger(int enchantLevel) {
- return chance * enchantLevel;
- }
-
- @Override
- public void reload() {
- super.reload();
- this.chance = plugin.getEnchantsConfig().getYamlConfig().getDouble("enchants." + id + ".Chance");
- this.commandsToExecute = plugin.getEnchantsConfig().getYamlConfig().getStringList("enchants." + id + ".Commands");
- }
-
- @Override
- public String getAuthor() {
- return "Drawethree";
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/model/impl/LayerEnchant.java b/src/main/java/me/nvus/xprison/enchants/model/impl/LayerEnchant.java
deleted file mode 100644
index 1fdd035..0000000
--- a/src/main/java/me/nvus/xprison/enchants/model/impl/LayerEnchant.java
+++ /dev/null
@@ -1,193 +0,0 @@
-package me.nvus.xprison.enchants.model.impl;
-
-import dev.drawethree.ultrabackpacks.api.UltraBackpacksAPI;
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.api.events.LayerTriggerEvent;
-import me.nvus.xprison.enchants.model.XPrisonEnchantment;
-import me.nvus.xprison.enchants.utils.EnchantUtils;
-import me.nvus.xprison.mines.model.mine.Mine;
-import me.nvus.xprison.multipliers.enums.MultiplierType;
-import me.nvus.xprison.utils.Constants;
-import me.nvus.xprison.utils.compat.CompMaterial;
-import me.nvus.xprison.utils.misc.RegionUtils;
-import me.lucko.helper.Events;
-import me.lucko.helper.time.Time;
-import org.bukkit.Bukkit;
-import org.bukkit.Material;
-import org.bukkit.block.Block;
-import org.bukkit.entity.Player;
-import org.bukkit.event.block.BlockBreakEvent;
-import org.bukkit.inventory.ItemStack;
-import org.codemc.worldguardwrapper.flag.WrappedState;
-import org.codemc.worldguardwrapper.region.IWrappedRegion;
-import org.codemc.worldguardwrapper.selection.ICuboidSelection;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.ThreadLocalRandom;
-import java.util.stream.Collectors;
-
-public final class LayerEnchant extends XPrisonEnchantment {
-
- private double chance;
- private boolean countBlocksBroken;
- private boolean useEvents;
-
- public LayerEnchant(XPrisonEnchants instance) {
- super(instance, 10);
- this.chance = plugin.getEnchantsConfig().getYamlConfig().getDouble("enchants." + id + ".Chance");
- this.countBlocksBroken = plugin.getEnchantsConfig().getYamlConfig().getBoolean("enchants." + id + ".Count-Blocks-Broken");
- this.useEvents = plugin.getEnchantsConfig().getYamlConfig().getBoolean("enchants." + id + ".Use-Events");
- }
-
- @Override
- public void onEquip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onUnequip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onBlockBreak(BlockBreakEvent e, int enchantLevel) {
- double chance = getChanceToTrigger(enchantLevel);
-
- if (chance < ThreadLocalRandom.current().nextDouble(100)) {
- return;
- }
-
- long startTime = Time.nowMillis();
- final Player p = e.getPlayer();
- final Block b = e.getBlock();
-
- IWrappedRegion region = RegionUtils.getRegionWithHighestPriorityAndFlag(b.getLocation(), Constants.ENCHANTS_WG_FLAG_NAME, WrappedState.ALLOW);
-
- if (region == null) {
- return;
- }
-
- this.plugin.getCore().debug("LayerEnchant::onBlockBreak >> WG Region used: " + region.getId(), this.plugin);
- List blocksAffected = this.getAffectedBlocks(b, region);
-
- LayerTriggerEvent event = this.callLayerTriggerEvent(e.getPlayer(), region, e.getBlock(), blocksAffected);
-
- if (event.isCancelled() || event.getBlocksAffected().isEmpty()) {
- this.plugin.getCore().debug("LayerEnchant::onBlockBreak >> LayerTriggerEvent was cancelled. (Blocks affected size: " + event.getBlocksAffected().size(), this.plugin);
- return;
- }
-
- if (this.useEvents) {
- final List ignored = this.plugin.getEnchantsListener().getIgnoredEvents();
- blocksAffected = event.getBlocksAffected().stream().filter(block -> {
- final BlockBreakEvent blockEvent = new BlockBreakEvent(block, p);
- ignored.add(blockEvent);
- Bukkit.getPluginManager().callEvent(blockEvent);
- ignored.remove(blockEvent);
- return !e.isCancelled();
- }).collect(Collectors.toList());
- } else {
- blocksAffected = event.getBlocksAffected();
- }
-
- if (!this.plugin.getCore().isUltraBackpacksEnabled()) {
- handleAffectedBlocks(p, region, blocksAffected);
- } else {
- UltraBackpacksAPI.handleBlocksBroken(p, blocksAffected);
- }
-
- if (!this.useEvents && this.plugin.isMinesModuleEnabled()) {
- Mine mine = plugin.getCore().getMines().getApi().getMineAtLocation(e.getBlock().getLocation());
- if (mine != null) {
- mine.handleBlockBreak(blocksAffected);
- }
- }
-
- if (this.countBlocksBroken) {
- plugin.getEnchantsManager().addBlocksBrokenToItem(p, blocksAffected.size());
- }
-
- if (!this.useEvents) {
- plugin.getCore().getTokens().getTokensManager().handleBlockBreak(p, blocksAffected, countBlocksBroken);
- }
-
- long timeEnd = Time.nowMillis();
- this.plugin.getCore().debug("LayerEnchant::onBlockBreak >> Took " + (timeEnd - startTime) + " ms.", this.plugin);
- }
-
- private List getAffectedBlocks(Block startBlock, IWrappedRegion region) {
- List blocksAffected = new ArrayList<>();
- ICuboidSelection selection = (ICuboidSelection) region.getSelection();
- for (int x = selection.getMinimumPoint().getBlockX(); x <= selection.getMaximumPoint().getBlockX(); x++) {
- for (int z = selection.getMinimumPoint().getBlockZ(); z <= selection.getMaximumPoint().getBlockZ(); z++) {
- Block b1 = startBlock.getWorld().getBlockAt(x, startBlock.getY(), z);
- if (b1.getType() == Material.AIR) {
- continue;
- }
- blocksAffected.add(b1);
- }
- }
- return blocksAffected;
- }
-
- private void handleAffectedBlocks(Player p, IWrappedRegion region, List blocksAffected) {
- double totalDeposit = 0.0;
- int fortuneLevel = EnchantUtils.getItemFortuneLevel(p.getItemInHand());
- boolean autoSellPlayerEnabled = this.plugin.isAutoSellModuleEnabled() && plugin.getCore().getAutoSell().getManager().hasAutoSellEnabled(p);
-
- for (Block block : blocksAffected) {
-
- int amplifier = fortuneLevel;
- if (FortuneEnchant.isBlockBlacklisted(block)) {
- amplifier = 1;
- }
-
- if (autoSellPlayerEnabled) {
- totalDeposit += ((plugin.getCore().getAutoSell().getManager().getPriceForBlock(region.getId(), block) + 0.0) * amplifier);
- } else {
- ItemStack itemToGive = CompMaterial.fromBlock(block).toItem(amplifier);
- p.getInventory().addItem(itemToGive);
- }
- block.setType(Material.AIR, true);
- }
- this.giveEconomyRewardToPlayer(p, totalDeposit);
- }
-
- @Override
- public double getChanceToTrigger(int enchantLevel) {
- return chance * enchantLevel;
- }
-
- private void giveEconomyRewardToPlayer(Player p, double totalDeposit) {
- double total = this.plugin.isMultipliersModuleEnabled() ? plugin.getCore().getMultipliers().getApi().getTotalToDeposit(p, totalDeposit, MultiplierType.SELL) : totalDeposit;
-
- plugin.getCore().getEconomy().depositPlayer(p, total);
-
- if (plugin.isAutoSellModuleEnabled()) {
- plugin.getCore().getAutoSell().getManager().addToCurrentEarnings(p, total);
- }
- }
-
- private LayerTriggerEvent callLayerTriggerEvent(Player player, IWrappedRegion region, Block originBlock, List blocksAffected) {
- LayerTriggerEvent event = new LayerTriggerEvent(player, region, originBlock, blocksAffected);
- Events.callSync(event);
- this.plugin.getCore().debug("LayerEnchant::callLayerTriggerEvent >> LayerTriggerEvent called.", this.plugin);
- return event;
- }
-
- @Override
- public void reload() {
- super.reload();
- this.chance = plugin.getEnchantsConfig().getYamlConfig().getDouble("enchants." + id + ".Chance");
- this.countBlocksBroken = plugin.getEnchantsConfig().getYamlConfig().getBoolean("enchants." + id + ".Count-Blocks-Broken");
- this.useEvents = plugin.getEnchantsConfig().getYamlConfig().getBoolean("enchants." + id + ".Use-Events");
- }
-
- @Override
- public String getAuthor() {
- return "Drawethree";
- }
-
-
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/model/impl/NightVisionEnchant.java b/src/main/java/me/nvus/xprison/enchants/model/impl/NightVisionEnchant.java
deleted file mode 100644
index 6065260..0000000
--- a/src/main/java/me/nvus/xprison/enchants/model/impl/NightVisionEnchant.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package me.nvus.xprison.enchants.model.impl;
-
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.model.XPrisonEnchantment;
-import org.bukkit.entity.Player;
-import org.bukkit.event.block.BlockBreakEvent;
-import org.bukkit.inventory.ItemStack;
-import org.bukkit.potion.PotionEffect;
-import org.bukkit.potion.PotionEffectType;
-
-public final class NightVisionEnchant extends XPrisonEnchantment {
- public NightVisionEnchant(XPrisonEnchants instance) {
- super(instance, 7);
- }
-
- @Override
- public void onEquip(Player p, ItemStack pickAxe, int level) {
- if (level == 0) {
- this.onUnequip(p, pickAxe, level);
- return;
- }
- p.addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION, Integer.MAX_VALUE, level - 1, true, true), true);
- }
-
- @Override
- public void onUnequip(Player p, ItemStack pickAxe, int level) {
- p.removePotionEffect(PotionEffectType.NIGHT_VISION);
- }
-
- @Override
- public void onBlockBreak(BlockBreakEvent e, int enchantLevel) {
-
- }
-
- @Override
- public double getChanceToTrigger(int enchantLevel) {
- return 100.0;
- }
-
- @Override
- public void reload() {
- super.reload();
- }
-
- @Override
- public String getAuthor() {
- return "Drawethree";
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/model/impl/NukeEnchant.java b/src/main/java/me/nvus/xprison/enchants/model/impl/NukeEnchant.java
deleted file mode 100644
index 92ec60f..0000000
--- a/src/main/java/me/nvus/xprison/enchants/model/impl/NukeEnchant.java
+++ /dev/null
@@ -1,213 +0,0 @@
-package me.nvus.xprison.enchants.model.impl;
-
-import dev.drawethree.ultrabackpacks.api.UltraBackpacksAPI;
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.api.events.NukeTriggerEvent;
-import me.nvus.xprison.enchants.model.XPrisonEnchantment;
-import me.nvus.xprison.enchants.utils.EnchantUtils;
-import me.nvus.xprison.mines.model.mine.Mine;
-import me.nvus.xprison.multipliers.enums.MultiplierType;
-import me.nvus.xprison.utils.Constants;
-import me.nvus.xprison.utils.compat.CompMaterial;
-import me.nvus.xprison.utils.misc.MathUtils;
-import me.nvus.xprison.utils.misc.RegionUtils;
-import me.nvus.xprison.utils.player.PlayerUtils;
-import me.nvus.xprison.utils.text.TextUtils;
-import me.lucko.helper.Events;
-import me.lucko.helper.time.Time;
-import org.bukkit.Bukkit;
-import org.bukkit.Material;
-import org.bukkit.block.Block;
-import org.bukkit.entity.Player;
-import org.bukkit.event.block.BlockBreakEvent;
-import org.bukkit.inventory.ItemStack;
-import org.codemc.worldguardwrapper.flag.WrappedState;
-import org.codemc.worldguardwrapper.region.IWrappedRegion;
-import org.codemc.worldguardwrapper.selection.ICuboidSelection;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.ThreadLocalRandom;
-import java.util.stream.Collectors;
-
-public final class NukeEnchant extends XPrisonEnchantment {
-
- private double chance;
- private boolean countBlocksBroken;
- private boolean removeBlocks;
- private boolean useEvents;
- private String message;
-
- public NukeEnchant(XPrisonEnchants instance) {
- super(instance, 21);
- this.chance = plugin.getEnchantsConfig().getYamlConfig().getDouble("enchants." + id + ".Chance");
- this.countBlocksBroken = plugin.getEnchantsConfig().getYamlConfig().getBoolean("enchants." + id + ".Count-Blocks-Broken");
- this.removeBlocks = plugin.getEnchantsConfig().getYamlConfig().getBoolean("enchants." + id + ".Remove-Blocks");
- this.useEvents = plugin.getEnchantsConfig().getYamlConfig().getBoolean("enchants." + id + ".Use-Events");
- this.message = TextUtils.applyColor(plugin.getEnchantsConfig().getYamlConfig().getString("enchants." + id + ".Message"));
- }
-
- @Override
- public void onEquip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onUnequip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onBlockBreak(BlockBreakEvent e, int enchantLevel) {
- double chance = getChanceToTrigger(enchantLevel);
-
- if (chance < ThreadLocalRandom.current().nextDouble(100)) {
- return;
- }
-
- long startTime = Time.nowMillis();
- final Player p = e.getPlayer();
- final Block b = e.getBlock();
-
- IWrappedRegion region = RegionUtils.getRegionWithHighestPriorityAndFlag(b.getLocation(), Constants.ENCHANTS_WG_FLAG_NAME, WrappedState.ALLOW);
-
- if (region == null) {
- return;
- }
-
- this.plugin.getCore().debug("NukeEnchant::onBlockBreak >> WG Region used: " + region.getId(), this.plugin);
- List blocksAffected = this.getAffectedBlocks(b, region);
-
- NukeTriggerEvent event = this.callNukeTriggerEvent(e.getPlayer(), region, e.getBlock(), blocksAffected);
-
- if (event.isCancelled() || event.getBlocksAffected().isEmpty()) {
- this.plugin.getCore().debug("NukeEnchant::onBlockBreak >> NukeTriggerEvent was cancelled. (Blocks affected size: " + event.getBlocksAffected().size(), this.plugin);
- return;
- }
-
- if (this.useEvents) {
- final List ignored = this.plugin.getEnchantsListener().getIgnoredEvents();
- blocksAffected = event.getBlocksAffected().stream().filter(block -> {
- final BlockBreakEvent blockEvent = new BlockBreakEvent(block, p);
- ignored.add(blockEvent);
- Bukkit.getPluginManager().callEvent(blockEvent);
- ignored.remove(blockEvent);
- return !e.isCancelled();
- }).collect(Collectors.toList());
- } else {
- blocksAffected = event.getBlocksAffected();
- }
-
- if (!this.plugin.getCore().isUltraBackpacksEnabled()) {
- handleAffectedBlocks(p, region, blocksAffected);
- } else {
- UltraBackpacksAPI.handleBlocksBroken(p, blocksAffected);
- }
-
- if (!this.useEvents && this.plugin.isMinesModuleEnabled() && removeBlocks) {
- Mine mine = plugin.getCore().getMines().getApi().getMineAtLocation(e.getBlock().getLocation());
-
- if (mine != null) {
- mine.handleBlockBreak(blocksAffected);
- }
- }
-
- if (this.countBlocksBroken) {
- plugin.getEnchantsManager().addBlocksBrokenToItem(p, blocksAffected.size());
- }
-
- if (!this.useEvents) {
- plugin.getCore().getTokens().getTokensManager().handleBlockBreak(p, blocksAffected, countBlocksBroken);
- }
-
- long timeEnd = Time.nowMillis();
- this.plugin.getCore().debug("NukeEnchant::onBlockBreak >> Took " + (timeEnd - startTime) + " ms.", this.plugin);
- }
-
- private void handleAffectedBlocks(Player p, IWrappedRegion region, List blocksAffected) {
- double totalDeposit = 0.0;
- int fortuneLevel = EnchantUtils.getItemFortuneLevel(p.getItemInHand());
- boolean autoSellPlayerEnabled = this.plugin.isAutoSellModuleEnabled() && plugin.getCore().getAutoSell().getManager().hasAutoSellEnabled(p);
-
- for (Block block : blocksAffected) {
-
- int amplifier = fortuneLevel;
-
- if (FortuneEnchant.isBlockBlacklisted(block)) {
- amplifier = 1;
- }
-
- if (autoSellPlayerEnabled) {
- totalDeposit += ((plugin.getCore().getAutoSell().getManager().getPriceForBlock(region.getId(), block) + 0.0) * amplifier);
- } else {
- ItemStack itemToGive = CompMaterial.fromBlock(block).toItem(amplifier);
- p.getInventory().addItem(itemToGive);
- }
-
- if (this.removeBlocks) {
- block.setType(Material.AIR, true);
- }
-
- }
- this.giveEconomyRewardsToPlayer(p, totalDeposit);
- }
-
- private List getAffectedBlocks(Block b, IWrappedRegion region) {
- List blocksAffected = new ArrayList<>();
- ICuboidSelection selection = (ICuboidSelection) region.getSelection();
- for (int x = selection.getMinimumPoint().getBlockX(); x <= selection.getMaximumPoint().getBlockX(); x++) {
- for (int z = selection.getMinimumPoint().getBlockZ(); z <= selection.getMaximumPoint().getBlockZ(); z++) {
- for (int y = selection.getMinimumPoint().getBlockY(); y <= selection.getMaximumPoint().getBlockY(); y++) {
- Block b1 = b.getWorld().getBlockAt(x, y, z);
- if (b1.getType() == Material.AIR) {
- continue;
- }
- blocksAffected.add(b1);
- }
- }
- }
- return blocksAffected;
- }
-
- @Override
- public double getChanceToTrigger(int enchantLevel) {
- return chance * enchantLevel;
- }
-
- private void giveEconomyRewardsToPlayer(Player p, double totalDeposit) {
- double total = this.plugin.isMultipliersModuleEnabled() ? plugin.getCore().getMultipliers().getApi().getTotalToDeposit(p, totalDeposit, MultiplierType.SELL) : totalDeposit;
-
- plugin.getCore().getEconomy().depositPlayer(p, total);
-
- if (plugin.isAutoSellModuleEnabled()) {
- plugin.getCore().getAutoSell().getManager().addToCurrentEarnings(p, total);
- }
-
- if (message != null || !message.isEmpty()) {
- PlayerUtils.sendMessage(p,message.replace("%money%", MathUtils.formatNumber(total)));
- }
- }
-
- private NukeTriggerEvent callNukeTriggerEvent(Player p, IWrappedRegion region, Block startBlock, List affectedBlocks) {
- NukeTriggerEvent event = new NukeTriggerEvent(p, region, startBlock, affectedBlocks);
- Events.callSync(event);
- this.plugin.getCore().debug("NukeEnchant::callNukeTriggerEvent >> NukeTriggerEvent called.", this.plugin);
- return event;
- }
-
- @Override
- public void reload() {
- super.reload();
- this.chance = plugin.getEnchantsConfig().getYamlConfig().getDouble("enchants." + id + ".Chance");
- this.countBlocksBroken = plugin.getEnchantsConfig().getYamlConfig().getBoolean("enchants." + id + ".Count-Blocks-Broken");
- this.removeBlocks = plugin.getEnchantsConfig().getYamlConfig().getBoolean("enchants." + id + ".Remove-Blocks");
- this.useEvents = plugin.getEnchantsConfig().getYamlConfig().getBoolean("enchants." + id + ".Use-Events");
- this.message = TextUtils.applyColor(plugin.getEnchantsConfig().getYamlConfig().getString("enchants." + id + ".Message"));
-
- }
-
- @Override
- public String getAuthor() {
- return "Drawethree";
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/model/impl/PrestigeFinderEnchant.java b/src/main/java/me/nvus/xprison/enchants/model/impl/PrestigeFinderEnchant.java
deleted file mode 100644
index 1334757..0000000
--- a/src/main/java/me/nvus/xprison/enchants/model/impl/PrestigeFinderEnchant.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package me.nvus.xprison.enchants.model.impl;
-
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.model.XPrisonEnchantment;
-import net.objecthunter.exp4j.Expression;
-import net.objecthunter.exp4j.ExpressionBuilder;
-import org.bukkit.Bukkit;
-import org.bukkit.entity.Player;
-import org.bukkit.event.block.BlockBreakEvent;
-import org.bukkit.inventory.ItemStack;
-
-import java.util.concurrent.ThreadLocalRandom;
-
-public final class PrestigeFinderEnchant extends XPrisonEnchantment {
-
- private double chance;
- private String commandToExecute;
- private String amountToGiveExpression;
-
- public PrestigeFinderEnchant(XPrisonEnchants instance) {
- super(instance, 16);
- this.chance = plugin.getEnchantsConfig().getYamlConfig().getDouble("enchants." + id + ".Chance");
- this.commandToExecute = plugin.getEnchantsConfig().getYamlConfig().getString("enchants." + id + ".Command");
- this.amountToGiveExpression = plugin.getEnchantsConfig().getYamlConfig().getString("enchants." + id + ".Amount-To-Give");
- }
-
- @Override
- public void onEquip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onUnequip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onBlockBreak(BlockBreakEvent e, int enchantLevel) {
- double chance = getChanceToTrigger(enchantLevel);
- if (chance < ThreadLocalRandom.current().nextDouble(100)) {
- return;
- }
- int levels = (int) createExpression(enchantLevel).evaluate();
- Bukkit.dispatchCommand(Bukkit.getConsoleSender(), commandToExecute.replace("%player%", e.getPlayer().getName()).replace("%amount%", String.valueOf(levels)));
- }
-
- @Override
- public double getChanceToTrigger(int enchantLevel) {
- return chance * enchantLevel;
- }
-
- @Override
- public void reload() {
- super.reload();
- this.chance = plugin.getEnchantsConfig().getYamlConfig().getDouble("enchants." + id + ".Chance");
- this.commandToExecute = plugin.getEnchantsConfig().getYamlConfig().getString("enchants." + id + ".Command");
- this.amountToGiveExpression = plugin.getEnchantsConfig().getYamlConfig().getString("enchants." + id + ".Amount-To-Give");
- }
-
- private Expression createExpression(int level) {
- return new ExpressionBuilder(this.amountToGiveExpression)
- .variables("level")
- .build()
- .setVariable("level", level);
- }
-
- @Override
- public String getAuthor() {
- return "Drawethree";
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/model/impl/SalaryEnchant.java b/src/main/java/me/nvus/xprison/enchants/model/impl/SalaryEnchant.java
deleted file mode 100644
index 7adef4d..0000000
--- a/src/main/java/me/nvus/xprison/enchants/model/impl/SalaryEnchant.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package me.nvus.xprison.enchants.model.impl;
-
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.model.XPrisonEnchantment;
-import net.objecthunter.exp4j.Expression;
-import net.objecthunter.exp4j.ExpressionBuilder;
-import org.bukkit.entity.Player;
-import org.bukkit.event.block.BlockBreakEvent;
-import org.bukkit.inventory.ItemStack;
-
-import java.util.concurrent.ThreadLocalRandom;
-
-public final class SalaryEnchant extends XPrisonEnchantment {
-
- private double chance;
- private String amountToGiveExpression;
-
- public SalaryEnchant(XPrisonEnchants instance) {
- super(instance, 12);
- this.chance = plugin.getEnchantsConfig().getYamlConfig().getDouble("enchants." + id + ".Chance");
- this.amountToGiveExpression = plugin.getEnchantsConfig().getYamlConfig().getString("enchants." + id + ".Amount-To-Give");
- }
-
- @Override
- public void onEquip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onUnequip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onBlockBreak(BlockBreakEvent e, int enchantLevel) {
- double chance = getChanceToTrigger(enchantLevel);
-
- if (chance < ThreadLocalRandom.current().nextDouble(100)) {
- return;
- }
-
- double randAmount = createExpression(enchantLevel).evaluate();
-
- plugin.getCore().getEconomy().depositPlayer(e.getPlayer(), randAmount);
-
- if (this.plugin.isAutoSellModuleEnabled()) {
- plugin.getCore().getAutoSell().getManager().addToCurrentEarnings(e.getPlayer(), randAmount);
- }
-
- }
-
- @Override
- public double getChanceToTrigger(int enchantLevel) {
- return this.chance * enchantLevel;
- }
-
- @Override
- public void reload() {
- super.reload();
- this.chance = plugin.getEnchantsConfig().getYamlConfig().getDouble("enchants." + id + ".Chance");
- this.amountToGiveExpression = plugin.getEnchantsConfig().getYamlConfig().getString("enchants." + id + ".Amount-To-Give");
- }
-
- private Expression createExpression(int level) {
- return new ExpressionBuilder(this.amountToGiveExpression)
- .variables("level")
- .build()
- .setVariable("level", level);
- }
-
- @Override
- public String getAuthor() {
- return "Drawethree";
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/model/impl/SpeedEnchant.java b/src/main/java/me/nvus/xprison/enchants/model/impl/SpeedEnchant.java
deleted file mode 100644
index 672d467..0000000
--- a/src/main/java/me/nvus/xprison/enchants/model/impl/SpeedEnchant.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package me.nvus.xprison.enchants.model.impl;
-
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.model.XPrisonEnchantment;
-import org.bukkit.entity.Player;
-import org.bukkit.event.block.BlockBreakEvent;
-import org.bukkit.inventory.ItemStack;
-import org.bukkit.potion.PotionEffect;
-import org.bukkit.potion.PotionEffectType;
-
-public final class SpeedEnchant extends XPrisonEnchantment {
- public SpeedEnchant(XPrisonEnchants instance) {
- super(instance, 5);
- }
-
- @Override
- public void onEquip(Player p, ItemStack pickAxe, int level) {
- if (level == 0) {
- this.onUnequip(p, pickAxe, level);
- return;
- }
- p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, Integer.MAX_VALUE, level - 1, true, true), true);
- }
-
- @Override
- public void onUnequip(Player p, ItemStack pickAxe, int level) {
- p.removePotionEffect(PotionEffectType.SPEED);
- }
-
- @Override
- public void onBlockBreak(BlockBreakEvent e, int enchantLevel) {
-
- }
-
- @Override
- public double getChanceToTrigger(int enchantLevel) {
- return 100.0;
- }
-
- @Override
- public void reload() {
- super.reload();
- }
-
- @Override
- public String getAuthor() {
- return "Drawethree";
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/model/impl/TokenatorEnchant.java b/src/main/java/me/nvus/xprison/enchants/model/impl/TokenatorEnchant.java
deleted file mode 100644
index 37b874d..0000000
--- a/src/main/java/me/nvus/xprison/enchants/model/impl/TokenatorEnchant.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package me.nvus.xprison.enchants.model.impl;
-
-import me.nvus.xprison.api.enums.ReceiveCause;
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.model.XPrisonEnchantment;
-import me.nvus.xprison.tokens.XPrisonTokens;
-import net.objecthunter.exp4j.Expression;
-import net.objecthunter.exp4j.ExpressionBuilder;
-import org.bukkit.entity.Player;
-import org.bukkit.event.block.BlockBreakEvent;
-import org.bukkit.inventory.ItemStack;
-
-import java.util.concurrent.ThreadLocalRandom;
-
-public final class TokenatorEnchant extends XPrisonEnchantment {
-
- private double chance;
- private String amountToGiveExpression;
-
-
- public TokenatorEnchant(XPrisonEnchants instance) {
- super(instance, 14);
- this.chance = plugin.getEnchantsConfig().getYamlConfig().getDouble("enchants." + id + ".Chance");
- this.amountToGiveExpression = plugin.getEnchantsConfig().getYamlConfig().getString("enchants." + id + ".Amount-To-Give");
- }
-
- @Override
- public void onEquip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onUnequip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onBlockBreak(BlockBreakEvent e, int enchantLevel) {
- if (!this.plugin.getCore().isModuleEnabled(XPrisonTokens.MODULE_NAME)) {
- return;
- }
-
- double chance = getChanceToTrigger(enchantLevel);
-
- if (chance < ThreadLocalRandom.current().nextDouble(100)) {
- return;
- }
-
- long randAmount = (long) createExpression(enchantLevel).evaluate();
- plugin.getCore().getTokens().getTokensManager().giveTokens(e.getPlayer(), randAmount, null, ReceiveCause.MINING);
- }
-
- @Override
- public double getChanceToTrigger(int enchantLevel) {
- return chance * enchantLevel;
- }
-
- @Override
- public void reload() {
- super.reload();
- this.chance = plugin.getEnchantsConfig().getYamlConfig().getDouble("enchants." + id + ".Chance");
- this.amountToGiveExpression = plugin.getEnchantsConfig().getYamlConfig().getString("enchants." + id + ".Amount-To-Give");
- }
-
- private Expression createExpression(int level) {
- return new ExpressionBuilder(this.amountToGiveExpression)
- .variables("level")
- .build()
- .setVariable("level", level);
- }
-
- @Override
- public String getAuthor() {
- return "Drawethree";
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/model/impl/UnbreakingEnchant.java b/src/main/java/me/nvus/xprison/enchants/model/impl/UnbreakingEnchant.java
deleted file mode 100644
index cb49ff4..0000000
--- a/src/main/java/me/nvus/xprison/enchants/model/impl/UnbreakingEnchant.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package me.nvus.xprison.enchants.model.impl;
-
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.model.XPrisonEnchantment;
-import org.bukkit.enchantments.Enchantment;
-import org.bukkit.entity.Player;
-import org.bukkit.event.block.BlockBreakEvent;
-import org.bukkit.inventory.ItemStack;
-import org.bukkit.inventory.meta.ItemMeta;
-
-public final class UnbreakingEnchant extends XPrisonEnchantment {
-
- public UnbreakingEnchant(XPrisonEnchants instance) {
- super(instance, 2);
- }
-
- @Override
- public void onEquip(Player p, ItemStack pickAxe, int level) {
- ItemMeta meta = pickAxe.getItemMeta();
- meta.addEnchant(Enchantment.DURABILITY, level, true);
- pickAxe.setItemMeta(meta);
- }
-
- @Override
- public void onUnequip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onBlockBreak(BlockBreakEvent e, int enchantLevel) {
-
- }
-
- @Override
- public double getChanceToTrigger(int enchantLevel) {
- return 100.0;
- }
-
- @Override
- public void reload() {
- super.reload();
- }
-
- @Override
- public String getAuthor() {
- return "Drawethree";
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/model/impl/VoucherFinderEnchant.java b/src/main/java/me/nvus/xprison/enchants/model/impl/VoucherFinderEnchant.java
deleted file mode 100644
index e002e30..0000000
--- a/src/main/java/me/nvus/xprison/enchants/model/impl/VoucherFinderEnchant.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package me.nvus.xprison.enchants.model.impl;
-
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.model.XPrisonEnchantment;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import me.lucko.helper.random.RandomSelector;
-import org.bukkit.Bukkit;
-import org.bukkit.entity.Player;
-import org.bukkit.event.block.BlockBreakEvent;
-import org.bukkit.inventory.ItemStack;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.ThreadLocalRandom;
-
-public final class VoucherFinderEnchant extends XPrisonEnchantment {
-
- private double chance;
- private List commandsToExecute;
-
- public VoucherFinderEnchant(XPrisonEnchants instance) {
- super(instance, 20);
- this.chance = plugin.getEnchantsConfig().getYamlConfig().getDouble("enchants." + id + ".Chance");
- this.commandsToExecute = this.loadCommands();
- }
-
- @Override
- public void onEquip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onUnequip(Player p, ItemStack pickAxe, int level) {
-
- }
-
- @Override
- public void onBlockBreak(BlockBreakEvent e, int enchantLevel) {
- double chance = getChanceToTrigger(enchantLevel);
-
- if (chance < ThreadLocalRandom.current().nextDouble(100)) {
- return;
- }
-
- CommandWithChance randomCmd = getRandomCommandToExecute();
- Bukkit.dispatchCommand(Bukkit.getConsoleSender(), randomCmd.getCommand().replace("%player%", e.getPlayer().getName()));
- }
-
- private CommandWithChance getRandomCommandToExecute() {
- return RandomSelector.weighted(this.commandsToExecute, CommandWithChance::getChance).pick();
- }
-
- @Override
- public double getChanceToTrigger(int enchantLevel) {
- return this.chance * enchantLevel;
- }
-
- @Override
- public void reload() {
- super.reload();
- this.chance = plugin.getEnchantsConfig().getYamlConfig().getDouble("enchants." + id + ".Chance");
- this.commandsToExecute = this.loadCommands();
- }
-
- private List loadCommands() {
- List returnList = new ArrayList<>();
- for (String key : this.plugin.getEnchantsConfig().getYamlConfig().getConfigurationSection("enchants." + id + ".Commands").getKeys(false)) {
- String cmd = this.plugin.getEnchantsConfig().getYamlConfig().getString("enchants." + id + ".Commands." + key + ".command");
- double chance = this.plugin.getEnchantsConfig().getYamlConfig().getDouble("enchants." + id + ".Commands." + key + ".chance");
- returnList.add(new CommandWithChance(cmd, chance));
- }
- return returnList;
- }
-
- @Override
- public String getAuthor() {
- return "Drawethree";
- }
-
- @AllArgsConstructor
- @Getter
- private static class CommandWithChance {
- private final String command;
- private final double chance;
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/repo/EnchantsRepository.java b/src/main/java/me/nvus/xprison/enchants/repo/EnchantsRepository.java
deleted file mode 100644
index 86beede..0000000
--- a/src/main/java/me/nvus/xprison/enchants/repo/EnchantsRepository.java
+++ /dev/null
@@ -1,118 +0,0 @@
-package me.nvus.xprison.enchants.repo;
-
-import me.nvus.xprison.XPrison;
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.model.XPrisonEnchantment;
-import me.nvus.xprison.enchants.model.impl.*;
-import me.nvus.xprison.utils.text.TextUtils;
-import org.apache.commons.lang.Validate;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-
-public class EnchantsRepository {
-
- private final XPrisonEnchants plugin;
-
- private final Map enchantsById;
- private final Map enchantsByName;
-
- public EnchantsRepository(XPrisonEnchants plugin) {
- this.plugin = plugin;
- this.enchantsById = new HashMap<>();
- this.enchantsByName = new HashMap<>();
- }
-
- public Collection getAll() {
- return enchantsById.values();
- }
-
- public XPrisonEnchantment getEnchantBy(Object object) {
- if (object instanceof Integer) {
- return getEnchantById((int) object);
- } else {
- final String s = String.valueOf(object);
- try {
- return getEnchantById(Integer.parseInt(s));
- } catch (NumberFormatException e) {
- return getEnchantByName(s);
- }
- }
- }
-
- public XPrisonEnchantment getEnchantById(int id) {
- return enchantsById.get(id);
- }
-
- public XPrisonEnchantment getEnchantByName(String name) {
- return enchantsByName.get(name.toLowerCase());
- }
-
- public void reload() {
-
- enchantsById.values().forEach(XPrisonEnchantment::reload);
-
- XPrison.getInstance().getLogger().info(TextUtils.applyColor("&aSuccessfully reloaded all enchants."));
- }
-
- public void loadDefaultEnchantments() {
- register(new EfficiencyEnchant(this.plugin));
- register(new UnbreakingEnchant(this.plugin));
- register(new FortuneEnchant(this.plugin));
- register(new HasteEnchant(this.plugin));
- register(new SpeedEnchant(this.plugin));
- register(new JumpBoostEnchant(this.plugin));
- register(new NightVisionEnchant(this.plugin));
- register(new FlyEnchant(this.plugin));
- register(new ExplosiveEnchant(this.plugin));
- register(new LayerEnchant(this.plugin));
- register(new CharityEnchant(this.plugin));
- register(new SalaryEnchant(this.plugin));
- register(new BlessingEnchant(this.plugin));
- register(new TokenatorEnchant(this.plugin));
- register(new KeyFinderEnchant(this.plugin));
- register(new PrestigeFinderEnchant(this.plugin));
- register(new BlockBoosterEnchant(this.plugin));
- register(new KeyallsEnchant(this.plugin));
- if (XPrison.getInstance().isUltraBackpacksEnabled()) {
- register(new BackpackAutoSellEnchant(this.plugin));
- } else {
- register(new AutoSellEnchant(this.plugin));
- }
- register(new VoucherFinderEnchant(this.plugin));
- register(new NukeEnchant(this.plugin));
- register(new GemFinderEnchant(this.plugin));
- register(new GangValueFinderEnchant(this.plugin));
- }
-
- public boolean register(XPrisonEnchantment enchantment) {
-
- if (enchantsById.containsKey(enchantment.getId()) || enchantsByName.containsKey(enchantment.getRawName())) {
- XPrison.getInstance().getLogger().warning(TextUtils.applyColor("&cUnable to register enchant " + enchantment.getName() + "&c created by " + enchantment.getAuthor() + ". That enchant is already registered."));
- return false;
- }
-
- Validate.notNull(enchantment.getRawName());
-
- enchantsById.put(enchantment.getId(), enchantment);
- enchantsByName.put(enchantment.getRawName().toLowerCase(), enchantment);
-
- XPrison.getInstance().getLogger().info(TextUtils.applyColor("&aSuccessfully registered enchant " + enchantment.getName() + "&a created by " + enchantment.getAuthor()));
- return true;
- }
-
- public boolean unregister(XPrisonEnchantment enchantment) {
-
- if (!enchantsById.containsKey(enchantment.getId()) && !enchantsByName.containsKey(enchantment.getRawName())) {
- XPrison.getInstance().getLogger().warning(TextUtils.applyColor("&cUnable to unregister enchant " + enchantment.getName() + "&c created by " + enchantment.getAuthor() + ". That enchant is not registered."));
- return false;
- }
-
- enchantsById.remove(enchantment.getId());
- enchantsByName.remove(enchantment.getRawName());
-
- XPrison.getInstance().getLogger().info(TextUtils.applyColor("&aSuccessfully unregistered enchant " + enchantment.getName() + "&a created by " + enchantment.getAuthor()));
- return true;
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/utils/EnchantUtils.java b/src/main/java/me/nvus/xprison/enchants/utils/EnchantUtils.java
deleted file mode 100644
index b578091..0000000
--- a/src/main/java/me/nvus/xprison/enchants/utils/EnchantUtils.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package me.nvus.xprison.enchants.utils;
-
-import com.saicone.rtag.util.ServerInstance;
-import me.nvus.xprison.enchants.XPrisonEnchants;
-import me.nvus.xprison.enchants.model.XPrisonEnchantment;
-import me.nvus.xprison.enchants.model.impl.FortuneEnchant;
-import org.bukkit.block.Block;
-import org.bukkit.inventory.ItemStack;
-import org.bukkit.inventory.meta.Damageable;
-import org.bukkit.inventory.meta.ItemMeta;
-
-public final class EnchantUtils {
-
- private EnchantUtils() {
- throw new UnsupportedOperationException("Cannot instantiate.");
- }
-
- public static int getFortuneBlockCount(ItemStack pickaxe, Block block) {
- if (FortuneEnchant.isBlockBlacklisted(block)) {
- return 1;
- }
- return getItemFortuneLevel(pickaxe) + 1;
- }
-
- public static int getItemFortuneLevel(ItemStack item) {
- if (item == null) {
- return 0;
- }
- XPrisonEnchantment fortuneEnchant = XPrisonEnchants.getInstance().getEnchantsRepository().getEnchantById(3);
-
- if (fortuneEnchant == null || !fortuneEnchant.isEnabled()) {
- return 0;
- }
-
- return XPrisonEnchants.getInstance().getEnchantsManager().getEnchantLevel(item, fortuneEnchant);
- }
-
- public static int getDurability(ItemStack item) {
- return getDurability(item, item.getItemMeta());
- }
-
- public static int getDurability(ItemStack item, ItemMeta meta) {
- if (ServerInstance.isLegacy) {
- return item.getDurability();
- } else if (meta instanceof Damageable) {
- return ((Damageable) meta).getDamage();
- }
- return 0;
- }
-}
diff --git a/src/main/java/me/nvus/xprison/enchants/utils/GuiUtils.java b/src/main/java/me/nvus/xprison/enchants/utils/GuiUtils.java
deleted file mode 100644
index 0075361..0000000
--- a/src/main/java/me/nvus/xprison/enchants/utils/GuiUtils.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package me.nvus.xprison.enchants.utils;
-
-import me.nvus.xprison.enchants.model.XPrisonEnchantment;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class GuiUtils {
-
- private GuiUtils() {
- throw new UnsupportedOperationException("Cannot instantiate.");
- }
-
- public static List translateGuiLore(XPrisonEnchantment enchantment, List guiItemLore,
- int currentLevel) {
- List newList = new ArrayList<>();
- for (String s : guiItemLore) {
- if (s.contains("%description%")) {
- newList.addAll(enchantment.getDescription());
- continue;
- }
- newList.add(s
- .replace("%refund%", String.format("%,d", enchantment.getRefundForLevel(currentLevel)))
- .replace("%cost%", String.format("%,d", enchantment.getCost() + (enchantment.getIncreaseCost() * currentLevel)))
- .replace("%max_level%", enchantment.getMaxLevel() == Integer.MAX_VALUE ? "Unlimited" : String.format("%,d", enchantment.getMaxLevel()))
- .replace("%chance%", String.format("%,.2f", enchantment.getChanceToTrigger(currentLevel)))
- .replace("%current_level%", String.format("%,d", currentLevel))
- .replace("%pickaxe_level%", String.format("%,d", enchantment.getRequiredPickaxeLevel())));
- }
- return newList;
- }
-}
diff --git a/src/main/java/me/nvus/xprison/exception/ModuleNotEnabledException.java b/src/main/java/me/nvus/xprison/exception/ModuleNotEnabledException.java
deleted file mode 100644
index 8a58b85..0000000
--- a/src/main/java/me/nvus/xprison/exception/ModuleNotEnabledException.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package me.nvus.xprison.support.exception;
-
-import me.nvus.xprison.XPrisonModule;
-
-public class ModuleNotEnabledException extends Exception {
-
- public ModuleNotEnabledException(XPrisonModule module) {
- super("Module " + module.getName() + " is not enabled");
- }
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/XPrisonGangs.java b/src/main/java/me/nvus/xprison/gangs/XPrisonGangs.java
deleted file mode 100644
index 375193d..0000000
--- a/src/main/java/me/nvus/xprison/gangs/XPrisonGangs.java
+++ /dev/null
@@ -1,120 +0,0 @@
-package me.nvus.xprison.gangs;
-
-import me.nvus.xprison.XPrison;
-import me.nvus.xprison.XPrisonModule;
-import me.nvus.xprison.gangs.api.XPrisonGangsAPI;
-import me.nvus.xprison.gangs.api.XPrisonGangsAPIImpl;
-import me.nvus.xprison.gangs.commands.GangCommand;
-import me.nvus.xprison.gangs.config.GangsConfig;
-import me.nvus.xprison.gangs.listener.GangsListener;
-import me.nvus.xprison.gangs.managers.GangsManager;
-import me.nvus.xprison.gangs.model.GangTopByValueProvider;
-import me.nvus.xprison.gangs.model.GangTopProvider;
-import me.nvus.xprison.gangs.model.GangUpdateTopTask;
-import me.nvus.xprison.gangs.repo.GangsRepository;
-import me.nvus.xprison.gangs.repo.impl.GangsRepositoryImpl;
-import me.nvus.xprison.gangs.service.GangsService;
-import me.nvus.xprison.gangs.service.impl.GangsServiceImpl;
-import lombok.Getter;
-
-public final class XPrisonGangs implements XPrisonModule {
-
- public static final String MODULE_NAME = "Gangs";
-
- @Getter
- private static XPrisonGangs instance;
-
- @Getter
- private XPrisonGangsAPI api;
-
- @Getter
- private GangsConfig config;
-
- @Getter
- private GangsManager gangsManager;
-
- @Getter
- private GangTopProvider gangTopProvider;
-
- @Getter
- private GangUpdateTopTask gangUpdateTopTask;
-
- @Getter
- private final XPrison core;
-
- @Getter
- private GangsRepository gangsRepository;
-
- @Getter
- private GangsService gangsService;
-
- private boolean enabled;
-
- public XPrisonGangs(XPrison prisonCore) {
- instance = this;
- this.core = prisonCore;
- }
-
- @Override
- public boolean isEnabled() {
- return enabled;
- }
-
- @Override
- public void reload() {
- this.config.reload();
- }
-
- @Override
- public void enable() {
- this.config = new GangsConfig(this);
- this.config.load();
-
- GangCommand gangCommand = new GangCommand(this);
- gangCommand.register();
-
- this.gangsRepository = new GangsRepositoryImpl(this.core.getPluginDatabase());
- this.gangsRepository.createTables();
-
- this.gangsService = new GangsServiceImpl(this.gangsRepository);
-
- this.gangsManager = new GangsManager(this);
- this.gangsManager.enable();
-
- this.gangTopProvider = new GangTopByValueProvider(this.gangsManager);
-
- GangsListener gangsListener = new GangsListener(this);
- gangsListener.register();
-
- this.gangUpdateTopTask = new GangUpdateTopTask(this, this.gangTopProvider);
- this.gangUpdateTopTask.start();
-
-
- this.api = new XPrisonGangsAPIImpl(this.gangsManager);
-
- this.enabled = true;
- }
-
-
- @Override
- public void disable() {
- this.gangsManager.disable();
- this.gangUpdateTopTask.stop();
- this.enabled = false;
- }
-
- @Override
- public String getName() {
- return MODULE_NAME;
- }
-
- @Override
- public boolean isHistoryEnabled() {
- return true;
- }
-
- @Override
- public void resetPlayerData() {
- this.gangsRepository.clearTableData();
- }
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/api/XPrisonGangsAPI.java b/src/main/java/me/nvus/xprison/gangs/api/XPrisonGangsAPI.java
deleted file mode 100644
index ce82825..0000000
--- a/src/main/java/me/nvus/xprison/gangs/api/XPrisonGangsAPI.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package me.nvus.xprison.gangs.api;
-
-import me.nvus.xprison.gangs.model.Gang;
-import org.bukkit.OfflinePlayer;
-
-import java.util.Collection;
-import java.util.Optional;
-
-public interface XPrisonGangsAPI {
-
- /**
- * Method to get Gang from player
- *
- * @param player OfflinePlayer
- * @return Optional gang
- */
- Optional getPlayerGang(OfflinePlayer player);
-
- /**
- * Method to get Gang from name
- *
- * @param name name of gang
- * @return Optional gang
- */
- Optional getByName(String name);
-
- /**
- * Method to get all gangs
- *
- * @return List of gangs
- */
- Collection getAllGangs();
-
-
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/api/XPrisonGangsAPIImpl.java b/src/main/java/me/nvus/xprison/gangs/api/XPrisonGangsAPIImpl.java
deleted file mode 100644
index 5778748..0000000
--- a/src/main/java/me/nvus/xprison/gangs/api/XPrisonGangsAPIImpl.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package me.nvus.xprison.gangs.api;
-
-import me.nvus.xprison.gangs.managers.GangsManager;
-import me.nvus.xprison.gangs.model.Gang;
-import org.bukkit.OfflinePlayer;
-
-import java.util.Collection;
-import java.util.Optional;
-
-public final class XPrisonGangsAPIImpl implements XPrisonGangsAPI {
-
- private final GangsManager gangsManager;
-
- public XPrisonGangsAPIImpl(GangsManager gangsManager) {
- this.gangsManager = gangsManager;
- }
-
- @Override
- public Optional getPlayerGang(OfflinePlayer player) {
- return this.gangsManager.getPlayerGang(player);
- }
-
- @Override
- public Optional getByName(String name) {
- return this.gangsManager.getGangWithName(name);
- }
-
- @Override
- public Collection getAllGangs() {
- return this.gangsManager.getAllGangs();
- }
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/api/events/GangCreateEvent.java b/src/main/java/me/nvus/xprison/gangs/api/events/GangCreateEvent.java
deleted file mode 100644
index 90e46f4..0000000
--- a/src/main/java/me/nvus/xprison/gangs/api/events/GangCreateEvent.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package me.nvus.xprison.gangs.api.events;
-
-import me.nvus.xprison.api.events.XPrisonEvent;
-import me.nvus.xprison.gangs.model.Gang;
-import lombok.Getter;
-import org.bukkit.command.CommandSender;
-import org.bukkit.event.Cancellable;
-import org.bukkit.event.HandlerList;
-
-public final class GangCreateEvent extends XPrisonEvent implements Cancellable {
-
- private static final HandlerList HANDLERS_LIST = new HandlerList();
-
- private boolean cancelled;
-
- @Getter
- private final CommandSender creator;
-
- @Getter
- private final Gang gang;
-
- /**
- * Fired when gang is created
- *
- * @param creator CommandSender who created the gang
- * @param gang Gang
- */
- public GangCreateEvent(CommandSender creator, Gang gang) {
- this.creator = creator;
- this.gang = gang;
- }
-
- public static HandlerList getHandlerList() {
- return HANDLERS_LIST;
- }
-
- @Override
- public boolean isCancelled() {
- return cancelled;
- }
-
- @Override
- public void setCancelled(boolean cancel) {
- this.cancelled = cancel;
- }
-
- @Override
- public HandlerList getHandlers() {
- return HANDLERS_LIST;
- }
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/api/events/GangDisbandEvent.java b/src/main/java/me/nvus/xprison/gangs/api/events/GangDisbandEvent.java
deleted file mode 100644
index 2f9ff84..0000000
--- a/src/main/java/me/nvus/xprison/gangs/api/events/GangDisbandEvent.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package me.nvus.xprison.gangs.api.events;
-
-import me.nvus.xprison.api.events.XPrisonEvent;
-import me.nvus.xprison.gangs.model.Gang;
-import lombok.Getter;
-import org.bukkit.event.Cancellable;
-import org.bukkit.event.HandlerList;
-
-public final class GangDisbandEvent extends XPrisonEvent implements Cancellable {
-
- private static final HandlerList HANDLERS_LIST = new HandlerList();
- @Getter
- private final Gang gang;
- private boolean cancelled;
-
- /**
- * Called when gang is disbanded
- *
- * @param gang Gang
- */
- public GangDisbandEvent(Gang gang) {
- this.gang = gang;
- }
-
- public static HandlerList getHandlerList() {
- return HANDLERS_LIST;
- }
-
- @Override
- public boolean isCancelled() {
- return cancelled;
- }
-
- @Override
- public void setCancelled(boolean cancel) {
- this.cancelled = cancel;
- }
-
- @Override
- public HandlerList getHandlers() {
- return HANDLERS_LIST;
- }
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/api/events/GangJoinEvent.java b/src/main/java/me/nvus/xprison/gangs/api/events/GangJoinEvent.java
deleted file mode 100644
index 65d2f83..0000000
--- a/src/main/java/me/nvus/xprison/gangs/api/events/GangJoinEvent.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package me.nvus.xprison.gangs.api.events;
-
-import me.nvus.xprison.api.events.player.XPrisonPlayerEvent;
-import me.nvus.xprison.gangs.model.Gang;
-import lombok.Getter;
-import org.bukkit.OfflinePlayer;
-import org.bukkit.event.Cancellable;
-import org.bukkit.event.HandlerList;
-
-public final class GangJoinEvent extends XPrisonPlayerEvent implements Cancellable {
-
- private static final HandlerList HANDLERS_LIST = new HandlerList();
-
- private boolean cancelled;
-
- @Getter
- private final OfflinePlayer player;
-
- @Getter
- private final Gang gang;
-
- /**
- * Called when player joins a gang
- *
- * @param player Player
- * @param gang Gang
- */
- public GangJoinEvent(OfflinePlayer player, Gang gang) {
- super(player);
- this.player = player;
- this.gang = gang;
- }
-
- public static HandlerList getHandlerList() {
- return HANDLERS_LIST;
- }
-
- @Override
- public boolean isCancelled() {
- return cancelled;
- }
-
- @Override
- public void setCancelled(boolean cancel) {
- this.cancelled = cancel;
- }
-
- @Override
- public HandlerList getHandlers() {
- return HANDLERS_LIST;
- }
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/api/events/GangLeaveEvent.java b/src/main/java/me/nvus/xprison/gangs/api/events/GangLeaveEvent.java
deleted file mode 100644
index bb4f519..0000000
--- a/src/main/java/me/nvus/xprison/gangs/api/events/GangLeaveEvent.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package me.nvus.xprison.gangs.api.events;
-
-import me.nvus.xprison.api.events.player.XPrisonPlayerEvent;
-import me.nvus.xprison.gangs.enums.GangLeaveReason;
-import me.nvus.xprison.gangs.model.Gang;
-import lombok.Getter;
-import org.bukkit.OfflinePlayer;
-import org.bukkit.event.Cancellable;
-import org.bukkit.event.HandlerList;
-
-public final class GangLeaveEvent extends XPrisonPlayerEvent implements Cancellable {
-
- private static final HandlerList HANDLERS_LIST = new HandlerList();
-
- private boolean cancelled;
-
- @Getter
- private final OfflinePlayer player;
-
- @Getter
- private final Gang gang;
-
- @Getter
- private final GangLeaveReason leaveReason;
-
- /**
- * Called when player leaves a gang
- *
- * @param player Player
- * @param gang Gang
- * @param leaveReason GangLeaveReason
- */
- public GangLeaveEvent(OfflinePlayer player, Gang gang, GangLeaveReason leaveReason) {
- super(player);
- this.player = player;
- this.gang = gang;
- this.leaveReason = leaveReason;
- }
-
- public static HandlerList getHandlerList() {
- return HANDLERS_LIST;
- }
-
- @Override
- public boolean isCancelled() {
- return cancelled;
- }
-
- @Override
- public void setCancelled(boolean cancel) {
- this.cancelled = cancel;
- }
-
- @Override
- public HandlerList getHandlers() {
- return HANDLERS_LIST;
- }
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/commands/GangCommand.java b/src/main/java/me/nvus/xprison/gangs/commands/GangCommand.java
deleted file mode 100644
index 934ceb2..0000000
--- a/src/main/java/me/nvus/xprison/gangs/commands/GangCommand.java
+++ /dev/null
@@ -1,117 +0,0 @@
-package me.nvus.xprison.gangs.commands;
-
-import me.nvus.xprison.gangs.XPrisonGangs;
-import me.nvus.xprison.gangs.commands.impl.*;
-import me.nvus.xprison.gangs.commands.impl.admin.GangAdminSubCommand;
-import me.nvus.xprison.gangs.commands.impl.value.GangValueSubCommand;
-import me.nvus.xprison.gangs.gui.panel.GangPanelGUI;
-import me.nvus.xprison.gangs.model.Gang;
-import me.nvus.xprison.utils.player.PlayerUtils;
-import lombok.Getter;
-import me.lucko.helper.Commands;
-import me.lucko.helper.command.context.CommandContext;
-import org.bukkit.command.CommandSender;
-import org.bukkit.command.ConsoleCommandSender;
-import org.bukkit.entity.Player;
-
-import java.util.*;
-
-public class GangCommand {
-
- @Getter
- private final XPrisonGangs plugin;
- private final Map subCommands;
-
- public GangCommand(XPrisonGangs plugin) {
- this.plugin = plugin;
- this.subCommands = new HashMap<>();
- }
-
- private void registerSubCommands() {
- registerSubCommand(new GangHelpSubCommand(this));
- registerSubCommand(new GangInfoSubCommand(this));
- registerSubCommand(new GangCreateSubCommand(this));
- registerSubCommand(new GangInviteSubCommand(this));
- registerSubCommand(new GangAcceptSubCommand(this));
- registerSubCommand(new GangLeaveSubCommand(this));
- registerSubCommand(new GangDisbandSubCommand(this));
- registerSubCommand(new GangKickSubCommand(this));
- registerSubCommand(new GangTopSubCommand(this));
- registerSubCommand(new GangAdminSubCommand(this));
- registerSubCommand(new GangValueSubCommand(this));
- registerSubCommand(new GangRenameSubCommand(this));
- registerSubCommand(new GangChatSubCommand(this));
- }
-
- public void register() {
- this.registerSubCommands();
- this.registerMainCommand();
- }
-
- private void registerMainCommand() {
- Commands.create()
- .tabHandler(this::createTabHandler)
- .handler(c -> {
-
- if (c.args().size() == 0) {
-
- if (c.sender() instanceof Player) {
- Optional optionalGang = this.getPlugin().getGangsManager().getPlayerGang((Player) c.sender());
- optionalGang.ifPresent(gang -> openGangPanelGui(gang, (Player) c.sender()));
- return;
- } else if (c.sender() instanceof ConsoleCommandSender) {
- this.getHelpSubCommand().execute(c.sender(), c.args());
- return;
- }
-
- }
-
- GangSubCommand subCommand = this.getSubCommand(Objects.requireNonNull(c.rawArg(0)));
-
- if (subCommand != null) {
-
- if (!subCommand.canExecute(c.sender())) {
- PlayerUtils.sendMessage(c.sender(), this.plugin.getConfig().getMessage("no-permission"));
- return;
- }
-
- subCommand.execute(c.sender(), c.args().subList(1, c.args().size()));
- } else {
- this.getHelpSubCommand().execute(c.sender(), c.args());
- }
- }).registerAndBind(this.plugin.getCore(), this.plugin.getConfig().getGangsCommandAliases());
- }
-
- private GangSubCommand getHelpSubCommand() {
- return getSubCommand("help");
- }
-
- private List createTabHandler(CommandContext context) {
-
- if (context.args().size() == 0) {
- return new ArrayList<>(this.subCommands.keySet());
- }
-
- GangSubCommand subCommand = getSubCommand(context.rawArg(0));
-
- if (subCommand != null) {
- return subCommand.getTabComplete();
- }
-
- return new ArrayList<>(this.subCommands.keySet());
- }
-
- private void registerSubCommand(GangSubCommand command) {
- for (String alias : command.getAliases()) {
- this.subCommands.put(alias.toLowerCase(), command);
- }
- }
-
- private GangSubCommand getSubCommand(String arg) {
- return subCommands.get(arg.toLowerCase());
- }
-
- private void openGangPanelGui(Gang gang, Player player) {
- new GangPanelGUI(this.plugin, gang, player).open();
- }
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/commands/GangSubCommand.java b/src/main/java/me/nvus/xprison/gangs/commands/GangSubCommand.java
deleted file mode 100644
index 00c1a41..0000000
--- a/src/main/java/me/nvus/xprison/gangs/commands/GangSubCommand.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package me.nvus.xprison.gangs.commands;
-
-import lombok.Getter;
-import org.bukkit.command.CommandSender;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-public abstract class GangSubCommand {
-
- @Getter
- protected final GangCommand command;
- @Getter
- private final String[] aliases;
-
- protected final Map subCommands;
-
- public GangSubCommand(GangCommand command, String... aliases) {
- this.command = command;
- this.aliases = aliases;
- this.subCommands = new HashMap<>();
- }
-
- public abstract boolean execute(CommandSender sender, List args);
-
- public abstract String getUsage();
-
- public abstract boolean canExecute(CommandSender sender);
-
- public abstract List getTabComplete();
-
- protected void registerSubCommand(GangSubCommand subCommand) {
- for (String alias : subCommand.getAliases()) {
- this.subCommands.put(alias.toLowerCase(), subCommand);
- }
- }
-
- protected GangSubCommand getSubCommand(String name) {
- return subCommands.get(name.toLowerCase());
- }
-
-
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/commands/impl/GangAcceptSubCommand.java b/src/main/java/me/nvus/xprison/gangs/commands/impl/GangAcceptSubCommand.java
deleted file mode 100644
index b2a399c..0000000
--- a/src/main/java/me/nvus/xprison/gangs/commands/impl/GangAcceptSubCommand.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package me.nvus.xprison.gangs.commands.impl;
-
-import me.nvus.xprison.gangs.commands.GangCommand;
-import me.nvus.xprison.gangs.commands.GangSubCommand;
-import me.nvus.xprison.gangs.model.Gang;
-import me.nvus.xprison.utils.player.PlayerUtils;
-import org.bukkit.ChatColor;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Optional;
-
-public final class GangAcceptSubCommand extends GangSubCommand {
-
- public GangAcceptSubCommand(GangCommand command) {
- super(command, "accept", "join");
- }
-
- @Override
- public String getUsage() {
- return ChatColor.RED + "/gang accept ";
- }
-
- @Override
- public boolean execute(CommandSender sender, List args) {
- if (sender instanceof Player && args.size() == 1) {
-
- String gangName = args.get(0);
- Optional gangOptional = this.command.getPlugin().getGangsManager().getGangWithName(gangName);
-
- if (!gangOptional.isPresent()) {
- PlayerUtils.sendMessage(sender, this.command.getPlugin().getConfig().getMessage("gang-not-exists"));
- return false;
- }
-
- return this.command.getPlugin().getGangsManager().acceptInvite((Player) sender, gangOptional.get());
- }
- return false;
- }
-
- @Override
- public boolean canExecute(CommandSender sender) {
- return true;
- }
-
- @Override
- public List getTabComplete() {
- return new ArrayList<>();
- }
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/commands/impl/GangChatSubCommand.java b/src/main/java/me/nvus/xprison/gangs/commands/impl/GangChatSubCommand.java
deleted file mode 100644
index 1034fb1..0000000
--- a/src/main/java/me/nvus/xprison/gangs/commands/impl/GangChatSubCommand.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package me.nvus.xprison.gangs.commands.impl;
-
-import me.nvus.xprison.gangs.commands.GangCommand;
-import me.nvus.xprison.gangs.commands.GangSubCommand;
-import org.bukkit.ChatColor;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-
-import java.util.ArrayList;
-import java.util.List;
-
-
-public final class GangChatSubCommand extends GangSubCommand {
-
- public GangChatSubCommand(GangCommand command) {
- super(command, "chat", "c");
- }
-
- @Override
- public String getUsage() {
- return ChatColor.RED + "/gang chat";
- }
-
- @Override
- public boolean execute(CommandSender sender, List args) {
- if (args.size() == 0 && sender instanceof Player) {
- Player p = (Player) sender;
- return this.command.getPlugin().getGangsManager().toggleGangChat(p);
- }
- return false;
- }
-
- @Override
- public boolean canExecute(CommandSender sender) {
- return true;
- }
-
- @Override
- public List getTabComplete() {
- return new ArrayList<>();
- }
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/commands/impl/GangCreateSubCommand.java b/src/main/java/me/nvus/xprison/gangs/commands/impl/GangCreateSubCommand.java
deleted file mode 100644
index cc06c57..0000000
--- a/src/main/java/me/nvus/xprison/gangs/commands/impl/GangCreateSubCommand.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package me.nvus.xprison.gangs.commands.impl;
-
-import me.nvus.xprison.gangs.commands.GangCommand;
-import me.nvus.xprison.gangs.commands.GangSubCommand;
-import me.nvus.xprison.gangs.enums.GangCreateResult;
-import me.nvus.xprison.gangs.utils.GangsConstants;
-import org.bukkit.ChatColor;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public final class GangCreateSubCommand extends GangSubCommand {
-
- public GangCreateSubCommand(GangCommand command) {
- super(command, "create", "new");
- }
-
- @Override
- public String getUsage() {
- return ChatColor.RED + "/gang create ";
- }
-
- @Override
- public boolean execute(CommandSender sender, List args) {
- if (sender instanceof Player && args.size() == 1) {
- return this.command.getPlugin().getGangsManager().createGang(args.get(0), (Player) sender) == GangCreateResult.SUCCESS;
- }
- return false;
- }
-
- @Override
- public boolean canExecute(CommandSender sender) {
- return sender.hasPermission(GangsConstants.GANGS_CREATE_PERM);
- }
-
- @Override
- public List getTabComplete() {
- return new ArrayList<>();
- }
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/commands/impl/GangDisbandSubCommand.java b/src/main/java/me/nvus/xprison/gangs/commands/impl/GangDisbandSubCommand.java
deleted file mode 100644
index b443839..0000000
--- a/src/main/java/me/nvus/xprison/gangs/commands/impl/GangDisbandSubCommand.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package me.nvus.xprison.gangs.commands.impl;
-
-import me.nvus.xprison.gangs.commands.GangCommand;
-import me.nvus.xprison.gangs.commands.GangSubCommand;
-import me.nvus.xprison.gangs.gui.panel.DisbandGangGUI;
-import me.nvus.xprison.gangs.model.Gang;
-import me.nvus.xprison.utils.player.PlayerUtils;
-import org.bukkit.ChatColor;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Optional;
-
-public final class GangDisbandSubCommand extends GangSubCommand {
-
- public GangDisbandSubCommand(GangCommand command) {
- super(command, "disband", "dis");
- }
-
- @Override
- public String getUsage() {
- return ChatColor.RED + "/gang disband";
- }
-
- @Override
- public boolean execute(CommandSender sender, List args) {
- if (sender instanceof Player && args.size() == 0) {
-
- Player player = (Player) sender;
- Optional gangOptional = this.command.getPlugin().getGangsManager().getPlayerGang(player);
-
- if (!gangOptional.isPresent()) {
- PlayerUtils.sendMessage(player, this.command.getPlugin().getConfig().getMessage("not-in-gang"));
- return false;
- }
-
- Gang gang = gangOptional.get();
-
- if (!gang.isOwner(player)) {
- PlayerUtils.sendMessage(player, this.command.getPlugin().getConfig().getMessage("gang-not-owner"));
- return false;
- }
-
- new DisbandGangGUI(this.command.getPlugin(), player, gang).open();
- }
- return false;
- }
-
- @Override
- public boolean canExecute(CommandSender sender) {
- return true;
- }
-
- @Override
- public List getTabComplete() {
- return new ArrayList<>();
- }
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/commands/impl/GangHelpSubCommand.java b/src/main/java/me/nvus/xprison/gangs/commands/impl/GangHelpSubCommand.java
deleted file mode 100644
index 2d9f2b5..0000000
--- a/src/main/java/me/nvus/xprison/gangs/commands/impl/GangHelpSubCommand.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package me.nvus.xprison.gangs.commands.impl;
-
-import me.nvus.xprison.gangs.commands.GangCommand;
-import me.nvus.xprison.gangs.commands.GangSubCommand;
-import me.nvus.xprison.gangs.utils.GangsConstants;
-import org.bukkit.ChatColor;
-import org.bukkit.command.CommandSender;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public final class GangHelpSubCommand extends GangSubCommand {
-
- public GangHelpSubCommand(GangCommand command) {
- super(command, "help", "?");
- }
-
- @Override
- public String getUsage() {
- return ChatColor.RED + "/gang help";
- }
-
- @Override
- public boolean execute(CommandSender sender, List args) {
- if (args.isEmpty()) {
- this.command.getPlugin().getGangsManager().sendHelpMenu(sender);
- if (sender.hasPermission(GangsConstants.GANGS_ADMIN_PERM)) {
- this.command.getPlugin().getGangsManager().sendAdminHelpMenu(sender);
- }
- return true;
- }
- return false;
- }
-
-
- @Override
- public boolean canExecute(CommandSender sender) {
- return true;
- }
-
- @Override
- public List getTabComplete() {
- return new ArrayList<>();
- }
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/commands/impl/GangInfoSubCommand.java b/src/main/java/me/nvus/xprison/gangs/commands/impl/GangInfoSubCommand.java
deleted file mode 100644
index a4177a8..0000000
--- a/src/main/java/me/nvus/xprison/gangs/commands/impl/GangInfoSubCommand.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package me.nvus.xprison.gangs.commands.impl;
-
-import me.nvus.xprison.gangs.commands.GangCommand;
-import me.nvus.xprison.gangs.commands.GangSubCommand;
-import me.nvus.xprison.gangs.model.Gang;
-import me.lucko.helper.utils.Players;
-import org.bukkit.ChatColor;
-import org.bukkit.OfflinePlayer;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.stream.Collectors;
-
-public final class GangInfoSubCommand extends GangSubCommand {
-
- public GangInfoSubCommand(GangCommand command) {
- super(command, "info", "inspect");
- }
-
- @Override
- public String getUsage() {
- return ChatColor.RED + "/gang info ";
- }
-
- @Override
- public boolean execute(CommandSender sender, List args) {
- if (sender instanceof Player) {
- Player p = (Player) sender;
- if (args.size() == 0) {
- return this.command.getPlugin().getGangsManager().sendGangInfo(p, p);
- } else if (args.size() == 1) {
- OfflinePlayer target = Players.getOfflineNullable(args.get(0));
-
- if (this.command.getPlugin().getGangsManager().getPlayerGang(target).isPresent()) {
- return this.command.getPlugin().getGangsManager().sendGangInfo(p, target);
- } else {
- return this.command.getPlugin().getGangsManager().sendGangInfo(p, args.get(0));
- }
- }
- }
- return false;
- }
-
-
- @Override
- public boolean canExecute(CommandSender sender) {
- return true;
- }
-
- @Override
- public List getTabComplete() {
- List tabComplete = new ArrayList<>();
- tabComplete.addAll(Players.all().stream().map(Player::getName).collect(Collectors.toList()));
- tabComplete.addAll(this.command.getPlugin().getGangsManager().getAllGangs().stream().map(Gang::getName).collect(Collectors.toList()));
- return tabComplete;
- }
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/commands/impl/GangInviteSubCommand.java b/src/main/java/me/nvus/xprison/gangs/commands/impl/GangInviteSubCommand.java
deleted file mode 100644
index e88adca..0000000
--- a/src/main/java/me/nvus/xprison/gangs/commands/impl/GangInviteSubCommand.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package me.nvus.xprison.gangs.commands.impl;
-
-import me.nvus.xprison.gangs.commands.GangCommand;
-import me.nvus.xprison.gangs.commands.GangSubCommand;
-import me.lucko.helper.utils.Players;
-import org.bukkit.ChatColor;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-public final class GangInviteSubCommand extends GangSubCommand {
-
- public GangInviteSubCommand(GangCommand command) {
- super(command, "invite", "inv");
- }
-
- @Override
- public String getUsage() {
- return ChatColor.RED + "/gang invite [player]";
- }
-
- @Override
- public boolean execute(CommandSender sender, List args) {
- if (sender instanceof Player && args.size() == 1) {
- Player p = (Player) sender;
- Player target = Players.getNullable(args.get(0));
- return this.command.getPlugin().getGangsManager().invitePlayer(p, target);
- }
- return false;
- }
-
-
- @Override
- public boolean canExecute(CommandSender sender) {
- return true;
- }
-
- @Override
- public List getTabComplete() {
- return Players.all().stream().map(Player::getName).collect(Collectors.toList());
- }
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/commands/impl/GangKickSubCommand.java b/src/main/java/me/nvus/xprison/gangs/commands/impl/GangKickSubCommand.java
deleted file mode 100644
index 3334abd..0000000
--- a/src/main/java/me/nvus/xprison/gangs/commands/impl/GangKickSubCommand.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package me.nvus.xprison.gangs.commands.impl;
-
-import me.nvus.xprison.gangs.commands.GangCommand;
-import me.nvus.xprison.gangs.commands.GangSubCommand;
-import me.nvus.xprison.gangs.model.Gang;
-import me.nvus.xprison.utils.player.PlayerUtils;
-import me.lucko.helper.utils.Players;
-import org.bukkit.ChatColor;
-import org.bukkit.OfflinePlayer;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-
-import java.util.List;
-import java.util.Optional;
-import java.util.stream.Collectors;
-
-public final class GangKickSubCommand extends GangSubCommand {
-
- public GangKickSubCommand(GangCommand command) {
- super(command, "kick", "remove");
- }
-
- @Override
- public String getUsage() {
- return ChatColor.RED + "/gang kick ";
- }
-
- @Override
- public boolean execute(CommandSender sender, List args) {
- if (args.size() == 1 && sender instanceof Player) {
- Player p = (Player) sender;
- Optional gang = this.command.getPlugin().getGangsManager().getPlayerGang(p);
-
- if (!gang.isPresent()) {
- PlayerUtils.sendMessage(p, this.command.getPlugin().getConfig().getMessage("not-in-gang"));
- return false;
- }
-
- OfflinePlayer target = Players.getOfflineNullable(args.get(0));
-
- return this.command.getPlugin().getGangsManager().removeFromGang(p, gang.get(), target);
- }
- return false;
- }
-
-
- @Override
- public boolean canExecute(CommandSender sender) {
- return true;
- }
-
- @Override
- public List getTabComplete() {
- return Players.all().stream().map(Player::getName).collect(Collectors.toList());
- }
-
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/commands/impl/GangLeaveSubCommand.java b/src/main/java/me/nvus/xprison/gangs/commands/impl/GangLeaveSubCommand.java
deleted file mode 100644
index c227f62..0000000
--- a/src/main/java/me/nvus/xprison/gangs/commands/impl/GangLeaveSubCommand.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package me.nvus.xprison.gangs.commands.impl;
-
-import me.nvus.xprison.gangs.commands.GangCommand;
-import me.nvus.xprison.gangs.commands.GangSubCommand;
-import me.nvus.xprison.gangs.enums.GangLeaveReason;
-import org.bukkit.ChatColor;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public final class GangLeaveSubCommand extends GangSubCommand {
-
- public GangLeaveSubCommand(GangCommand command) {
- super(command, "leave", "quit");
- }
-
- @Override
- public String getUsage() {
- return ChatColor.RED + "/gang leave";
- }
-
- @Override
- public boolean execute(CommandSender sender, List args) {
- if (args.size() == 0 && sender instanceof Player) {
- Player p = (Player) sender;
- return this.command.getPlugin().getGangsManager().leaveGang(p, GangLeaveReason.LEAVE);
- }
- return false;
- }
-
-
- @Override
- public boolean canExecute(CommandSender sender) {
- return true;
- }
-
- @Override
- public List getTabComplete() {
- return new ArrayList<>();
- }
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/commands/impl/GangRenameSubCommand.java b/src/main/java/me/nvus/xprison/gangs/commands/impl/GangRenameSubCommand.java
deleted file mode 100644
index 4d390f7..0000000
--- a/src/main/java/me/nvus/xprison/gangs/commands/impl/GangRenameSubCommand.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package me.nvus.xprison.gangs.commands.impl;
-
-import me.nvus.xprison.gangs.commands.GangCommand;
-import me.nvus.xprison.gangs.commands.GangSubCommand;
-import me.nvus.xprison.gangs.enums.GangRenameResult;
-import me.nvus.xprison.gangs.model.Gang;
-import me.nvus.xprison.utils.player.PlayerUtils;
-import org.bukkit.ChatColor;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Optional;
-
-public final class GangRenameSubCommand extends GangSubCommand {
-
- public GangRenameSubCommand(GangCommand command) {
- super(command, "rename");
- }
-
- @Override
- public String getUsage() {
- return ChatColor.RED + "/gang rename [new_name]";
- }
-
- @Override
- public boolean execute(CommandSender sender, List args) {
- if (args.size() == 1 && sender instanceof Player) {
- Player p = (Player) sender;
- String newName = args.get(0);
-
- Optional gangOptional = this.command.getPlugin().getGangsManager().getPlayerGang(p);
-
- if (!gangOptional.isPresent()) {
- PlayerUtils.sendMessage(p, this.command.getPlugin().getConfig().getMessage("not-in-gang"));
- return false;
- }
-
- Gang gang = gangOptional.get();
-
- if (!gang.isOwner(p)) {
- PlayerUtils.sendMessage(p, this.command.getPlugin().getConfig().getMessage("gang-not-owner"));
- return false;
- }
-
- return this.command.getPlugin().getGangsManager().renameGang(gang, newName, p) == GangRenameResult.SUCCESS;
- }
- return false;
- }
-
-
- @Override
- public boolean canExecute(CommandSender sender) {
- return true;
- }
-
- @Override
- public List getTabComplete() {
- return new ArrayList<>();
- }
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/commands/impl/GangTopSubCommand.java b/src/main/java/me/nvus/xprison/gangs/commands/impl/GangTopSubCommand.java
deleted file mode 100644
index f6c38b8..0000000
--- a/src/main/java/me/nvus/xprison/gangs/commands/impl/GangTopSubCommand.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package me.nvus.xprison.gangs.commands.impl;
-
-import me.nvus.xprison.gangs.commands.GangCommand;
-import me.nvus.xprison.gangs.commands.GangSubCommand;
-import org.bukkit.ChatColor;
-import org.bukkit.command.CommandSender;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public final class GangTopSubCommand extends GangSubCommand {
-
- public GangTopSubCommand(GangCommand command) {
- super(command, "top", "leaderboard");
- }
-
- @Override
- public String getUsage() {
- return ChatColor.RED + "/gang top";
- }
-
- @Override
- public boolean execute(CommandSender sender, List args) {
- if (args.size() == 0) {
- return this.command.getPlugin().getGangsManager().sendGangTop(sender);
- }
- return false;
- }
-
-
- @Override
- public boolean canExecute(CommandSender sender) {
- return true;
- }
-
- @Override
- public List getTabComplete() {
- return new ArrayList<>();
- }
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/commands/impl/admin/GangAdminDisbandSubCommand.java b/src/main/java/me/nvus/xprison/gangs/commands/impl/admin/GangAdminDisbandSubCommand.java
deleted file mode 100644
index 4d46c59..0000000
--- a/src/main/java/me/nvus/xprison/gangs/commands/impl/admin/GangAdminDisbandSubCommand.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package me.nvus.xprison.gangs.commands.impl.admin;
-
-import me.nvus.xprison.gangs.commands.GangCommand;
-import me.nvus.xprison.gangs.commands.GangSubCommand;
-import me.nvus.xprison.gangs.model.Gang;
-import me.nvus.xprison.gangs.utils.GangsConstants;
-import me.nvus.xprison.utils.player.PlayerUtils;
-import me.lucko.helper.utils.Players;
-import org.bukkit.ChatColor;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-
-import java.util.List;
-import java.util.Optional;
-import java.util.stream.Collectors;
-
-public final class GangAdminDisbandSubCommand extends GangSubCommand {
-
- public GangAdminDisbandSubCommand(GangCommand command) {
- super(command, "disband");
- }
-
- @Override
- public boolean execute(CommandSender sender, List args) {
- if (args.size() == 1) {
- Optional gangOptional = this.command.getPlugin().getGangsManager().getGangWithName(args.get(0));
-
- if (!gangOptional.isPresent()) {
- PlayerUtils.sendMessage(sender, this.command.getPlugin().getConfig().getMessage("gang-not-exists"));
- return false;
- }
-
- return this.command.getPlugin().getGangsManager().forceDisband(sender, gangOptional.get());
- }
- return false;
- }
-
- @Override
- public String getUsage() {
- return ChatColor.RED + "/gang admin disband ";
- }
-
- @Override
- public boolean canExecute(CommandSender sender) {
- return sender.hasPermission(GangsConstants.GANGS_ADMIN_PERM);
- }
-
- @Override
- public List getTabComplete() {
- return Players.all().stream().map(Player::getName).collect(Collectors.toList());
- }
-}
\ No newline at end of file
diff --git a/src/main/java/me/nvus/xprison/gangs/commands/impl/admin/GangAdminJoinSubCommand.java b/src/main/java/me/nvus/xprison/gangs/commands/impl/admin/GangAdminJoinSubCommand.java
deleted file mode 100644
index 708530b..0000000
--- a/src/main/java/me/nvus/xprison/gangs/commands/impl/admin/GangAdminJoinSubCommand.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package me.nvus.xprison.gangs.commands.impl.admin;
-
-import me.nvus.xprison.gangs.commands.GangCommand;
-import me.nvus.xprison.gangs.commands.GangSubCommand;
-import me.nvus.xprison.gangs.model.Gang;
-import me.nvus.xprison.gangs.utils.GangsConstants;
-import me.nvus.xprison.utils.player.PlayerUtils;
-import me.lucko.helper.utils.Players;
-import org.bukkit.ChatColor;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-
-import java.util.List;
-import java.util.Optional;
-import java.util.stream.Collectors;
-
-public final class GangAdminJoinSubCommand extends GangSubCommand {
-
- public GangAdminJoinSubCommand(GangCommand command) {
- super(command, "join", "add");
- }
-
- @Override
- public boolean execute(CommandSender sender, List args) {
- if (args.size() == 2) {
- Player target = Players.getNullable(args.get(0));
- Optional gangOptional = this.command.getPlugin().getGangsManager().getGangWithName(args.get(1));
-
- if (!gangOptional.isPresent()) {
- PlayerUtils.sendMessage(sender, this.command.getPlugin().getConfig().getMessage("gang-not-exists"));
- return false;
- }
-
- return this.command.getPlugin().getGangsManager().forceAdd(sender, target, gangOptional.get());
- }
- return false;
- }
-
- @Override
- public String getUsage() {
- return ChatColor.RED + "/gang admin join ";
- }
-
- @Override
- public boolean canExecute(CommandSender sender) {
- return sender.hasPermission(GangsConstants.GANGS_ADMIN_PERM);
- }
-
- @Override
- public List getTabComplete() {
- return Players.all().stream().map(Player::getName).collect(Collectors.toList());
- }
-}
\ No newline at end of file
diff --git a/src/main/java/me/nvus/xprison/gangs/commands/impl/admin/GangAdminKickSubCommand.java b/src/main/java/me/nvus/xprison/gangs/commands/impl/admin/GangAdminKickSubCommand.java
deleted file mode 100644
index d66623c..0000000
--- a/src/main/java/me/nvus/xprison/gangs/commands/impl/admin/GangAdminKickSubCommand.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package me.nvus.xprison.gangs.commands.impl.admin;
-
-import me.nvus.xprison.gangs.commands.GangCommand;
-import me.nvus.xprison.gangs.commands.GangSubCommand;
-import me.nvus.xprison.gangs.utils.GangsConstants;
-import me.lucko.helper.utils.Players;
-import org.bukkit.ChatColor;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-public final class GangAdminKickSubCommand extends GangSubCommand {
-
- public GangAdminKickSubCommand(GangCommand command) {
- super(command, "kick", "remove");
- }
-
- @Override
- public boolean execute(CommandSender sender, List args) {
- if (args.size() == 1) {
- Player target = Players.getNullable(args.get(0));
- return this.command.getPlugin().getGangsManager().forceRemove(sender, target);
- }
- return false;
- }
-
- @Override
- public String getUsage() {
- return ChatColor.RED + "/gang admin kick ";
- }
-
- @Override
- public boolean canExecute(CommandSender sender) {
- return sender.hasPermission(GangsConstants.GANGS_ADMIN_PERM);
- }
-
- @Override
- public List getTabComplete() {
- return Players.all().stream().map(Player::getName).collect(Collectors.toList());
- }
-}
\ No newline at end of file
diff --git a/src/main/java/me/nvus/xprison/gangs/commands/impl/admin/GangAdminRenameSubCommand.java b/src/main/java/me/nvus/xprison/gangs/commands/impl/admin/GangAdminRenameSubCommand.java
deleted file mode 100644
index 7b2fc3e..0000000
--- a/src/main/java/me/nvus/xprison/gangs/commands/impl/admin/GangAdminRenameSubCommand.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package me.nvus.xprison.gangs.commands.impl.admin;
-
-import me.nvus.xprison.gangs.commands.GangCommand;
-import me.nvus.xprison.gangs.commands.GangSubCommand;
-import me.nvus.xprison.gangs.model.Gang;
-import me.nvus.xprison.gangs.utils.GangsConstants;
-import org.bukkit.ChatColor;
-import org.bukkit.command.CommandSender;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-public final class GangAdminRenameSubCommand extends GangSubCommand {
-
- public GangAdminRenameSubCommand(GangCommand command) {
- super(command, "rename");
- }
-
- @Override
- public boolean execute(CommandSender sender, List args) {
- if (args.size() == 2) {
- String oldGangName = args.get(0);
- String newGangName = args.get(1);
- return this.command.getPlugin().getGangsManager().forceRename(sender, oldGangName, newGangName);
- }
- return false;
- }
-
- @Override
- public String getUsage() {
- return ChatColor.RED + "/gang admin rename ";
- }
-
- @Override
- public boolean canExecute(CommandSender sender) {
- return sender.hasPermission(GangsConstants.GANGS_ADMIN_PERM);
- }
-
- @Override
- public List getTabComplete() {
- return this.command.getPlugin().getGangsManager().getAllGangs().stream().map(Gang::getName).collect(Collectors.toList());
- }
-}
\ No newline at end of file
diff --git a/src/main/java/me/nvus/xprison/gangs/commands/impl/admin/GangAdminSubCommand.java b/src/main/java/me/nvus/xprison/gangs/commands/impl/admin/GangAdminSubCommand.java
deleted file mode 100644
index fd3d0fa..0000000
--- a/src/main/java/me/nvus/xprison/gangs/commands/impl/admin/GangAdminSubCommand.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package me.nvus.xprison.gangs.commands.impl.admin;
-
-import me.nvus.xprison.gangs.commands.GangCommand;
-import me.nvus.xprison.gangs.commands.GangSubCommand;
-import me.nvus.xprison.gangs.utils.GangsConstants;
-import org.bukkit.ChatColor;
-import org.bukkit.command.CommandSender;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public final class GangAdminSubCommand extends GangSubCommand {
-
- public GangAdminSubCommand(GangCommand command) {
- super(command, "admin");
- registerSubCommand(new GangAdminJoinSubCommand(command));
- registerSubCommand(new GangAdminKickSubCommand(command));
- registerSubCommand(new GangAdminDisbandSubCommand(command));
- registerSubCommand(new GangAdminRenameSubCommand(command));
- }
-
- @Override
- public String getUsage() {
- return ChatColor.RED + "/gang admin ";
- }
-
- @Override
- public boolean execute(CommandSender sender, List args) {
- if (args.size() > 0) {
- GangSubCommand subCommand = getSubCommand(args.get(0));
- if (subCommand != null) {
- return subCommand.execute(sender, args.subList(1, args.size()));
- }
- }
- return false;
- }
-
- @Override
- public boolean canExecute(CommandSender sender) {
- return sender.hasPermission(GangsConstants.GANGS_ADMIN_PERM);
- }
-
- @Override
- public List getTabComplete() {
- return new ArrayList<>(this.subCommands.keySet());
- }
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/commands/impl/value/GangValueAddSubCommand.java b/src/main/java/me/nvus/xprison/gangs/commands/impl/value/GangValueAddSubCommand.java
deleted file mode 100644
index 8b33cc4..0000000
--- a/src/main/java/me/nvus/xprison/gangs/commands/impl/value/GangValueAddSubCommand.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package me.nvus.xprison.gangs.commands.impl.value;
-
-import me.nvus.xprison.gangs.commands.GangCommand;
-import me.nvus.xprison.gangs.commands.GangSubCommand;
-import me.nvus.xprison.gangs.model.Gang;
-import me.nvus.xprison.gangs.utils.GangsConstants;
-import me.nvus.xprison.utils.player.PlayerUtils;
-import me.lucko.helper.utils.Players;
-import org.bukkit.ChatColor;
-import org.bukkit.command.CommandSender;
-
-import java.util.List;
-import java.util.Optional;
-import java.util.stream.Collectors;
-
-public final class GangValueAddSubCommand extends GangSubCommand {
- public GangValueAddSubCommand(GangCommand command) {
- super(command, "add");
- }
-
- @Override
- public boolean execute(CommandSender sender, List args) {
- if (args.size() == 2) {
- try {
- Optional gang = this.command.getPlugin().getGangsManager().getGangWithName(args.get(0));
-
- if (!gang.isPresent()) {
- gang = this.command.getPlugin().getGangsManager().getPlayerGang(Players.getOfflineNullable(args.get(0)));
- }
-
- if (!gang.isPresent()) {
- PlayerUtils.sendMessage(sender, this.command.getPlugin().getConfig().getMessage("gang-not-exists"));
- return false;
- }
-
- long amount = Long.parseLong(args.get(1));
- String operation = "add";
-
- return this.command.getPlugin().getGangsManager().modifyValue(sender, gang.get(), amount, operation);
- } catch (Exception e) {
- sender.sendMessage("§cInternal error.");
- return false;
- }
- }
- return false;
- }
-
- @Override
- public String getUsage() {
- return ChatColor.RED + "/gang value add ";
- }
-
- @Override
- public boolean canExecute(CommandSender sender) {
- return sender.hasPermission(GangsConstants.GANGS_ADMIN_PERM);
- }
-
- @Override
- public List getTabComplete() {
- return this.command.getPlugin().getGangsManager().getAllGangs().stream().map(Gang::getName).collect(Collectors.toList());
- }
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/commands/impl/value/GangValueRemoveSubCommand.java b/src/main/java/me/nvus/xprison/gangs/commands/impl/value/GangValueRemoveSubCommand.java
deleted file mode 100644
index 4abca19..0000000
--- a/src/main/java/me/nvus/xprison/gangs/commands/impl/value/GangValueRemoveSubCommand.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package me.nvus.xprison.gangs.commands.impl.value;
-
-import me.nvus.xprison.gangs.commands.GangCommand;
-import me.nvus.xprison.gangs.commands.GangSubCommand;
-import me.nvus.xprison.gangs.model.Gang;
-import me.nvus.xprison.gangs.utils.GangsConstants;
-import me.nvus.xprison.utils.player.PlayerUtils;
-import me.lucko.helper.utils.Players;
-import org.bukkit.ChatColor;
-import org.bukkit.command.CommandSender;
-
-import java.util.List;
-import java.util.Optional;
-import java.util.stream.Collectors;
-
-public final class GangValueRemoveSubCommand extends GangSubCommand {
- public GangValueRemoveSubCommand(GangCommand command) {
- super(command, "remove");
- }
-
- @Override
- public boolean execute(CommandSender sender, List args) {
- if (args.size() == 2) {
- try {
- Optional gang = this.command.getPlugin().getGangsManager().getGangWithName(args.get(0));
-
- if (!gang.isPresent()) {
- gang = this.command.getPlugin().getGangsManager().getPlayerGang(Players.getOfflineNullable(args.get(0)));
- }
-
- if (!gang.isPresent()) {
- PlayerUtils.sendMessage(sender, this.command.getPlugin().getConfig().getMessage("gang-not-exists"));
- return false;
- }
-
- long amount = Long.parseLong(args.get(1));
- String operation = "remove";
-
- return this.command.getPlugin().getGangsManager().modifyValue(sender, gang.get(), amount, operation);
- } catch (Exception e) {
- sender.sendMessage("§cInternal error.");
- return false;
- }
- }
- return false;
- }
-
- @Override
- public String getUsage() {
- return ChatColor.RED + "/gang value remove ";
- }
-
- @Override
- public boolean canExecute(CommandSender sender) {
- return sender.hasPermission(GangsConstants.GANGS_ADMIN_PERM);
- }
-
- @Override
- public List getTabComplete() {
- return this.command.getPlugin().getGangsManager().getAllGangs().stream().map(Gang::getName).collect(Collectors.toList());
- }
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/commands/impl/value/GangValueSubCommand.java b/src/main/java/me/nvus/xprison/gangs/commands/impl/value/GangValueSubCommand.java
deleted file mode 100644
index 831c646..0000000
--- a/src/main/java/me/nvus/xprison/gangs/commands/impl/value/GangValueSubCommand.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package me.nvus.xprison.gangs.commands.impl.value;
-
-import me.nvus.xprison.gangs.commands.GangCommand;
-import me.nvus.xprison.gangs.commands.GangSubCommand;
-import me.nvus.xprison.gangs.utils.GangsConstants;
-import org.bukkit.ChatColor;
-import org.bukkit.command.CommandSender;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public final class GangValueSubCommand extends GangSubCommand {
-
- public GangValueSubCommand(GangCommand command) {
- super(command, "value");
- registerSubCommand(new GangValueAddSubCommand(command));
- registerSubCommand(new GangValueRemoveSubCommand(command));
- }
-
- @Override
- public String getUsage() {
- return ChatColor.RED + "/gang value ";
- }
-
- @Override
- public boolean execute(CommandSender sender, List args) {
- if (args.size() > 0) {
- GangSubCommand subCommand = getSubCommand(args.get(0));
- if (subCommand != null) {
- return subCommand.execute(sender, args.subList(1, args.size()));
- }
- }
- return false;
- }
-
- @Override
- public boolean canExecute(CommandSender sender) {
- return sender.hasPermission(GangsConstants.GANGS_ADMIN_PERM);
- }
-
- @Override
- public List getTabComplete() {
- return new ArrayList<>(this.subCommands.keySet());
- }
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/config/GangsConfig.java b/src/main/java/me/nvus/xprison/gangs/config/GangsConfig.java
deleted file mode 100644
index b5cbeca..0000000
--- a/src/main/java/me/nvus/xprison/gangs/config/GangsConfig.java
+++ /dev/null
@@ -1,115 +0,0 @@
-package me.nvus.xprison.gangs.config;
-
-import me.nvus.xprison.config.FileManager;
-import me.nvus.xprison.gangs.XPrisonGangs;
-import me.nvus.xprison.utils.text.TextUtils;
-import lombok.Getter;
-import org.bukkit.configuration.file.YamlConfiguration;
-import org.bukkit.event.EventPriority;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-public class GangsConfig {
-
- private final XPrisonGangs plugin;
- private final FileManager.Config config;
-
- private Map messages;
- private Map placeholders;
- @Getter
- private String gangDisbandGUITitle;
- @Getter
- private List gangInfoFormat;
- @Getter
- private List gangTopFormat;
- @Getter
- private List gangAdminHelpMenu;
- @Getter
- private List gangHelpMenu;
- @Getter
- private List restrictedNames;
- @Getter
- private EventPriority gangChatPriority;
- @Getter
- private int maxGangMembers;
- @Getter
- private int gangUpdateDelay;
- @Getter
- private int maxGangNameLength;
- @Getter
- private boolean enableColorCodes;
- @Getter
- private boolean gangFriendlyFire;
- @Getter
- private String[] gangsCommandAliases;
-
-
- public GangsConfig(XPrisonGangs plugin) {
- this.plugin = plugin;
- this.config = this.plugin.getCore().getFileManager().getConfig("gangs.yml").copyDefaults(true).save();
- }
-
- private void loadMessages() {
- messages = new HashMap<>();
-
- YamlConfiguration configuration = getYamlConfig();
-
- for (String key : configuration.getConfigurationSection("messages").getKeys(false)) {
- messages.put(key.toLowerCase(), TextUtils.applyColor(configuration.getString("messages." + key)));
- }
- }
-
- public String getMessage(String key) {
- return messages.getOrDefault(key.toLowerCase(), "No message with key '" + key + "' found");
- }
-
- private void loadVariables() {
-
- this.loadMessages();
- this.loadPlaceholders();
-
- this.gangInfoFormat = this.getYamlConfig().getStringList("gang-info-format");
- this.gangHelpMenu = this.getYamlConfig().getStringList("gang-help-menu");
- this.gangDisbandGUITitle = this.getYamlConfig().getString("gang-disband-gui-title");
- this.gangAdminHelpMenu = this.getYamlConfig().getStringList("gang-admin-help-menu");
- this.gangTopFormat = this.getYamlConfig().getStringList("gang-top-format");
- this.gangUpdateDelay = this.getYamlConfig().getInt("gang-top-update", 1);
- this.maxGangMembers = this.getYamlConfig().getInt("max-gang-members", 10);
- this.maxGangNameLength = this.getYamlConfig().getInt("max-gang-name-length", 10);
- this.enableColorCodes = this.getYamlConfig().getBoolean("color-codes-in-gang-name");
- this.gangFriendlyFire = this.getYamlConfig().getBoolean("gang-friendly-fire");
- this.gangChatPriority = EventPriority.valueOf(this.getYamlConfig().getString("gang-chat-priority"));
- this.gangsCommandAliases = this.getYamlConfig().getStringList("gangs-command-aliases").toArray(new String[0]);
- this.restrictedNames = this.getYamlConfig().getStringList("restricted-names");
- }
-
- private FileManager.Config getConfig() {
- return this.config;
- }
-
- public YamlConfiguration getYamlConfig() {
- return this.config.get();
- }
-
- public void load() {
- this.getConfig().reload();
- this.loadVariables();
- }
-
- private void loadPlaceholders() {
- this.placeholders = new HashMap<>();
- for (String key : this.config.get().getConfigurationSection("placeholders").getKeys(false)) {
- this.placeholders.put(key.toLowerCase(), TextUtils.applyColor(this.config.get().getString("placeholders." + key)));
- }
- }
-
- public String getPlaceholder(String name) {
- return this.placeholders.get(name.toLowerCase());
- }
-
- public void reload() {
- this.load();
- }
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/enums/GangCreateResult.java b/src/main/java/me/nvus/xprison/gangs/enums/GangCreateResult.java
deleted file mode 100644
index 324dc1e..0000000
--- a/src/main/java/me/nvus/xprison/gangs/enums/GangCreateResult.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package me.nvus.xprison.gangs.enums;
-
-public enum GangCreateResult {
- SUCCESS,
- NAME_RESTRICTED,
- NAME_VALID,
- NAME_TOO_LONG,
- NAME_CONTAINS_COLORS,
- NAME_TAKEN,
- NAME_EMPTY,
- PLAYER_HAS_GANG,
- EVENT_CANCELLED,
-
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/enums/GangLeaveReason.java b/src/main/java/me/nvus/xprison/gangs/enums/GangLeaveReason.java
deleted file mode 100644
index 0c13a20..0000000
--- a/src/main/java/me/nvus/xprison/gangs/enums/GangLeaveReason.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package me.nvus.xprison.gangs.enums;
-
-public enum GangLeaveReason {
- ADMIN,
- KICK,
- LEAVE
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/enums/GangNameCheckResult.java b/src/main/java/me/nvus/xprison/gangs/enums/GangNameCheckResult.java
deleted file mode 100644
index abb05de..0000000
--- a/src/main/java/me/nvus/xprison/gangs/enums/GangNameCheckResult.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package me.nvus.xprison.gangs.enums;
-
-public enum GangNameCheckResult {
- SUCCESS,
- NAME_RESTRICTED,
- NAME_TOO_LONG,
- NAME_CONTAINS_COLORS,
- NAME_TAKEN,
- NAME_EMPTY
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/enums/GangRenameResult.java b/src/main/java/me/nvus/xprison/gangs/enums/GangRenameResult.java
deleted file mode 100644
index ad0e508..0000000
--- a/src/main/java/me/nvus/xprison/gangs/enums/GangRenameResult.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package me.nvus.xprison.gangs.enums;
-
-public enum GangRenameResult {
- SUCCESS,
- NAME_TOO_LONG,
- NAME_CONTAINS_COLORS,
- NAME_TAKEN,
- NAME_EMPTY
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/gui/admin/DisbandGangAdminGUI.java b/src/main/java/me/nvus/xprison/gangs/gui/admin/DisbandGangAdminGUI.java
deleted file mode 100644
index 599b626..0000000
--- a/src/main/java/me/nvus/xprison/gangs/gui/admin/DisbandGangAdminGUI.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package me.nvus.xprison.gangs.gui.admin;
-
-import me.nvus.xprison.gangs.XPrisonGangs;
-import me.nvus.xprison.gangs.model.Gang;
-import me.nvus.xprison.utils.gui.ConfirmationGui;
-import org.bukkit.entity.Player;
-
-public final class DisbandGangAdminGUI extends ConfirmationGui {
-
- private final XPrisonGangs plugin;
- private final Gang gang;
-
- public DisbandGangAdminGUI(XPrisonGangs plugin, Player player, Gang gang) {
- super(player, "Disband " + gang.getName() + " gang ?");
- this.plugin = plugin;
- this.gang = gang;
- }
-
- @Override
- public void confirm(boolean confirm) {
- if (confirm) {
- this.plugin.getGangsManager().disbandGang(this.getPlayer(), this.gang, true);
- }
- this.close();
- }
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/gui/panel/DisbandGangGUI.java b/src/main/java/me/nvus/xprison/gangs/gui/panel/DisbandGangGUI.java
deleted file mode 100644
index e370dfd..0000000
--- a/src/main/java/me/nvus/xprison/gangs/gui/panel/DisbandGangGUI.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package me.nvus.xprison.gangs.gui.panel;
-
-import me.nvus.xprison.gangs.XPrisonGangs;
-import me.nvus.xprison.gangs.model.Gang;
-import me.nvus.xprison.utils.gui.ConfirmationGui;
-import org.bukkit.entity.Player;
-
-public final class DisbandGangGUI extends ConfirmationGui {
-
- private final XPrisonGangs plugin;
- private final Gang gang;
-
- public DisbandGangGUI(XPrisonGangs plugin, Player player, Gang gang) {
- super(player, plugin.getConfig().getGangDisbandGUITitle());
- this.plugin = plugin;
- this.gang = gang;
- }
-
- @Override
- public void confirm(boolean confirm) {
- if (confirm) {
- this.plugin.getGangsManager().disbandGang(getPlayer(), this.gang, false);
- }
- this.close();
- }
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/gui/panel/GangPanelGUI.java b/src/main/java/me/nvus/xprison/gangs/gui/panel/GangPanelGUI.java
deleted file mode 100644
index 9e01a2f..0000000
--- a/src/main/java/me/nvus/xprison/gangs/gui/panel/GangPanelGUI.java
+++ /dev/null
@@ -1,131 +0,0 @@
-package me.nvus.xprison.gangs.gui.panel;
-
-import me.nvus.xprison.gangs.XPrisonGangs;
-import me.nvus.xprison.gangs.model.Gang;
-import me.nvus.xprison.utils.compat.CompMaterial;
-import me.nvus.xprison.utils.item.ItemStackBuilder;
-import me.lucko.helper.Services;
-import me.lucko.helper.menu.Gui;
-import me.lucko.helper.menu.Item;
-import me.lucko.helper.menu.scheme.MenuPopulator;
-import me.lucko.helper.menu.scheme.MenuScheme;
-import me.lucko.helper.signprompt.SignPromptFactory;
-import org.bukkit.entity.Player;
-
-import java.util.Arrays;
-
-public final class GangPanelGUI extends Gui {
-
- private static final MenuScheme LAYOUT = new MenuScheme()
- .mask("111111111")
- .mask("100000001")
- .mask("111111111");
-
- private static final MenuScheme BUTTONS = new MenuScheme()
- .mask("000000000")
- .mask("011111110")
- .mask("000000000");
-
-
- private final XPrisonGangs plugin;
- private final Gang gang;
-
- public GangPanelGUI(XPrisonGangs plugin, Gang gang, Player player) {
- super(player, 3, "Gang Panel");
- this.plugin = plugin;
- this.gang = gang;
- }
-
- @Override
- public void redraw() {
- if (isFirstDraw()) {
- populateLayout();
- populateButtons();
- }
- }
-
- private void populateLayout() {
- MenuPopulator populator = LAYOUT.newPopulator(this);
- while (populator.hasSpace()) {
- populator.accept(ItemStackBuilder.of(CompMaterial.BLACK_STAINED_GLASS_PANE.toItem()).name("&a").buildItem().build());
- }
- }
-
- private void populateButtons() {
- MenuPopulator populator = BUTTONS.newPopulator(this);
-
- populator.acceptIfSpace(createGangInfoItem());
-
- if (gang.canRenameGang(getPlayer())) {
- populator.acceptIfSpace(createGangRenameItem());
- }
- if (gang.canManageMembers(getPlayer())) {
- populator.acceptIfSpace(createManageMembersItem());
- }
- if (gang.canManageInvites(getPlayer())) {
- populator.acceptIfSpace(createManageInvitesItem());
- }
- if (gang.canDisband(getPlayer())) {
- populator.acceptIfSpace(createDisbandGangItem());
- }
-
- }
-
- private Item createManageInvitesItem() {
- return ItemStackBuilder.of(CompMaterial.PLAYER_HEAD.toItem()).name("&eManage Invites").lore("&7Click to manage pending invites.").build(this::openManageInvitesGui);
- }
-
- private Item createDisbandGangItem() {
- return ItemStackBuilder.of(CompMaterial.BARRIER.toItem()).name("&cDisband Gang").lore("&7Click to disband your gang.").build(this::openDisbandGangGui);
- }
-
- private void openDisbandGangGui() {
- close();
- new DisbandGangGUI(this.plugin, this.getPlayer(), this.gang).open();
- }
-
- private Item createManageMembersItem() {
- return ItemStackBuilder.of(CompMaterial.PLAYER_HEAD.toItem()).name("&eManage Members").lore("&7Click to manage your gang members.").build(this::openManageMembersGui);
- }
-
- private void openManageMembersGui() {
- close();
- new ManageGangMembersGui(this.plugin, this.gang, this.getPlayer()).open();
- }
-
- private void openManageInvitesGui() {
- close();
- new ManageGangInvitesGui(this.plugin, this.gang, this.getPlayer()).open();
- }
-
- private Item createGangRenameItem() {
- return ItemStackBuilder.of(CompMaterial.OAK_SIGN.toItem()).name("&eRename Gang").lore("&7Click to rename your gang.").build(() -> {
- SignPromptFactory factory = Services.load(SignPromptFactory.class);
- factory.openPrompt(this.getPlayer(), Arrays.asList("", "§e^ ^ ^", "§7Enter gang name", ""), responseHandler -> {
- if (responseHandler.get(0).isEmpty()) {
- return SignPromptFactory.Response.ACCEPTED;
- }
- this.plugin.getGangsManager().renameGang(this.gang, responseHandler.get(0), this.getPlayer());
- return SignPromptFactory.Response.ACCEPTED;
- });
- });
- }
-
- private Item createGangInfoItem() {
- int gangTopPosition = getGangTopPosition();
-
- return ItemStackBuilder.of(CompMaterial.BOOK.toItem()).name("&eGang Info").lore(
- " ",
- String.format("&8» &e%s &7Gang", this.gang.getName()),
- String.format("&8» &7Owner: &e%s", this.gang.getOwnerOffline().getName()),
- String.format("&8» &7Members: &e%,d", this.gang.getMembersOffline().size()),
- String.format("&8» &7Value: &e%,d", this.gang.getValue()),
- String.format("&8» &7Top Placement: &e%s", gangTopPosition == -1 ? "Please Wait" : String.format("#%,d", gangTopPosition)),
- " "
- ).buildItem().build();
- }
-
- private int getGangTopPosition() {
- return this.plugin.getGangsManager().getGangTopPosition(this.gang);
- }
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/gui/panel/ManageGangInvitesGui.java b/src/main/java/me/nvus/xprison/gangs/gui/panel/ManageGangInvitesGui.java
deleted file mode 100644
index f7d371c..0000000
--- a/src/main/java/me/nvus/xprison/gangs/gui/panel/ManageGangInvitesGui.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package me.nvus.xprison.gangs.gui.panel;
-
-import me.nvus.xprison.gangs.XPrisonGangs;
-import me.nvus.xprison.gangs.model.Gang;
-import me.nvus.xprison.gangs.model.GangInvitation;
-import me.nvus.xprison.utils.compat.CompMaterial;
-import me.nvus.xprison.utils.item.ItemStackBuilder;
-import me.lucko.helper.menu.Gui;
-import me.lucko.helper.menu.Item;
-import me.lucko.helper.menu.scheme.MenuPopulator;
-import me.lucko.helper.menu.scheme.MenuScheme;
-import org.bukkit.entity.Player;
-import org.bukkit.event.inventory.ClickType;
-
-import java.text.SimpleDateFormat;
-
-public final class ManageGangInvitesGui extends Gui {
-
- private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
-
- private static final MenuScheme LAYOUT = new MenuScheme()
- .mask("111111111")
- .mask("100000001")
- .mask("100000001")
- .mask("100000001")
- .mask("100000001")
- .mask("111111111");
-
- private final XPrisonGangs plugin;
- private final Gang gang;
-
- public ManageGangInvitesGui(XPrisonGangs plugin, Gang gang, Player player) {
- super(player, 6, "Pending Invites");
- this.plugin = plugin;
- this.gang = gang;
- }
-
- @Override
- public void redraw() {
- clearItems();
- populateLayout();
- populateButtons();
- }
-
- private void populateLayout() {
- MenuPopulator populator = LAYOUT.newPopulator(this);
- while (populator.hasSpace()) {
- populator.accept(ItemStackBuilder.of(CompMaterial.BLACK_STAINED_GLASS_PANE.toItem()).name("&a").buildItem().build());
- }
- }
-
- private void populateButtons() {
- this.gang.getPendingInvites().forEach(gangInvitation -> this.addItem(createInviteItem(gangInvitation)));
- }
-
- private Item createInviteItem(GangInvitation invitation) {
-
- String statusColor = invitation.getInvitedPlayer().isOnline() ? "&a" : "&c";
- String status = invitation.getInvitedPlayer().isOnline() ? "Online" : "Offline";
-
- return ItemStackBuilder.of(CompMaterial.PLAYER_HEAD.toItem())
- .name(statusColor + invitation.getInvitedPlayer().getName())
- .lore(
- " ",
- "&8» &7Online Status: " + statusColor + status,
- "&8» &7Invited By: &e" + invitation.getInvitedBy().getName(),
- "&8» &7Invited At: &e" + DATE_FORMAT.format(invitation.getInviteDate()),
- " ",
- "&7Right-click to &cCancel"
- )
- .build(ClickType.RIGHT, () -> {
- this.gang.removeInvitation(invitation);
- redraw();
- });
- }
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/gui/panel/ManageGangMembersGui.java b/src/main/java/me/nvus/xprison/gangs/gui/panel/ManageGangMembersGui.java
deleted file mode 100644
index 5941180..0000000
--- a/src/main/java/me/nvus/xprison/gangs/gui/panel/ManageGangMembersGui.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package me.nvus.xprison.gangs.gui.panel;
-
-import me.nvus.xprison.gangs.XPrisonGangs;
-import me.nvus.xprison.gangs.model.Gang;
-import me.nvus.xprison.utils.compat.CompMaterial;
-import me.nvus.xprison.utils.item.ItemStackBuilder;
-import me.lucko.helper.menu.Gui;
-import me.lucko.helper.menu.Item;
-import me.lucko.helper.menu.scheme.MenuPopulator;
-import me.lucko.helper.menu.scheme.MenuScheme;
-import org.bukkit.OfflinePlayer;
-import org.bukkit.entity.Player;
-import org.bukkit.event.inventory.ClickType;
-
-public final class ManageGangMembersGui extends Gui {
-
-
- private static final MenuScheme LAYOUT = new MenuScheme()
- .mask("111111111")
- .mask("100000001")
- .mask("100000001")
- .mask("100000001")
- .mask("100000001")
- .mask("111111111");
-
- private final XPrisonGangs plugin;
- private final Gang gang;
-
- public ManageGangMembersGui(XPrisonGangs plugin, Gang gang, Player player) {
- super(player, 6, "Gang Members");
- this.plugin = plugin;
- this.gang = gang;
- }
-
- @Override
- public void redraw() {
- clearItems();
- populateLayout();
- populateButtons();
- }
-
- private void populateLayout() {
- MenuPopulator populator = LAYOUT.newPopulator(this);
- while (populator.hasSpace()) {
- populator.accept(ItemStackBuilder.of(CompMaterial.BLACK_STAINED_GLASS_PANE.toItem()).name("&a").buildItem().build());
- }
- }
-
- private void populateButtons() {
- this.gang.getMembersOffline().forEach(player -> this.addItem(createGangMemberItem(player)));
- }
-
- private Item createGangMemberItem(OfflinePlayer player) {
-
- String statusColor = player.isOnline() ? "&a" : "&c";
- String status = player.isOnline() ? "Online" : "Offline";
-
- return ItemStackBuilder.of(CompMaterial.PLAYER_HEAD.toItem())
- .name(statusColor + player.getName())
- .lore(
- " ",
- "&8» &7Online Status: " + statusColor + status,
- "&8» &7Role: &e" + (gang.isOwner(player) ? "Owner" : "Member"),
- " ",
- "&7Right-Click to &cKICK"
- )
- .build(ClickType.RIGHT, () -> {
- this.plugin.getGangsManager().kickPlayerFromGang(this.gang, player);
- redraw();
- });
- }
-
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/listener/GangsListener.java b/src/main/java/me/nvus/xprison/gangs/listener/GangsListener.java
deleted file mode 100644
index 7e1aed1..0000000
--- a/src/main/java/me/nvus/xprison/gangs/listener/GangsListener.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package me.nvus.xprison.gangs.listener;
-
-import me.nvus.xprison.gangs.XPrisonGangs;
-import me.nvus.xprison.gangs.model.Gang;
-import me.nvus.xprison.utils.player.PlayerUtils;
-import me.lucko.helper.Events;
-import org.bukkit.entity.Player;
-import org.bukkit.entity.Projectile;
-import org.bukkit.event.EventPriority;
-import org.bukkit.event.entity.EntityDamageByEntityEvent;
-import org.bukkit.event.player.AsyncPlayerChatEvent;
-
-import java.util.Optional;
-
-public class GangsListener {
-
- private final XPrisonGangs plugin;
-
- public GangsListener(XPrisonGangs plugin) {
- this.plugin = plugin;
- }
-
- public void register() {
- this.subscribeToEntityDamageByEntityEvent();
- this.subscribeToAsyncPlayerChatEvent();
- }
-
- private void subscribeToEntityDamageByEntityEvent() {
- Events.subscribe(EntityDamageByEntityEvent.class, EventPriority.HIGHEST)
- .filter(e -> e.getDamager() instanceof Player && (e.getEntity() instanceof Player || e.getEntity() instanceof Projectile))
- .handler(e -> {
-
- if (this.plugin.getConfig().isGangFriendlyFire()) {
- return;
- }
-
- Player player = (Player) e.getEntity();
- Player damager = null;
- if (e.getDamager() instanceof Player) {
- damager = (Player) e.getDamager();
- } else if (e.getDamager() instanceof Projectile) {
- Projectile projectile = (Projectile) e.getDamager();
- if (projectile.getShooter() instanceof Player) {
- damager = (Player) projectile.getShooter();
- }
- }
-
- if (damager == null) {
- return;
- }
-
- if (this.plugin.getGangsManager().arePlayersInSameGang(player, damager)) {
- e.setCancelled(true);
- }
-
- }).bindWith(this.plugin.getCore());
- }
-
- private void subscribeToAsyncPlayerChatEvent() {
- Events.subscribe(AsyncPlayerChatEvent.class, this.plugin.getConfig().getGangChatPriority())
- .filter(e -> this.plugin.getGangsManager().hasGangChatEnabled(e.getPlayer()))
- .handler(e -> {
-
- Optional gangOptional = this.plugin.getGangsManager().getPlayerGang(e.getPlayer());
-
- if (!gangOptional.isPresent()) {
- this.plugin.getGangsManager().disableGangChat(e.getPlayer());
- return;
- }
-
- e.setCancelled(true);
- e.getRecipients().clear();
-
- Gang gang = gangOptional.get();
-
- for (Player p : gang.getOnlinePlayers()) {
- PlayerUtils.sendMessage(p, this.plugin.getConfig().getMessage("gang-chat-format").replace("%player%", e.getPlayer().getName()).replace("%message%", e.getMessage()).replace("%gang%", gang.getName()));
- }
- }).bindWith(this.plugin.getCore());
- }
-
-}
diff --git a/src/main/java/me/nvus/xprison/gangs/managers/GangsManager.java b/src/main/java/me/nvus/xprison/gangs/managers/GangsManager.java
deleted file mode 100644
index 048a72d..0000000
--- a/src/main/java/me/nvus/xprison/gangs/managers/GangsManager.java
+++ /dev/null
@@ -1,534 +0,0 @@
-package me.nvus.xprison.gangs.managers;
-
-import me.nvus.xprison.gangs.XPrisonGangs;
-import me.nvus.xprison.gangs.api.events.GangCreateEvent;
-import me.nvus.xprison.gangs.api.events.GangDisbandEvent;
-import me.nvus.xprison.gangs.enums.GangCreateResult;
-import me.nvus.xprison.gangs.enums.GangLeaveReason;
-import me.nvus.xprison.gangs.enums.GangNameCheckResult;
-import me.nvus.xprison.gangs.enums.GangRenameResult;
-import me.nvus.xprison.gangs.gui.admin.DisbandGangAdminGUI;
-import me.nvus.xprison.gangs.model.Gang;
-import me.nvus.xprison.gangs.model.GangInvitation;
-import me.nvus.xprison.gangs.model.GangTopProvider;
-import me.nvus.xprison.utils.player.PlayerUtils;
-import me.nvus.xprison.utils.text.TextUtils;
-import me.lucko.helper.Events;
-import me.lucko.helper.Schedulers;
-import me.lucko.helper.utils.Players;
-import org.apache.commons.lang.StringUtils;
-import org.bukkit.ChatColor;
-import org.bukkit.OfflinePlayer;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-
-import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.TimeUnit;
-
-public class GangsManager {
-
- private final XPrisonGangs plugin;
- private final Map gangs;
- private final List gangChatEnabledPlayers;
- private List topGangs;
-
- public GangsManager(XPrisonGangs plugin) {
- this.plugin = plugin;
- this.gangChatEnabledPlayers = new ArrayList<>();
- this.gangs = new ConcurrentHashMap<>();
- this.topGangs = new ArrayList<>();
- }
-
- public void enable() {
- this.loadGangs();
- }
-
- public boolean arePlayersInSameGang(Player player1, Player player2) {
- Optional player1Gang = this.getPlayerGang(player1);
- Optional player2Gang = this.getPlayerGang(player2);
-
- if (!player1Gang.isPresent() || !player2Gang.isPresent()) {
- return false;
- }
-
- return player1Gang.get().equals(player2Gang.get());
- }
-
- private void loadGangs() {
- this.gangs.clear();
- Schedulers.async().run(() -> {
- for (Gang g : this.plugin.getGangsService().getAllGangs()) {
- this.gangs.put(g.getUuid(), g);
- }
- });
- }
-
- private void saveDataOnDisable() {
- for (Gang g : this.gangs.values()) {
- this.plugin.getGangsService().updateGang(g);
- }
- this.plugin.getCore().getLogger().info("Saved all gangs.");
- }
-
- public Optional getPlayerGang(OfflinePlayer p) {
- return this.gangs.values().stream().filter(gang -> gang.containsPlayer(p)).findFirst();
- }
-
- public Optional getGangWithName(String name) {
- return this.gangs.values().stream().filter(gang -> ChatColor.stripColor(TextUtils.applyColor(gang.getName())).equalsIgnoreCase(name)).findFirst();
- }
-
- public GangRenameResult renameGang(Gang gang, String newName, CommandSender whoRenamed) {
-
- GangNameCheckResult nameCheckResult = this.performNameCheck(newName, whoRenamed);
- if (nameCheckResult != GangNameCheckResult.SUCCESS) {
- return GangRenameResult.valueOf(nameCheckResult.name());
- }
-
- gang.setName(newName);
-
- PlayerUtils.sendMessage(whoRenamed, this.plugin.getConfig().getMessage("gang-rename").replace("%gang%", TextUtils.applyColor(gang.getName())));
- return GangRenameResult.SUCCESS;
- }
-
- public GangCreateResult createGang(String name, Player creator) {
-
- if (this.getPlayerGang(creator).isPresent()) {
- PlayerUtils.sendMessage(creator, this.plugin.getConfig().getMessage("gang-cant-create"));
- return GangCreateResult.PLAYER_HAS_GANG;
- }
-
- GangNameCheckResult nameCheckResult = this.performNameCheck(name, creator);
-
- if (nameCheckResult != GangNameCheckResult.SUCCESS) {
- return GangCreateResult.valueOf(nameCheckResult.name());
- }
-
- Gang g = new Gang(name, creator.getUniqueId());
-
- GangCreateEvent gangCreateEvent = new GangCreateEvent(creator, g);
-
- this.plugin.getCore().debug("Calling GangCreateEvent for gang " + g.getName() + ".", this.plugin);
-
- Events.call(gangCreateEvent);
-
- if (gangCreateEvent.isCancelled()) {
- this.plugin.getCore().debug("GangCreateEvent for gang " + g.getName() + " was cancelled.", this.plugin);
- return GangCreateResult.EVENT_CANCELLED;
- }
-
- this.gangs.put(g.getUuid(), g);
-
- PlayerUtils.sendMessage(creator, this.plugin.getConfig().getMessage("gang-created").replace("%name%", TextUtils.applyColor(name)));
-
- this.plugin.getGangsService().createGang(g);
- Players.all().forEach(player1 -> PlayerUtils.sendMessage(player1, this.plugin.getConfig().getMessage("gang-create-broadcast").replace("%gang%", TextUtils.applyColor(g.getName())).replace("%player%", creator.getName())));
- return GangCreateResult.SUCCESS;
- }
-
- private GangNameCheckResult performNameCheck(String name, CommandSender sender) {
- GangNameCheckResult nameCheck = checkGangName(name);
-
- if (nameCheck == GangNameCheckResult.NAME_TOO_LONG) {
- PlayerUtils.sendMessage(sender, this.plugin.getConfig().getMessage("gang-name-long"));
- } else if (nameCheck == GangNameCheckResult.NAME_CONTAINS_COLORS) {
- PlayerUtils.sendMessage(sender, this.plugin.getConfig().getMessage("gang-name-colors"));
- } else if (nameCheck == GangNameCheckResult.NAME_TAKEN) {
- PlayerUtils.sendMessage(sender, this.plugin.getConfig().getMessage("gang-already-exists").replace("%name%", TextUtils.applyColor(name)));
- } else if (nameCheck == GangNameCheckResult.NAME_EMPTY) {
- PlayerUtils.sendMessage(sender, this.plugin.getConfig().getMessage("gang-invalid-name"));
- } else if (nameCheck == GangNameCheckResult.NAME_RESTRICTED) {
- PlayerUtils.sendMessage(sender, this.plugin.getConfig().getMessage("gang-name-restricted"));
- }
-
- return nameCheck;
- }
-
- private GangNameCheckResult checkGangName(String name) {
-
- if (name.isEmpty()) {
- return GangNameCheckResult.NAME_EMPTY;
- }
-
- for (String s : this.plugin.getConfig().getRestrictedNames()) {
- if (name.contains(s)) {
- return GangNameCheckResult.NAME_RESTRICTED;
- }
- }
-
- if (this.plugin.getConfig().isEnableColorCodes()) {
- if (ChatColor.stripColor(TextUtils.applyColor(name)).length() > this.plugin.getConfig().getMaxGangNameLength()) {
- return GangNameCheckResult.NAME_TOO_LONG;
- }
- } else {
-
- if (!ChatColor.translateAlternateColorCodes('&', name).equals(name)) {
- return GangNameCheckResult.NAME_CONTAINS_COLORS;
- }
-
- if (name.length() > this.plugin.getConfig().getMaxGangNameLength()) {
- return GangNameCheckResult.NAME_TOO_LONG;
- }
-
- }
- if (!this.getGangWithName(name).isPresent()) {
- return GangNameCheckResult.SUCCESS;
- } else {
- return GangNameCheckResult.NAME_TAKEN;
- }
- }
-
- public boolean invitePlayer(Player invitedBy, Player invited) {
-
- if (invited == null || !invited.isOnline()) {
- PlayerUtils.sendMessage(invitedBy, this.plugin.getConfig().getMessage("player-not-online"));
- return false;
- }
-
- Optional