diff --git a/pom.xml b/pom.xml
index 05c318c..f30c63d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
4.0.0
cn.citycraft
RocketJump
- 1.1
+ 1.2
RocketJump
${project.name}
@@ -50,11 +50,32 @@
+
+ com.github.wvengen
+ proguard-maven-plugin
+
+
+ package
+
+ proguard
+
+
+
+
+
+
+
+
+
+ ${java.home}/lib/rt.jar
+
+
+
- http://ci.citycraft.cn:8080
-
+ http://hs.citycraft.cn:8080
+ &c修复命令部分代码...
DEBUG
UTF-8
@@ -83,4 +104,5 @@
1.0
+ 火箭跳跃 特效Duang...
\ No newline at end of file
diff --git a/proguard.conf b/proguard.conf
new file mode 100644
index 0000000..e14d976
--- /dev/null
+++ b/proguard.conf
@@ -0,0 +1,33 @@
+# -----不优化-----
+-dontoptimize
+
+# -----忽略所有警告-----
+-ignorewarnings
+
+# -----混淆时应用侵入式重载-----
+-overloadaggressively
+
+# -----保留所有属性
+-keepattributes **
+
+# -----公共数据不混淆-----
+-keep class cn.citycraft.CommonData.** {*;}
+
+# -----保护所有实体中的字段名称-----
+-keepclassmembers class * implements java.io.Serializable { ; }
+
+# -----保护监听方法不被清理-----
+-keepclassmembers class * implements org.bukkit.event.Listener
+{
+ @org.bukkit.event.EventHandler ;
+}
+
+# -----保护注解命令方法不被清理-----
+-keepclassmembers class * implements **.commands.HandlerCommands
+{
+ @**.commands.HandlerCommand ;
+ @**.commands.HandlerTabComplete ;
+}
+
+# -----保护命令解析正常-----
+-keepnames class * extends **.commands.BaseCommand
diff --git a/src/main/java/cn/citycraft/RocketJump/RocketJump.java b/src/main/java/cn/citycraft/RocketJump/RocketJump.java
index d359d89..e4e5c34 100644
--- a/src/main/java/cn/citycraft/RocketJump/RocketJump.java
+++ b/src/main/java/cn/citycraft/RocketJump/RocketJump.java
@@ -4,15 +4,9 @@ import java.util.ArrayList;
import java.util.List;
import org.bukkit.Bukkit;
-import org.bukkit.GameMode;
-import org.bukkit.command.Command;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
-import cn.citycraft.PluginHelper.commands.HandlerCommand;
-import cn.citycraft.PluginHelper.commands.HandlerCommands;
-import cn.citycraft.PluginHelper.commands.HandlerSubCommand;
+import cn.citycraft.PluginHelper.commands.InvokeSubCommand;
import cn.citycraft.PluginHelper.utils.VersionChecker;
/**
@@ -21,27 +15,9 @@ import cn.citycraft.PluginHelper.utils.VersionChecker;
* @author 喵♂呜
* @since 2016年2月9日 下午8:50:50
*/
-public class RocketJump extends JavaPlugin implements HandlerCommands {
-
- List Dante = new ArrayList();
-
- @HandlerCommand(name = "off", description = "§a开启火箭跳跃", permission = "rj.use", onlyPlayerExecutable = true)
- public void off(final CommandSender sender, final Command cmd, final String string, final String[] args) {
- final Player p = (Player) sender;
- this.Dante.remove(p.getName());
- sender.sendMessage("§6[RocketJump]§4已关闭...");
- if (p.getGameMode() == GameMode.SURVIVAL) {
- p.setAllowFlight(false);
- }
- }
-
- @HandlerCommand(name = "on", description = "§c关闭火箭跳跃", permission = "rj.use", onlyPlayerExecutable = true)
- public void on(final CommandSender sender, final Command cmd, final String string, final String[] args) {
- final Player p = (Player) sender;
- this.Dante.add(p.getName());
- sender.sendMessage("§6[RocketJump]§a火箭跳跃已开启,双击空格启动。。。");
- p.setAllowFlight(true);
- }
+public class RocketJump extends JavaPlugin {
+ static RocketJump instence;
+ static List Dante = new ArrayList();
@Override
public void onDisable() {
@@ -50,8 +26,11 @@ public class RocketJump extends JavaPlugin implements HandlerCommands {
@Override
public void onEnable() {
- new HandlerSubCommand(this, "rj").registerCommands(this);
- getServer().getPluginManager().registerEvents(new Listen(this), this);
+ instence = this;
+ final InvokeSubCommand isc = new InvokeSubCommand(this, "rj");
+ isc.registerCommands(new RocketJumpCommands());
+ isc.setAllCommandOnlyPlayer(true);
+ getServer().getPluginManager().registerEvents(new RocketJumpListen(), this);
Bukkit.getConsoleSender().sendMessage("§aRocketJump已加载...");
new VersionChecker(this);
}
diff --git a/src/main/java/cn/citycraft/RocketJump/RocketJumpCommands.java b/src/main/java/cn/citycraft/RocketJump/RocketJumpCommands.java
new file mode 100644
index 0000000..6192165
--- /dev/null
+++ b/src/main/java/cn/citycraft/RocketJump/RocketJumpCommands.java
@@ -0,0 +1,34 @@
+package cn.citycraft.RocketJump;
+
+import org.bukkit.GameMode;
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+
+import cn.citycraft.PluginHelper.commands.HandlerCommand;
+import cn.citycraft.PluginHelper.commands.HandlerCommands;
+
+/**
+ *
+ * @since 2016年2月23日 上午11:20:51
+ * @author 喵♂呜
+ */
+public class RocketJumpCommands implements HandlerCommands {
+ @HandlerCommand(name = "off", description = "§a开启火箭跳跃")
+ public void off(final CommandSender sender, final Command cmd, final String string, final String[] args) {
+ final Player p = (Player) sender;
+ RocketJump.Dante.remove(p.getName());
+ sender.sendMessage("§6[RocketJump]§4已关闭...");
+ if (p.getGameMode() == GameMode.SURVIVAL) {
+ p.setAllowFlight(false);
+ }
+ }
+
+ @HandlerCommand(name = "on", description = "§c关闭火箭跳跃")
+ public void on(final CommandSender sender, final Command cmd, final String string, final String[] args) {
+ final Player p = (Player) sender;
+ RocketJump.Dante.add(p.getName());
+ sender.sendMessage("§6[RocketJump]§a火箭跳跃已开启,双击空格启动。。。");
+ p.setAllowFlight(true);
+ }
+}
diff --git a/src/main/java/cn/citycraft/RocketJump/Listen.java b/src/main/java/cn/citycraft/RocketJump/RocketJumpListen.java
similarity index 88%
rename from src/main/java/cn/citycraft/RocketJump/Listen.java
rename to src/main/java/cn/citycraft/RocketJump/RocketJumpListen.java
index 3696814..d23e33b 100644
--- a/src/main/java/cn/citycraft/RocketJump/Listen.java
+++ b/src/main/java/cn/citycraft/RocketJump/RocketJumpListen.java
@@ -17,16 +17,11 @@ import org.bukkit.event.player.PlayerToggleFlightEvent;
/**
* Created by a08381 on 15-3-28.
*/
-public class Listen implements Listener {
- RocketJump plugin;
+public class RocketJumpListen implements Listener {
List fall = new ArrayList();
List efc = new ArrayList();
int trng;
- public Listen(final RocketJump main) {
- plugin = main;
- }
-
public void add(final String p) {
if (!fall.contains(p)) {
fall.add(p);
@@ -47,7 +42,7 @@ public class Listen implements Listener {
pEffect(p.getLocation(), trng);
}
if (p.getLocation().add(0, -1, 0).getBlock().getType() != (Material.AIR)) {
- if (plugin.Dante.contains(p.getName())) {
+ if (RocketJump.Dante.contains(p.getName())) {
p.setAllowFlight(true);
if (fall.contains(p.getName())) {
fall.remove(p.getName());
@@ -72,7 +67,7 @@ public class Listen implements Listener {
@EventHandler(ignoreCancelled = true)
public void ToggleFlightEvent(final PlayerToggleFlightEvent e) {
final Player p = e.getPlayer();
- if (plugin.Dante.contains(p.getName())) {
+ if (RocketJump.Dante.contains(p.getName())) {
if (p.getLocation().add(0, -1, 0).getBlock().getType() == (Material.AIR) && p.getLocation().add(0, -2, 0).getBlock().getType() == (Material.AIR)) {
e.setCancelled(true);
return;
@@ -82,7 +77,7 @@ public class Listen implements Listener {
pEffect(p.getLocation(), 80);
p.setVelocity(p.getVelocity().setY(1));
p.setAllowFlight(false);
- plugin.getServer().getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() {
+ RocketJump.instence.getServer().getScheduler().runTaskLaterAsynchronously(RocketJump.instence, new Runnable() {
@Override
public void run() {
if (p.isOnline()) {
@@ -90,7 +85,7 @@ public class Listen implements Listener {
final String name = p.getName();
efcadd(name);
add(name);
- plugin.getServer().getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() {
+ RocketJump.instence.getServer().getScheduler().runTaskLaterAsynchronously(RocketJump.instence, new Runnable() {
@Override
public void run() {
if (efc.contains(name)) {