diff --git a/pom.xml b/pom.xml
index 6cc87f3..ea4d8f5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,101 +1,114 @@
- 4.0.0
- pw.yumc
- MiaoLobby
- 1.3
-
- ${project.name}
-
-
- src/main/resources
- true
-
-
-
-
- maven-compiler-plugin
- 3.3
-
-
- 1.7
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
- 2.3
-
- false
- true
-
-
- pw.yumc:YumCore
-
-
-
-
- pw.yumc.YumCore
- ${project.groupId}.${project.artifactId}
-
-
-
-
-
- package
-
- shade
-
-
-
-
-
-
-
- Jenkins
- http://ci.yumc.pw/job/${project.artifactId}/
-
-
-
-
- DEBUG
- UTF-8
-
-
-
- spigot-repo
- https://hub.spigotmc.org/nexus/content/groups/public/
-
-
- yumc-repo
- http://repo.yumc.pw/content/groups/public/
-
-
-
-
- jtb
- YUMC
- http://repo.yumc.pw/content/repositories/yumcenter/
-
-
-
-
- org.spigotmc
- spigot-api
- jar
- 1.10.2-R0.1-SNAPSHOT
-
-
- pw.yumc
- YumCore
- jar
- 1.0
-
-
- cn.citycraft
- AuthMe
- jar
- 6.1
-
-
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ 4.0.0
+ pw.yumc
+ MiaoLobby
+ 1.4
+
+ ${project.name}
+
+
+ src/main/resources
+ true
+
+
+
+
+ maven-compiler-plugin
+ 3.3
+
+
+ 1.7
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 2.3
+
+ false
+ true
+
+
+ pw.yumc:YumCore
+
+
+
+
+ pw.yumc.YumCore
+ ${project.groupId}.${project.artifactId}
+
+
+
+
+
+ package
+
+ shade
+
+
+
+
+
+ com.github.wvengen
+ proguard-maven-plugin
+
+
+ package
+
+ proguard
+
+
+
+
+
+
+ ${java.home}/lib/rt.jar
+
+
+
+
+
+
+
+
+ Jenkins
+ http://ci.yumc.pw/job/${project.artifactId}/
+
+
+ DEV
+ UTF-8
+
+
+
+ yumc-repo
+ http://repo.yumc.pw/content/groups/public/
+
+
+
+
+ jtb
+ YUMC
+ http://repo.yumc.pw/content/repositories/yumcenter/
+
+
+
+
+ pw.yumc
+ YumCore
+ jar
+ 1.0
+
+
+ cn.citycraft
+ AuthMe
+ jar
+ 6.1
+
+
+ cn.citycraft
+ VBossAuth
+ 1.5.2
+
+
\ No newline at end of file
diff --git a/src/main/java/pw/yumc/MiaoLobby/AuthMeHook.java b/src/main/java/pw/yumc/MiaoLobby/AuthMeHook.java
deleted file mode 100644
index c4e5a51..0000000
--- a/src/main/java/pw/yumc/MiaoLobby/AuthMeHook.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package pw.yumc.MiaoLobby;
-
-import org.bukkit.Bukkit;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.Listener;
-
-import fr.xephi.authme.events.LoginEvent;
-import pw.yumc.YumCore.bukkit.P;
-
-public class AuthMeHook implements Listener {
- private MiaoLobby plugin = P.getPlugin();
-
- public AuthMeHook() {
- Bukkit.getPluginManager().registerEvents(this, P.instance);
- }
-
- @EventHandler
- public void onLogin(final LoginEvent e) {
- plugin.delayTP(e.getPlayer());
- }
-}
diff --git a/src/main/java/pw/yumc/MiaoLobby/Config.java b/src/main/java/pw/yumc/MiaoLobby/Config.java
index d876355..3130b27 100644
--- a/src/main/java/pw/yumc/MiaoLobby/Config.java
+++ b/src/main/java/pw/yumc/MiaoLobby/Config.java
@@ -18,7 +18,7 @@ public class Config extends InjectConfig {
public String TPDelay;
public String Unavailable;
public Boolean AutoTP;
- public Boolean AuthMeAutoTP;
+ public Boolean LoginAutoTP;
public Integer AutoTPDelay;
public Boolean ReTry;
}
diff --git a/src/main/java/pw/yumc/MiaoLobby/MiaoLobby.java b/src/main/java/pw/yumc/MiaoLobby/MiaoLobby.java
index 2a26787..262b4ed 100644
--- a/src/main/java/pw/yumc/MiaoLobby/MiaoLobby.java
+++ b/src/main/java/pw/yumc/MiaoLobby/MiaoLobby.java
@@ -1,23 +1,14 @@
package pw.yumc.MiaoLobby;
-import java.security.SecureRandom;
-import java.util.ArrayList;
-import java.util.List;
-
import org.bukkit.Bukkit;
import org.bukkit.configuration.file.FileConfiguration;
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.java.JavaPlugin;
-import org.bukkit.scheduler.BukkitRunnable;
-
-import com.google.common.io.ByteArrayDataOutput;
-import com.google.common.io.ByteStreams;
+import pw.yumc.MiaoLobby.hook.AuthMeHook;
+import pw.yumc.MiaoLobby.hook.LoginHook;
+import pw.yumc.MiaoLobby.hook.VBossAuthHook;
import pw.yumc.YumCore.bukkit.Log;
-import pw.yumc.YumCore.bukkit.compatible.C;
import pw.yumc.YumCore.commands.CommandArgument;
import pw.yumc.YumCore.commands.CommandExecutor;
import pw.yumc.YumCore.commands.CommandManager;
@@ -25,37 +16,18 @@ import pw.yumc.YumCore.commands.annotation.Cmd;
import pw.yumc.YumCore.commands.annotation.Cmd.Executor;
import pw.yumc.YumCore.commands.annotation.Help;
import pw.yumc.YumCore.statistic.Statistics;
+import pw.yumc.YumCore.update.SubscribeTask;
-public class MiaoLobby extends JavaPlugin implements CommandExecutor, Listener {
+public class MiaoLobby extends JavaPlugin implements CommandExecutor {
Config config;
- private final SecureRandom random = new SecureRandom();
@Cmd(permission = "MiaoLobby.default", executor = Executor.PLAYER)
@Help("进行随机服务器传送")
public boolean def(final CommandArgument e) {
- random((Player) e.getSender());
+ Util.random((Player) e.getSender());
return true;
}
- public void delayTP(final Player player) {
- new BukkitRunnable() {
- int delay = config.AutoTPDelay;
-
- @Override
- public void run() {
- if (player.isOnline()) {
- if (delay > 0) {
- C.ActionBar.send(player, String.format(config.TPDelay, delay));
- delay--;
- return;
- }
- random(player);
- }
- cancel();
- }
- }.runTaskTimerAsynchronously(this, 0, 20);
- }
-
@Override
public FileConfiguration getConfig() {
return config.getConfig();
@@ -66,19 +38,17 @@ public class MiaoLobby extends JavaPlugin implements CommandExecutor, Listener {
new CommandManager("MiaoLobby", this);
Bukkit.getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
if (config.AutoTP) {
- Bukkit.getPluginManager().registerEvents(this, this);
- } else if (config.AuthMeAutoTP && Bukkit.getPluginManager().isPluginEnabled("AuthMe")) {
- new AuthMeHook();
+ new LoginHook();
+ } else if (config.LoginAutoTP) {
+ if (Bukkit.getPluginManager().isPluginEnabled("AuthMe")) {
+ new AuthMeHook();
+ }
+ if (Bukkit.getPluginManager().isPluginEnabled("VBossAuth")) {
+ new VBossAuthHook();
+ }
}
new Statistics();
- // new SubscribeTask(true, true);
- }
-
- @EventHandler
- public void onJoin(PlayerJoinEvent e) {
- if (config.AutoTP) {
- delayTP(e.getPlayer());
- }
+ new SubscribeTask(true, true);
}
@Override
@@ -92,40 +62,4 @@ public class MiaoLobby extends JavaPlugin implements CommandExecutor, Listener {
config.reload();
Log.toSender(e.getSender(), "§a配置文件已重载!");
}
-
- private void connect(final Player p, final String server) {
- final ByteArrayDataOutput out = ByteStreams.newDataOutput();
- try {
- out.writeUTF("Connect");
- out.writeUTF(server);
- } catch (final Exception ignored) {
- }
- p.sendPluginMessage(this, "BungeeCord", out.toByteArray());
- }
-
- void random(final Player player) {
- new BukkitRunnable() {
- List servers = new ArrayList<>(config.Servers);
- int i = 0;
-
- @Override
- public void run() {
- if (servers.isEmpty()) {
- if (config.ReTry) {
- servers.addAll(config.Servers);
- return;
- }
- C.ActionBar.send(player, config.Unavailable);
- player.sendMessage(config.Unavailable);
- } else if (player.isOnline()) {
- final String sname = servers.remove(random.nextInt(servers.size()));
- C.ActionBar.send(player, String.format(i > 0 ? config.TimeOut : config.Message, sname));
- connect(player, sname);
- i++;
- return;
- }
- cancel();
- }
- }.runTaskTimerAsynchronously(this, 0, config.WaitTime);
- }
}
diff --git a/src/main/java/pw/yumc/MiaoLobby/Util.java b/src/main/java/pw/yumc/MiaoLobby/Util.java
new file mode 100644
index 0000000..e2e3cfe
--- /dev/null
+++ b/src/main/java/pw/yumc/MiaoLobby/Util.java
@@ -0,0 +1,79 @@
+package pw.yumc.MiaoLobby;
+
+import java.security.SecureRandom;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.bukkit.entity.Player;
+import org.bukkit.scheduler.BukkitRunnable;
+
+import com.google.common.io.ByteArrayDataOutput;
+import com.google.common.io.ByteStreams;
+
+import pw.yumc.YumCore.bukkit.P;
+import pw.yumc.YumCore.bukkit.compatible.C;
+
+/**
+ * @author 喵♂呜
+ * @since 2016/12/25 0025
+ */
+public class Util {
+ private final static SecureRandom random = new SecureRandom();
+ private static MiaoLobby plugin = P.getPlugin();
+ private static Config config = plugin.config;
+
+ public static void delayTp(final Player player) {
+ new BukkitRunnable() {
+ int delay = config.AutoTPDelay;
+
+ @Override
+ public void run() {
+ if (player.isOnline()) {
+ if (delay > 0) {
+ C.ActionBar.send(player, String.format(plugin.config.TPDelay, delay));
+ delay--;
+ return;
+ }
+ random(player);
+ }
+ cancel();
+ }
+ }.runTaskTimerAsynchronously(plugin, 0, 20);
+ }
+
+ public static void connect(final Player p, final String server) {
+ final ByteArrayDataOutput out = ByteStreams.newDataOutput();
+ try {
+ out.writeUTF("Connect");
+ out.writeUTF(server);
+ } catch (final Exception ignored) {
+ }
+ p.sendPluginMessage(plugin, "BungeeCord", out.toByteArray());
+ }
+
+ public static void random(final Player player) {
+ new BukkitRunnable() {
+ List servers = new ArrayList<>(config.Servers);
+ int i = 0;
+
+ @Override
+ public void run() {
+ if (servers.isEmpty()) {
+ if (config.ReTry) {
+ servers.addAll(config.Servers);
+ return;
+ }
+ C.ActionBar.send(player, config.Unavailable);
+ player.sendMessage(config.Unavailable);
+ } else if (player.isOnline()) {
+ final String sname = servers.remove(random.nextInt(servers.size()));
+ C.ActionBar.send(player, String.format(i > 0 ? config.TimeOut : config.Message, sname));
+ connect(player, sname);
+ i++;
+ return;
+ }
+ cancel();
+ }
+ }.runTaskTimerAsynchronously(plugin, 0, config.WaitTime);
+ }
+}
diff --git a/src/main/java/pw/yumc/MiaoLobby/hook/AuthMeHook.java b/src/main/java/pw/yumc/MiaoLobby/hook/AuthMeHook.java
new file mode 100644
index 0000000..c60a2a1
--- /dev/null
+++ b/src/main/java/pw/yumc/MiaoLobby/hook/AuthMeHook.java
@@ -0,0 +1,13 @@
+package pw.yumc.MiaoLobby.hook;
+
+import org.bukkit.event.EventHandler;
+
+import fr.xephi.authme.events.LoginEvent;
+import pw.yumc.MiaoLobby.Util;
+
+public class AuthMeHook extends Hook {
+ @EventHandler
+ public void onLogin(final LoginEvent e) {
+ Util.delayTp(e.getPlayer());
+ }
+}
diff --git a/src/main/java/pw/yumc/MiaoLobby/hook/Hook.java b/src/main/java/pw/yumc/MiaoLobby/hook/Hook.java
new file mode 100644
index 0000000..d8bf8f5
--- /dev/null
+++ b/src/main/java/pw/yumc/MiaoLobby/hook/Hook.java
@@ -0,0 +1,12 @@
+package pw.yumc.MiaoLobby.hook;
+
+import org.bukkit.Bukkit;
+import org.bukkit.event.Listener;
+
+import pw.yumc.YumCore.bukkit.P;
+
+public class Hook implements Listener {
+ public Hook() {
+ Bukkit.getPluginManager().registerEvents(this, P.instance);
+ }
+}
diff --git a/src/main/java/pw/yumc/MiaoLobby/hook/LoginHook.java b/src/main/java/pw/yumc/MiaoLobby/hook/LoginHook.java
new file mode 100644
index 0000000..7cd49f5
--- /dev/null
+++ b/src/main/java/pw/yumc/MiaoLobby/hook/LoginHook.java
@@ -0,0 +1,15 @@
+package pw.yumc.MiaoLobby.hook;
+
+import org.bukkit.event.player.PlayerJoinEvent;
+
+import pw.yumc.MiaoLobby.Util;
+
+/**
+ * @author 喵♂呜
+ * @since 2016/12/25 0025
+ */
+public class LoginHook extends Hook {
+ public void onJoin(PlayerJoinEvent e) {
+ Util.delayTp(e.getPlayer());
+ }
+}
diff --git a/src/main/java/pw/yumc/MiaoLobby/hook/VBossAuthHook.java b/src/main/java/pw/yumc/MiaoLobby/hook/VBossAuthHook.java
new file mode 100644
index 0000000..8bcf113
--- /dev/null
+++ b/src/main/java/pw/yumc/MiaoLobby/hook/VBossAuthHook.java
@@ -0,0 +1,13 @@
+package pw.yumc.MiaoLobby.hook;
+
+import org.bukkit.event.EventHandler;
+
+import cn.citycraft.VBossAuth.event.LoginEvent;
+import pw.yumc.MiaoLobby.Util;
+
+public class VBossAuthHook extends Hook {
+ @EventHandler
+ public void onLogin(final LoginEvent e) {
+ Util.delayTp(e.getPlayer());
+ }
+}
diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml
index 10f662d..7daaf43 100644
--- a/src/main/resources/config.yml
+++ b/src/main/resources/config.yml
@@ -1,17 +1,17 @@
#配置文件版本 请勿修改
-Version: 1.3
+Version: 1.4
-#数据库信息
+#服务器列表
Servers:
- lobby1
- lobby2
#传送超时时间(单位: Tick)
WaitTime: 35
-#自带传送(如果开启 则AuthMe自动传送失效)
+#自带传送(如果开启 则Login自动传送失效)
AutoTP: false
-#AuthMe自动传送
-AuthMeAutoTP: true
-#自动传送延时(单位: 秒)
+#登录自动传送(暂时支持AuthMe和VBossAuth)
+LoginAutoTP: true
+#传送延时(单位: 秒)
AutoTPDelay: 10
#尝试完毕后是否继续重试
ReTry: true