diff --git a/pom.xml b/pom.xml
index 96affb8..d0c37f0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
4.0.0
cn.citycraft
ResFly
- 1.0
+ 1.1
ResFly
${project.name}
diff --git a/src/cn/citycraft/ResFly/ResFly.java b/src/cn/citycraft/ResFly/ResFly.java
index 52cb312..036c15f 100644
--- a/src/cn/citycraft/ResFly/ResFly.java
+++ b/src/cn/citycraft/ResFly/ResFly.java
@@ -5,34 +5,35 @@ import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
-import cn.citycraft.ResFly.config.Config;
-import cn.citycraft.ResFly.listen.PlayerListen;
-
import com.bekvon.bukkit.residence.protection.FlagPermissions;
+import cn.citycraft.PluginHelper.config.FileConfig;
+import cn.citycraft.PluginHelper.utils.VersionChecker;
+import cn.citycraft.ResFly.listen.PlayerListen;
+
public class ResFly extends JavaPlugin {
- public String servername;
+ public FileConfig config;
public String pluginname;
+ public String servername;
- public String getfullmsg(String path) {
- return servername + pluginname + " " + getmessage(path);
+ public String getfullmsg(final String path) {
+ return this.servername + this.pluginname + " " + getmessage(path);
}
- public String getmessage(String path) {
- return Config.getMessage(path);
+ public String getmessage(final String path) {
+ return this.config.getMessage(path);
}
@Override
public void onEnable() {
- PluginManager pm = this.getServer().getPluginManager();
- Plugin res = pm.getPlugin("Residence");
- if (Config.getInstance().getBoolean("ResFly.Enable", true)) {
+ final PluginManager pm = getServer().getPluginManager();
+ final Plugin res = pm.getPlugin("Residence");
+ if (this.config.getBoolean("ResFly.Enable", true)) {
if (res != null && res.isEnabled()) {
FlagPermissions.addFlag("fly");
FlagPermissions.addResidenceOnlyFlag("fly");
- Bukkit.getPluginManager()
- .registerEvents(new PlayerListen(this), this);
+ Bukkit.getPluginManager().registerEvents(new PlayerListen(this), this);
getLogger().info("玩家领地飞行控制已加载!");
} else {
getLogger().info("未找到领地插件停止加载领地飞行!");
@@ -40,13 +41,14 @@ public class ResFly extends JavaPlugin {
return;
}
}
+ new VersionChecker(this);
}
@Override
public void onLoad() {
- Config.load(this);
- servername = getmessage("servername");
- pluginname = getmessage("pluginname");
+ this.config = new FileConfig(this);
+ this.servername = getmessage("servername");
+ this.pluginname = getmessage("pluginname");
}
}
diff --git a/src/cn/citycraft/ResFly/config/Config.java b/src/cn/citycraft/ResFly/config/Config.java
deleted file mode 100644
index 7a7fe2f..0000000
--- a/src/cn/citycraft/ResFly/config/Config.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package cn.citycraft.ResFly.config;
-
-import java.io.File;
-import java.io.IOException;
-
-import org.bukkit.plugin.Plugin;
-
-public class Config extends ConfigLoader {
- private static String CONFIG_NAME = "config.yml";
- private static FileConfig instance;
- private static File file;
-
- public Config(Plugin p) {
- super(p, CONFIG_NAME);
- file = new File(p.getDataFolder(), CONFIG_NAME);
- instance = super.getInstance();
- }
-
- public Config(Plugin p, String ver) {
- super(p, CONFIG_NAME, ver);
- instance = super.getInstance();
- }
-
- public static void load(Plugin p) {
- new Config(p);
- }
-
- public static void load(Plugin p, String ver) {
- new Config(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[] 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/cn/citycraft/ResFly/config/ConfigLoader.java b/src/cn/citycraft/ResFly/config/ConfigLoader.java
deleted file mode 100644
index f23d13f..0000000
--- a/src/cn/citycraft/ResFly/config/ConfigLoader.java
+++ /dev/null
@@ -1,102 +0,0 @@
-package cn.citycraft.ResFly.config;
-
-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.getParentFile().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/cn/citycraft/ResFly/config/FileConfig.java b/src/cn/citycraft/ResFly/config/FileConfig.java
deleted file mode 100644
index 3eff12b..0000000
--- a/src/cn/citycraft/ResFly/config/FileConfig.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package cn.citycraft.ResFly.config;
-
-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/cn/citycraft/ResFly/listen/PlayerListen.java b/src/cn/citycraft/ResFly/listen/PlayerListen.java
index 5159567..75a8a67 100644
--- a/src/cn/citycraft/ResFly/listen/PlayerListen.java
+++ b/src/cn/citycraft/ResFly/listen/PlayerListen.java
@@ -9,47 +9,27 @@ import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
-import cn.citycraft.ResFly.ResFly;
-
import com.bekvon.bukkit.residence.event.ResidenceChangedEvent;
import com.bekvon.bukkit.residence.event.ResidenceDeleteEvent;
import com.bekvon.bukkit.residence.event.ResidenceFlagChangeEvent;
import com.bekvon.bukkit.residence.protection.ClaimedResidence;
import com.bekvon.bukkit.residence.protection.ResidencePermissions;
+import cn.citycraft.ResFly.ResFly;
+
public class PlayerListen implements Listener {
HashMap fall = new HashMap();
ResFly plugin;
- public PlayerListen(ResFly main) {
- plugin = main;
+ public PlayerListen(final ResFly main) {
+ this.plugin = main;
}
- void ChangePlayerFly(Player p, boolean fly) {
- if (p.getAllowFlight() && !fly) {
- if (p.isFlying()) {
- fall.put(p, p);
- }
- p.setAllowFlight(false);
- p.sendMessage(plugin.getfullmsg("Message.Not_Allow"));
- }
- if (!p.getAllowFlight() && fly) {
- if (p == fall.get(p)) {
- fall.remove(p);
- }
- p.setAllowFlight(true);
- p.sendMessage(plugin.getfullmsg("Message.Allow"));
- }
- }
-
- // ResidenceDeleteEvent.class
- // ResidenceFlagChangeEvent.class
-
@EventHandler(ignoreCancelled = true)
- public void FlagChange(ResidenceFlagChangeEvent e) {
- ClaimedResidence res = e.getResidence();
- for (Player p : res.getPlayersInResidence()) {
+ public void FlagChange(final ResidenceFlagChangeEvent e) {
+ final ClaimedResidence res = e.getResidence();
+ for (final Player p : res.getPlayersInResidence()) {
if (!permCheck(p)) {
if (!resPermCheck(res, p)) {
ChangePlayerFly(p, false);
@@ -60,27 +40,23 @@ public class PlayerListen implements Listener {
}
}
- public void onFallDamage(EntityDamageEvent e) {
+ public void onFallDamage(final EntityDamageEvent e) {
if (e.getEntity() instanceof Player) {
- Player p = (Player) e.getEntity();
+ final Player p = (Player) e.getEntity();
if (e.getCause() == DamageCause.FALL) {
- if (p == fall.get(p)) {
- fall.remove(p);
+ if (p == this.fall.get(p)) {
+ this.fall.remove(p);
e.setCancelled(true);
- p.sendMessage(plugin.getfullmsg("Message.Protect"));
+ p.sendMessage(this.plugin.getfullmsg("Message.Protect"));
}
}
}
}
- boolean permCheck(Player p) {
- return p.hasPermission("resfly.ignore") || p.isOp() || p.getGameMode() == GameMode.CREATIVE;
- }
-
@EventHandler(ignoreCancelled = true)
- public void resChange(ResidenceChangedEvent event) {
- Player player = event.getPlayer();
- ClaimedResidence resto = event.getTo();
+ public void resChange(final ResidenceChangedEvent event) {
+ final Player player = event.getPlayer();
+ final ClaimedResidence resto = event.getTo();
if (!permCheck(player)) {
if (!resPermCheck(resto, player)) {
ChangePlayerFly(player, false);
@@ -91,19 +67,41 @@ public class PlayerListen implements Listener {
}
@EventHandler(ignoreCancelled = true)
- public void ResDelete(ResidenceDeleteEvent e) {
- ClaimedResidence res = e.getResidence();
- for (Player p : res.getPlayersInResidence()) {
+ public void ResDelete(final ResidenceDeleteEvent e) {
+ final ClaimedResidence res = e.getResidence();
+ for (final Player p : res.getPlayersInResidence()) {
if (!permCheck(p)) {
ChangePlayerFly(p, false);
}
}
}
- boolean resPermCheck(ClaimedResidence res, Player p) {
- if (res == null)
+ void ChangePlayerFly(final Player p, final boolean fly) {
+ if (p.getAllowFlight() && !fly) {
+ if (p.isFlying()) {
+ this.fall.put(p, p);
+ }
+ p.setAllowFlight(false);
+ p.sendMessage(this.plugin.getfullmsg("Message.Not_Allow"));
+ }
+ if (!p.getAllowFlight() && fly) {
+ if (p == this.fall.get(p)) {
+ this.fall.remove(p);
+ }
+ p.setAllowFlight(true);
+ p.sendMessage(this.plugin.getfullmsg("Message.Allow"));
+ }
+ }
+
+ boolean permCheck(final Player p) {
+ return p.hasPermission("ResFly.ignore") || p.isOp() || p.getGameMode() == GameMode.CREATIVE;
+ }
+
+ boolean resPermCheck(final ClaimedResidence res, final Player p) {
+ if (res == null) {
return false;
- ResidencePermissions perms = res.getPermissions();
+ }
+ final ResidencePermissions perms = res.getPermissions();
return perms.playerHas(p.getName(), "fly", false);
}
}
\ No newline at end of file
diff --git a/src/plugin.yml b/src/plugin.yml
index 1dc04b5..586c873 100644
--- a/src/plugin.yml
+++ b/src/plugin.yml
@@ -1,8 +1,10 @@
-name: ResFly
-main: cn.citycraft.ResFly.ResFly
-version: 0.0.1
-depended: [Residence]
-permissions:
- resfly.ignore:
- description: 允许忽略领地飞行限制!
+name: ${project.artifactId}
+description: ${project.description}
+main: ${project.groupId}.${project.artifactId}.${project.artifactId}
+version: ${project.version}-Build#${env.BUILD_NUMBER}
+author: 喵♂呜
+website: ${jenkins.url}/job/${project.artifactId}/
+permissions:
+ ${project.artifactId}.ignore:
+ description: 忽略飞行检测!
default: op
\ No newline at end of file