diff --git a/pom.xml b/pom.xml
index fb6f0ef..dbbd685 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.me.tft_02.soulbound
Soulbound
- 1.1.10-SNAPSHOT
+ 1.1.12
Soulbound
https://github.com/TfT-02/Soulbound
@@ -12,13 +12,10 @@
${project.name}
- src
- src
-
- **/*.java
-
+ src/main/resources
+ true
@@ -30,13 +27,50 @@
1.7
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 2.3
+
+ false
+ true
+
+
+ cn.citycraft:PluginHelper
+ org.mcstats.*:*
+
+
+
+
+ org.mcstats
+ ${project.groupId}.${project.artifactId}.mcstats
+
+
+ cn.citycraft.PluginHelper
+ ${project.groupId}.${project.artifactId}
+
+
+
+
+
+ package
+
+ shade
+
+
+
+
-
- mengcraft-repo
- http://ci.mengcraft.com:8080/plugin/repository/everything/
-
+
+ mengcraft-repo
+ http://ci.mengcraft.com:8080/plugin/repository/everything/
+
+
+ citycraft-repo
+ http://ci.citycraft.cn:8800/jenkins/plugin/repository/everything/
+
spigot-repo
https://hub.spigotmc.org/nexus/content/groups/public/
@@ -49,8 +83,21 @@
jar
1.8.3-R0.1-SNAPSHOT
+
+ cn.citycraft
+ PluginHelper
+ jar
+ 1.0
+
+
+ org.mcstats.bukkit
+ metrics
+ R8-SNAPSHOT
+ compile
+
UTF-8
+ Soulbound items for your RPG servers!
diff --git a/src/com/me/tft_02/soulbound/configs/ConfigLoader.java b/src/com/me/tft_02/soulbound/configs/ConfigLoader.java
deleted file mode 100644
index b3464dd..0000000
--- a/src/com/me/tft_02/soulbound/configs/ConfigLoader.java
+++ /dev/null
@@ -1,102 +0,0 @@
-package com.me.tft_02.soulbound.configs;
-
-import java.io.File;
-import java.io.IOException;
-
-import org.bukkit.plugin.Plugin;
-
-public class ConfigLoader extends FileConfig {
- protected static FileConfig config;
- protected static boolean tip = true;
- protected static Plugin plugin;
-
- public ConfigLoader(Plugin p, File file) {
- ConfigLoader.plugin = p;
- config = loadConfig(p, file, null, true);
- }
-
- public ConfigLoader(Plugin p, File file, boolean res) {
- ConfigLoader.plugin = p;
- config = loadConfig(p, file, null, res);
- }
-
- public ConfigLoader(Plugin p, File file, String ver) {
- ConfigLoader.plugin = p;
- config = loadConfig(p, file, ver, true);
- }
-
- public ConfigLoader(Plugin p, File file, String ver, boolean res) {
- ConfigLoader.plugin = p;
- config = loadConfig(p, file, ver, res);
- }
-
- public ConfigLoader(Plugin p, String filename) {
- ConfigLoader.plugin = p;
- config = loadConfig(p, new File(p.getDataFolder(), filename), null,
- true);
- }
-
- public ConfigLoader(Plugin p, String filename, boolean res) {
- ConfigLoader.plugin = p;
- config = loadConfig(p, new File(p.getDataFolder(), filename), null, res);
- }
-
- public ConfigLoader(Plugin p, String filename, String ver) {
- ConfigLoader.plugin = p;
- config = loadConfig(p, new File(p.getDataFolder(), filename), ver, true);
- }
-
- public ConfigLoader(Plugin p, String filename, String ver, boolean res) {
- ConfigLoader.plugin = p;
- config = loadConfig(p, new File(p.getDataFolder(), filename), ver, true);
- }
-
- public static FileConfig getInstance() {
- return config;
- }
-
- public FileConfig loadConfig(Plugin p, File file, String ver, boolean res) {
- tip = res ;
- if (!file.getParentFile().exists()) {
- file.getParentFile().mkdirs();
- p.getLogger().info("创建新的文件夹" + file.getAbsolutePath() + "...");
- }
- if (!file.exists()) {
- fileCreate(p, file, res);
- } else {
- if (ver != null) {
- FileConfig configcheck = init(file);
- String version = configcheck.getString("version");
- if (version == null || !version.equals(ver)) {
- p.saveResource(file.getName(), true);
- p.getLogger().warning(
- "配置文件: " + file.getName() + " 版本过低 正在升级...");
- }
- }
- }
- if (tip)
- p.getLogger().info(
- "载入配置文件: " + file.getName()
- + (ver != null ? " 版本: " + ver : ""));
- return init(file);
- }
-
- private void fileCreate(Plugin p, File file, boolean res) {
- if (res) {
- p.saveResource(file.getName(), false);
- } else {
- try {
- p.getLogger().info("创建新的配置文件" + file.getAbsolutePath() + "...");
- file.createNewFile();
- } catch (IOException e) {
- p.getLogger().info("配置文件" + file.getName() + "创建失败...");
- e.printStackTrace();
- }
- }
- }
-
- public static void saveError(File file) {
- plugin.getLogger().info("配置文件" + file.getName() + "保存错误...");
- }
-
-}
diff --git a/src/com/me/tft_02/soulbound/configs/FileConfig.java b/src/com/me/tft_02/soulbound/configs/FileConfig.java
deleted file mode 100644
index cc83c14..0000000
--- a/src/com/me/tft_02/soulbound/configs/FileConfig.java
+++ /dev/null
@@ -1,110 +0,0 @@
-package com.me.tft_02.soulbound.configs;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.OutputStreamWriter;
-import java.io.Reader;
-import java.io.Writer;
-import java.util.logging.Level;
-
-import org.apache.commons.lang.Validate;
-import org.bukkit.Bukkit;
-import org.bukkit.configuration.Configuration;
-import org.bukkit.configuration.InvalidConfigurationException;
-import org.bukkit.configuration.file.YamlConfiguration;
-import org.bukkit.configuration.file.YamlConstructor;
-import org.bukkit.configuration.file.YamlRepresenter;
-import org.yaml.snakeyaml.DumperOptions;
-import org.yaml.snakeyaml.Yaml;
-import org.yaml.snakeyaml.representer.Representer;
-
-import com.google.common.base.Charsets;
-import com.google.common.io.Files;
-
-/**
- * An implementation of {@link Configuration} which saves all files in Yaml.
- * Note that this implementation is not synchronized.
- */
-public class FileConfig extends YamlConfiguration {
-
- public static FileConfig init(File file) {
- return FileConfig.loadConfiguration(file);
- }
-
- public static FileConfig loadConfiguration(File file) {
- Validate.notNull(file, "File cannot be null");
- FileConfig config = new FileConfig();
- try {
- config.load(file);
- } catch (FileNotFoundException ex) {
- } catch (IOException ex) {
- Bukkit.getLogger().log(Level.SEVERE, "Cannot load " + file, ex);
- } catch (InvalidConfigurationException ex) {
- Bukkit.getLogger().log(Level.SEVERE, "Cannot load " + file, ex);
- }
- return config;
- }
-
- protected final DumperOptions yamlOptions = new DumperOptions();
-
- protected final Representer yamlRepresenter = new YamlRepresenter();
-
- protected final Yaml yaml = new Yaml(new YamlConstructor(),
- yamlRepresenter, yamlOptions);
-
- @Override
- public void load(File file) throws FileNotFoundException, IOException,
- InvalidConfigurationException {
- Validate.notNull(file, "File cannot be null");
- final FileInputStream stream = new FileInputStream(file);
- load(new InputStreamReader(stream, Charsets.UTF_8));
- }
-
- @Override
- public void load(Reader reader) throws IOException, InvalidConfigurationException {
- BufferedReader input = (reader instanceof BufferedReader) ? (BufferedReader) reader
- : new BufferedReader(reader);
- StringBuilder builder = new StringBuilder();
- try {
- String line;
- while ((line = input.readLine()) != null) {
- builder.append(line);
- builder.append('\n');
- }
- } finally {
- input.close();
- }
- loadFromString(builder.toString());
- }
- @Override
- public void save(File file) throws IOException {
- Validate.notNull(file, "File cannot be null");
- Files.createParentDirs(file);
- String data = saveToString();
- Writer writer = new OutputStreamWriter(new FileOutputStream(file),
- Charsets.UTF_8);
- try {
- writer.write(data);
- } finally {
- writer.close();
- }
- }
-
- @Override
- public String saveToString() {
- yamlOptions.setIndent(options().indent());
- yamlOptions.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
- yamlRepresenter.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
- String header = buildHeader();
- String dump = yaml.dump(getValues(false));
- if (dump.equals(BLANK_CONFIG)) {
- dump = "";
- }
- return header + dump;
- }
-}
diff --git a/src/com/me/tft_02/soulbound/configs/Message.java b/src/com/me/tft_02/soulbound/configs/Message.java
deleted file mode 100644
index 920d46a..0000000
--- a/src/com/me/tft_02/soulbound/configs/Message.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package com.me.tft_02.soulbound.configs;
-
-import java.io.File;
-import java.io.IOException;
-
-import org.bukkit.plugin.Plugin;
-
-public class Message extends ConfigLoader {
- private static String CONFIG_NAME = "message.yml";
- private static FileConfig instance;
- private static File file;
-
- public Message(Plugin p) {
- super(p, CONFIG_NAME);
- file = new File(p.getDataFolder(), CONFIG_NAME);
- instance = super.getInstance();
- }
-
- public Message(Plugin p, String ver) {
- super(p, CONFIG_NAME, ver);
- instance = super.getInstance();
- }
-
- public static void load(Plugin p) {
- new Message(p);
- }
-
- public static void load(Plugin p, String ver) {
- new Message(p, ver);
- }
-
- public static FileConfig getInstance() {
- return instance;
- }
-
- public static String getMessage(String path) {
- String message = instance.getString(path);
- if (message != null)
- message = message.replaceAll("&", "§");
- return message;
- }
-
- public static String getHead(String path, String prevName) {
- String message = instance.getString(path);
- if (message != null)
- message = message.replaceAll("&", "§").replaceAll("%player%",
- prevName);
- return message;
- }
-
- public static String[] getStringArray(String path) {
- return instance.getStringList(path).toArray(new String[0]);
- }
-
- public static void save() {
- try {
- instance.save(file);
- } catch (IOException e) {
- saveError(file);
- e.printStackTrace();
- }
- }
-}
diff --git a/src/com/me/tft_02/soulbound/util/LogFilter.java b/src/com/me/tft_02/soulbound/util/LogFilter.java
deleted file mode 100644
index 506f319..0000000
--- a/src/com/me/tft_02/soulbound/util/LogFilter.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.me.tft_02.soulbound.util;
-
-import java.util.logging.Filter;
-import java.util.logging.LogRecord;
-
-import com.me.tft_02.soulbound.Soulbound;
-
-public class LogFilter implements Filter {
- private boolean debug;
-
- public LogFilter(Soulbound plugin) {
- // Doing a config loading lite here, because we can't depend on the config loader to have loaded before any debug messages are sent
- debug = plugin.getConfig().getBoolean("General.Verbose_Logging");
- }
-
- @Override
- public boolean isLoggable(LogRecord record) {
- if (record.getMessage().contains("[Debug]") && !debug) {
- return false;
- }
-
- return true;
- }
-}
diff --git a/src/com/me/tft_02/soulbound/util/VersionChecker.java b/src/com/me/tft_02/soulbound/util/VersionChecker.java
deleted file mode 100644
index d8616de..0000000
--- a/src/com/me/tft_02/soulbound/util/VersionChecker.java
+++ /dev/null
@@ -1,111 +0,0 @@
-package com.me.tft_02.soulbound.util;
-
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.net.URL;
-
-import org.bukkit.Bukkit;
-import org.bukkit.ChatColor;
-import org.bukkit.configuration.file.FileConfiguration;
-import org.bukkit.configuration.file.YamlConfiguration;
-import org.bukkit.entity.Player;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.Listener;
-import org.bukkit.event.player.PlayerJoinEvent;
-import org.bukkit.plugin.Plugin;
-
-import com.google.common.base.Charsets;
-
-/**
- * 自动更新类
- *
- * @author 蒋天蓓
- * 2015年8月14日下午4:01:15
- */
-public class VersionChecker implements Listener {
- Plugin plugin;
- public String checkurl = "https://coding.net/u/502647092/p/%s/git/raw/%s/src/plugin.yml";
- public String branch = "master";
-
- /**
- * @param plugin
- * - 插件
- */
- public VersionChecker(Plugin plugin) {
- this.plugin = plugin;
- plugin.getServer().getPluginManager().registerEvents(this, plugin);
- this.versioncheck(null);
- }
-
- /**
- * @param plugin
- * - 插件
- * @param branch
- * - 分支名称
- */
- public VersionChecker(Plugin plugin, String branch) {
- this.plugin = plugin;
- plugin.getServer().getPluginManager().registerEvents(this, plugin);
- this.branch = branch;
- this.versioncheck(null);
- }
-
- /**
- * 获取插件更新链接
- *
- * @param pluginName
- * - 插件名称
- * @param branch
- * - 插件分支
- * @return 更新链接
- */
- public String getCheckUrl(String pluginName, String branch) {
- return String.format(checkurl, pluginName, branch);
- }
-
- @EventHandler
- public void onPlayerJoin(PlayerJoinEvent e) {
- if (e.getPlayer().isOp()) {
- this.versioncheck(e.getPlayer());
- }
- }
-
- /**
- * 开始更新
- *
- * @param player
- * - 获取更新的玩家(null则默认为控制台)
- */
- public void versioncheck(final Player player) {
- Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
- @Override
- public void run() {
- String readURL = getCheckUrl(plugin.getName(), branch);
- FileConfiguration config;
- String currentVersion = plugin.getDescription().getVersion();
- try {
- URL url = new URL(readURL);
- BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream(), Charsets.UTF_8));
- config = YamlConfiguration.loadConfiguration(br);
- String newVersion = config.getString("version");
- br.close();
- if (!newVersion.equals(currentVersion)) {
- String[] msg = new String[] {
- ChatColor.GREEN + plugin.getName() + " 插件最新版本 v" + newVersion,
- ChatColor.RED + "服务器运行版本: v" + currentVersion,
- ChatColor.GOLD + "插件更新网站: " + ChatColor.BLUE + plugin.getDescription().getWebsite()
- };
- if (player != null) {
- player.sendMessage(msg);
- } else {
- plugin.getServer().getConsoleSender().sendMessage(msg);
- }
- }
- } catch (Exception e) {
- plugin.getLogger().warning("版本更新检查失败!");
- }
- }
- });
- }
-
-}
diff --git a/src/com/me/tft_02/soulbound/Soulbound.java b/src/main/java/com/me/tft_02/soulbound/Soulbound.java
similarity index 74%
rename from src/com/me/tft_02/soulbound/Soulbound.java
rename to src/main/java/com/me/tft_02/soulbound/Soulbound.java
index 392097b..c588151 100644
--- a/src/com/me/tft_02/soulbound/Soulbound.java
+++ b/src/main/java/com/me/tft_02/soulbound/Soulbound.java
@@ -1,12 +1,8 @@
package com.me.tft_02.soulbound;
import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.FileConfiguration;
-import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
@@ -18,14 +14,15 @@ import com.me.tft_02.soulbound.commands.SoulboundCommand;
import com.me.tft_02.soulbound.commands.UnbindCommand;
import com.me.tft_02.soulbound.config.Config;
import com.me.tft_02.soulbound.config.ItemsConfig;
-import com.me.tft_02.soulbound.configs.Message;
import com.me.tft_02.soulbound.hooks.EpicBossRecodedListener;
import com.me.tft_02.soulbound.listeners.BlockListener;
import com.me.tft_02.soulbound.listeners.EntityListener;
import com.me.tft_02.soulbound.listeners.InventoryListener;
import com.me.tft_02.soulbound.listeners.PlayerListener;
import com.me.tft_02.soulbound.util.LogFilter;
-import com.me.tft_02.soulbound.util.VersionChecker;
+
+import cn.citycraft.PluginHelper.config.FileConfig;
+import cn.citycraft.PluginHelper.utils.VersionChecker;
public class Soulbound extends JavaPlugin {
/* File Paths */
@@ -38,25 +35,32 @@ public class Soulbound extends JavaPlugin {
// Checks for hooking into other plugins
public static boolean epicBossRecodedEnabled = false;
+
public static boolean loreLocksEnabled = false;
+ FileConfig msgcfg;
+ FileConfig config;
+ // Update Check
+ private boolean updateAvailable;
public static String getMainDirectory() {
return mainDirectory;
}
- // Update Check
- private boolean updateAvailable;
-
- public void debug(String message) {
+ public void debug(final String message) {
getLogger().info("[Debug] " + message);
}
- public String getlang(String type) {
+ @Override
+ public FileConfiguration getConfig() {
+ return config;
+ }
+
+ public String getlang(final String type) {
return this.getmessage("Message." + type);
}
- public String getmessage(String path) {
- String message = Message.getInstance().getString(path).replaceAll("&", "§");
+ public String getmessage(final String path) {
+ final String message = msgcfg.getMessage(path);
return message;
}
@@ -64,34 +68,6 @@ public class Soulbound extends JavaPlugin {
return updateAvailable;
}
- public FileConfiguration Loadcfg(File cfgfile) {
- if (!cfgfile.exists()) {
- saveResource(cfgfile.getName(), false);
- return YamlConfiguration.loadConfiguration(cfgfile);
- } else
- return YamlConfiguration.loadConfiguration(cfgfile);
- }
-
- public void LoadConfig(FileConfiguration cfg, File cfgfile) throws FileNotFoundException,
- IOException, InvalidConfigurationException {
- if (!cfgfile.exists()) {
- saveResource(cfgfile.getName(), false);
- cfg.load(cfgfile);
- } else {
- cfg.load(cfgfile);
- }
- }
-
- private void loadConfigFiles() {
- Config.getInstance();
- ItemsConfig.getInstance();
- }
-
- @Override
- public void onLoad() {
- Message.load(this);
- };
-
/**
* Run things on enable.
*/
@@ -118,8 +94,25 @@ public class Soulbound extends JavaPlugin {
new VersionChecker(this);
}
+ @Override
+ public void onLoad() {
+ msgcfg = new FileConfig(this, "message.yml");
+ config = new FileConfig(this);
+ }
+
+ @Override
+ public void reloadConfig() {
+ msgcfg.reload();
+ config.reload();
+ }
+
+ private void loadConfigFiles() {
+ Config.getInstance();
+ ItemsConfig.getInstance();
+ }
+
private void registerEvents() {
- PluginManager pm = getServer().getPluginManager();
+ final PluginManager pm = getServer().getPluginManager();
pm.registerEvents(new PlayerListener(), this);
pm.registerEvents(new InventoryListener(), this);
pm.registerEvents(new EntityListener(), this);
diff --git a/src/com/me/tft_02/soulbound/api/ItemAPI.java b/src/main/java/com/me/tft_02/soulbound/api/ItemAPI.java
similarity index 100%
rename from src/com/me/tft_02/soulbound/api/ItemAPI.java
rename to src/main/java/com/me/tft_02/soulbound/api/ItemAPI.java
diff --git a/src/com/me/tft_02/soulbound/commands/BindCommand.java b/src/main/java/com/me/tft_02/soulbound/commands/BindCommand.java
similarity index 100%
rename from src/com/me/tft_02/soulbound/commands/BindCommand.java
rename to src/main/java/com/me/tft_02/soulbound/commands/BindCommand.java
diff --git a/src/com/me/tft_02/soulbound/commands/BindOnEquipCommand.java b/src/main/java/com/me/tft_02/soulbound/commands/BindOnEquipCommand.java
similarity index 100%
rename from src/com/me/tft_02/soulbound/commands/BindOnEquipCommand.java
rename to src/main/java/com/me/tft_02/soulbound/commands/BindOnEquipCommand.java
diff --git a/src/com/me/tft_02/soulbound/commands/BindOnPickupCommand.java b/src/main/java/com/me/tft_02/soulbound/commands/BindOnPickupCommand.java
similarity index 100%
rename from src/com/me/tft_02/soulbound/commands/BindOnPickupCommand.java
rename to src/main/java/com/me/tft_02/soulbound/commands/BindOnPickupCommand.java
diff --git a/src/com/me/tft_02/soulbound/commands/BindOnUseCommand.java b/src/main/java/com/me/tft_02/soulbound/commands/BindOnUseCommand.java
similarity index 100%
rename from src/com/me/tft_02/soulbound/commands/BindOnUseCommand.java
rename to src/main/java/com/me/tft_02/soulbound/commands/BindOnUseCommand.java
diff --git a/src/com/me/tft_02/soulbound/commands/SoulboundCommand.java b/src/main/java/com/me/tft_02/soulbound/commands/SoulboundCommand.java
similarity index 82%
rename from src/com/me/tft_02/soulbound/commands/SoulboundCommand.java
rename to src/main/java/com/me/tft_02/soulbound/commands/SoulboundCommand.java
index 986075b..af9c40f 100644
--- a/src/com/me/tft_02/soulbound/commands/SoulboundCommand.java
+++ b/src/main/java/com/me/tft_02/soulbound/commands/SoulboundCommand.java
@@ -6,15 +6,13 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import com.me.tft_02.soulbound.Soulbound;
-import com.me.tft_02.soulbound.configs.Message;
public class SoulboundCommand implements CommandExecutor {
@Override
- public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
+ public boolean onCommand(final CommandSender sender, final Command command, final String label, final String[] args) {
switch (args.length) {
case 0:
- sender.sendMessage(Soulbound.p.getlang("VERSION")
- + Soulbound.p.getDescription().getVersion());
+ sender.sendMessage(Soulbound.p.getlang("VERSION") + Soulbound.p.getDescription().getVersion());
return printUsage(sender);
case 1:
if (args[0].equalsIgnoreCase("reload")) {
@@ -32,39 +30,14 @@ public class SoulboundCommand implements CommandExecutor {
}
}
- private boolean reloadConfiguration(CommandSender sender) {
- if (sender instanceof Player && !sender.hasPermission("soulbound.commands.reload")) {
- return false;
- }
-
- Soulbound.p.reloadConfig();
- Message.load(Soulbound.p);
- sender.sendMessage(Soulbound.p.getlang("RELOAD"));
- return false;
- }
-
- private boolean helpPages(CommandSender sender, String[] args) {
- if (!(sender instanceof Player)) {
- sender.sendMessage(Soulbound.p.getlang("CAN_NOT_USE_ON_CONSOLE"));
- return false;
- }
- if (args.length >= 2 && Integer.parseInt(args[1]) > 0) {
- getHelpPage(Integer.parseInt(args[1]), sender);
- return true;
- }
- return false;
- }
-
- private void getHelpPage(int page, CommandSender sender) {
- int maxPages = 2;
- int nextPage = page + 1;
+ private void getHelpPage(final int page, final CommandSender sender) {
+ final int maxPages = 2;
+ final int nextPage = page + 1;
if (page > maxPages) {
- sender.sendMessage(Soulbound.p.getlang("PAGE_NOT_EXIST".replace("%maxPages%", maxPages
- + "")));
+ sender.sendMessage(Soulbound.p.getlang("PAGE_NOT_EXIST".replace("%maxPages%", maxPages + "")));
return;
}
- sender.sendMessage(Soulbound.p.getlang("HELP_TITLE").replace("%page%", page + "")
- .replace("%maxPages%", maxPages + ""));
+ sender.sendMessage(Soulbound.p.getlang("HELP_TITLE").replace("%page%", page + "").replace("%maxPages%", maxPages + ""));
if (page == 1) {
sender.sendMessage(Soulbound.p.getlang("HOW_DOES_IT_WORK"));
sender.sendMessage(Soulbound.p.getlang("HOW_DOES_IT_WORK_1"));
@@ -104,8 +77,29 @@ public class SoulboundCommand implements CommandExecutor {
}
}
- private boolean printUsage(CommandSender sender) {
+ private boolean helpPages(final CommandSender sender, final String[] args) {
+ if (!(sender instanceof Player)) {
+ sender.sendMessage(Soulbound.p.getlang("CAN_NOT_USE_ON_CONSOLE"));
+ return false;
+ }
+ if (args.length >= 2 && Integer.parseInt(args[1]) > 0) {
+ getHelpPage(Integer.parseInt(args[1]), sender);
+ return true;
+ }
+ return false;
+ }
+
+ private boolean printUsage(final CommandSender sender) {
sender.sendMessage(Soulbound.p.getlang("CMD_USE"));
return false;
}
+
+ private boolean reloadConfiguration(final CommandSender sender) {
+ if (sender instanceof Player && !sender.hasPermission("soulbound.commands.reload")) {
+ return false;
+ }
+ Soulbound.p.reloadConfig();
+ sender.sendMessage(Soulbound.p.getlang("RELOAD"));
+ return false;
+ }
}
diff --git a/src/com/me/tft_02/soulbound/commands/UnbindCommand.java b/src/main/java/com/me/tft_02/soulbound/commands/UnbindCommand.java
similarity index 100%
rename from src/com/me/tft_02/soulbound/commands/UnbindCommand.java
rename to src/main/java/com/me/tft_02/soulbound/commands/UnbindCommand.java
diff --git a/src/com/me/tft_02/soulbound/config/AutoUpdateConfigLoader.java b/src/main/java/com/me/tft_02/soulbound/config/AutoUpdateConfigLoader.java
similarity index 100%
rename from src/com/me/tft_02/soulbound/config/AutoUpdateConfigLoader.java
rename to src/main/java/com/me/tft_02/soulbound/config/AutoUpdateConfigLoader.java
diff --git a/src/com/me/tft_02/soulbound/config/Config.java b/src/main/java/com/me/tft_02/soulbound/config/Config.java
similarity index 100%
rename from src/com/me/tft_02/soulbound/config/Config.java
rename to src/main/java/com/me/tft_02/soulbound/config/Config.java
diff --git a/src/com/me/tft_02/soulbound/config/ConfigLoader.java b/src/main/java/com/me/tft_02/soulbound/config/ConfigLoader.java
similarity index 100%
rename from src/com/me/tft_02/soulbound/config/ConfigLoader.java
rename to src/main/java/com/me/tft_02/soulbound/config/ConfigLoader.java
diff --git a/src/com/me/tft_02/soulbound/config/ItemsConfig.java b/src/main/java/com/me/tft_02/soulbound/config/ItemsConfig.java
similarity index 100%
rename from src/com/me/tft_02/soulbound/config/ItemsConfig.java
rename to src/main/java/com/me/tft_02/soulbound/config/ItemsConfig.java
diff --git a/src/com/me/tft_02/soulbound/datatypes/ActionType.java b/src/main/java/com/me/tft_02/soulbound/datatypes/ActionType.java
similarity index 100%
rename from src/com/me/tft_02/soulbound/datatypes/ActionType.java
rename to src/main/java/com/me/tft_02/soulbound/datatypes/ActionType.java
diff --git a/src/com/me/tft_02/soulbound/datatypes/SoulbindItem.java b/src/main/java/com/me/tft_02/soulbound/datatypes/SoulbindItem.java
similarity index 100%
rename from src/com/me/tft_02/soulbound/datatypes/SoulbindItem.java
rename to src/main/java/com/me/tft_02/soulbound/datatypes/SoulbindItem.java
diff --git a/src/com/me/tft_02/soulbound/events/SoulbindItemEvent.java b/src/main/java/com/me/tft_02/soulbound/events/SoulbindItemEvent.java
similarity index 100%
rename from src/com/me/tft_02/soulbound/events/SoulbindItemEvent.java
rename to src/main/java/com/me/tft_02/soulbound/events/SoulbindItemEvent.java
diff --git a/src/com/me/tft_02/soulbound/hooks/EpicBossRecodedListener.java b/src/main/java/com/me/tft_02/soulbound/hooks/EpicBossRecodedListener.java
similarity index 100%
rename from src/com/me/tft_02/soulbound/hooks/EpicBossRecodedListener.java
rename to src/main/java/com/me/tft_02/soulbound/hooks/EpicBossRecodedListener.java
diff --git a/src/com/me/tft_02/soulbound/listeners/BlockListener.java b/src/main/java/com/me/tft_02/soulbound/listeners/BlockListener.java
similarity index 100%
rename from src/com/me/tft_02/soulbound/listeners/BlockListener.java
rename to src/main/java/com/me/tft_02/soulbound/listeners/BlockListener.java
diff --git a/src/com/me/tft_02/soulbound/listeners/EntityListener.java b/src/main/java/com/me/tft_02/soulbound/listeners/EntityListener.java
similarity index 100%
rename from src/com/me/tft_02/soulbound/listeners/EntityListener.java
rename to src/main/java/com/me/tft_02/soulbound/listeners/EntityListener.java
diff --git a/src/com/me/tft_02/soulbound/listeners/InventoryListener.java b/src/main/java/com/me/tft_02/soulbound/listeners/InventoryListener.java
similarity index 100%
rename from src/com/me/tft_02/soulbound/listeners/InventoryListener.java
rename to src/main/java/com/me/tft_02/soulbound/listeners/InventoryListener.java
diff --git a/src/com/me/tft_02/soulbound/listeners/PlayerListener.java b/src/main/java/com/me/tft_02/soulbound/listeners/PlayerListener.java
similarity index 100%
rename from src/com/me/tft_02/soulbound/listeners/PlayerListener.java
rename to src/main/java/com/me/tft_02/soulbound/listeners/PlayerListener.java
diff --git a/src/com/me/tft_02/soulbound/listeners/SelfListener.java b/src/main/java/com/me/tft_02/soulbound/listeners/SelfListener.java
similarity index 100%
rename from src/com/me/tft_02/soulbound/listeners/SelfListener.java
rename to src/main/java/com/me/tft_02/soulbound/listeners/SelfListener.java
diff --git a/src/com/me/tft_02/soulbound/runnables/SoulbindInventoryTask.java b/src/main/java/com/me/tft_02/soulbound/runnables/SoulbindInventoryTask.java
similarity index 100%
rename from src/com/me/tft_02/soulbound/runnables/SoulbindInventoryTask.java
rename to src/main/java/com/me/tft_02/soulbound/runnables/SoulbindInventoryTask.java
diff --git a/src/com/me/tft_02/soulbound/runnables/UpdateArmorTask.java b/src/main/java/com/me/tft_02/soulbound/runnables/UpdateArmorTask.java
similarity index 100%
rename from src/com/me/tft_02/soulbound/runnables/UpdateArmorTask.java
rename to src/main/java/com/me/tft_02/soulbound/runnables/UpdateArmorTask.java
diff --git a/src/com/me/tft_02/soulbound/runnables/UpdateInventoryTask.java b/src/main/java/com/me/tft_02/soulbound/runnables/UpdateInventoryTask.java
similarity index 100%
rename from src/com/me/tft_02/soulbound/runnables/UpdateInventoryTask.java
rename to src/main/java/com/me/tft_02/soulbound/runnables/UpdateInventoryTask.java
diff --git a/src/com/me/tft_02/soulbound/util/CommandUtils.java b/src/main/java/com/me/tft_02/soulbound/util/CommandUtils.java
similarity index 100%
rename from src/com/me/tft_02/soulbound/util/CommandUtils.java
rename to src/main/java/com/me/tft_02/soulbound/util/CommandUtils.java
diff --git a/src/com/me/tft_02/soulbound/util/DurabilityUtils.java b/src/main/java/com/me/tft_02/soulbound/util/DurabilityUtils.java
similarity index 100%
rename from src/com/me/tft_02/soulbound/util/DurabilityUtils.java
rename to src/main/java/com/me/tft_02/soulbound/util/DurabilityUtils.java
diff --git a/src/com/me/tft_02/soulbound/util/ItemUtils.java b/src/main/java/com/me/tft_02/soulbound/util/ItemUtils.java
similarity index 100%
rename from src/com/me/tft_02/soulbound/util/ItemUtils.java
rename to src/main/java/com/me/tft_02/soulbound/util/ItemUtils.java
diff --git a/src/main/java/com/me/tft_02/soulbound/util/LogFilter.java b/src/main/java/com/me/tft_02/soulbound/util/LogFilter.java
new file mode 100644
index 0000000..8ebbf8b
--- /dev/null
+++ b/src/main/java/com/me/tft_02/soulbound/util/LogFilter.java
@@ -0,0 +1,23 @@
+package com.me.tft_02.soulbound.util;
+
+import java.util.logging.Filter;
+import java.util.logging.LogRecord;
+
+import com.me.tft_02.soulbound.Soulbound;
+
+public class LogFilter implements Filter {
+ private final boolean debug;
+
+ public LogFilter(final Soulbound plugin) {
+ // Doing a config loading lite here, because we can't depend on the config loader to have loaded before any debug messages are sent
+ debug = plugin.getConfig().getBoolean("General.Verbose_Logging");
+ }
+
+ @Override
+ public boolean isLoggable(final LogRecord record) {
+ if (record.getMessage().contains("[Debug]") && !debug) {
+ return false;
+ }
+ return true;
+ }
+}
diff --git a/src/com/me/tft_02/soulbound/util/Misc.java b/src/main/java/com/me/tft_02/soulbound/util/Misc.java
similarity index 100%
rename from src/com/me/tft_02/soulbound/util/Misc.java
rename to src/main/java/com/me/tft_02/soulbound/util/Misc.java
diff --git a/src/com/me/tft_02/soulbound/util/Permissions.java b/src/main/java/com/me/tft_02/soulbound/util/Permissions.java
similarity index 100%
rename from src/com/me/tft_02/soulbound/util/Permissions.java
rename to src/main/java/com/me/tft_02/soulbound/util/Permissions.java
diff --git a/src/com/me/tft_02/soulbound/util/PlayerData.java b/src/main/java/com/me/tft_02/soulbound/util/PlayerData.java
similarity index 100%
rename from src/com/me/tft_02/soulbound/util/PlayerData.java
rename to src/main/java/com/me/tft_02/soulbound/util/PlayerData.java
diff --git a/src/com/me/tft_02/soulbound/util/StringUtils.java b/src/main/java/com/me/tft_02/soulbound/util/StringUtils.java
similarity index 100%
rename from src/com/me/tft_02/soulbound/util/StringUtils.java
rename to src/main/java/com/me/tft_02/soulbound/util/StringUtils.java
diff --git a/src/config.yml b/src/main/resources/config.yml
similarity index 74%
rename from src/config.yml
rename to src/main/resources/config.yml
index aa38a82..1a30bf2 100644
--- a/src/config.yml
+++ b/src/main/resources/config.yml
@@ -34,17 +34,7 @@ Soulbound:
/enchant
Dependency_Plugins:
- DiabloDrops:
- BindOnPickup: Legendary, Rare, Unidentified
- BindOnUse: Magical
- BindOnEquip: Set
EpicBossRecoded:
BindOnPickup: true
BindOnUse: false
- BindOnEquip: false
- LoreLocks:
- Bind_Keys: true
- MythicDrops:
- BindOnPickup: common, uncommon, rare
- BindOnUse: terric, netheric
- BindOnEquip: endric
\ No newline at end of file
+ BindOnEquip: false
\ No newline at end of file
diff --git a/src/items.yml b/src/main/resources/items.yml
similarity index 100%
rename from src/items.yml
rename to src/main/resources/items.yml
diff --git a/src/message.yml b/src/main/resources/message.yml
similarity index 100%
rename from src/message.yml
rename to src/main/resources/message.yml
diff --git a/src/plugin.yml b/src/main/resources/plugin.yml
similarity index 92%
rename from src/plugin.yml
rename to src/main/resources/plugin.yml
index 0e12057..b4a2b3f 100644
--- a/src/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -1,10 +1,10 @@
-name: Soulbound
-version: 1.1.11
-author: TfT_02,喵♂呜
+name: ${project.artifactId}
+description: ${project.description}
+authors: [TfT_02,喵♂呜]
+version: ${project.version}
main: com.me.tft_02.soulbound.Soulbound
website: http://ci.citycraft.cn:8800/jenkins/job/Soulbound/
-description: Soulbound items for your RPG servers!
-softdepend: [EpicBossRecoded, LoreLocks]
+softdepend: [EpicBossRecoded]
commands:
soulbound:
description: Usage /soulbound