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)) {