mirror of
https://e.coding.net/circlecloud/MiaoLobby.git
synced 2025-11-02 17:06:02 +00:00
2
pom.xml
2
pom.xml
@@ -3,7 +3,7 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>pw.yumc</groupId>
|
<groupId>pw.yumc</groupId>
|
||||||
<artifactId>MiaoLobby</artifactId>
|
<artifactId>MiaoLobby</artifactId>
|
||||||
<version>1.2</version>
|
<version>1.3</version>
|
||||||
<build>
|
<build>
|
||||||
<finalName>${project.name}</finalName>
|
<finalName>${project.name}</finalName>
|
||||||
<resources>
|
<resources>
|
||||||
|
|||||||
@@ -1,14 +1,11 @@
|
|||||||
package pw.yumc.MiaoLobby;
|
package pw.yumc.MiaoLobby;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
|
||||||
|
|
||||||
import fr.xephi.authme.events.LoginEvent;
|
import fr.xephi.authme.events.LoginEvent;
|
||||||
import pw.yumc.YumCore.bukkit.P;
|
import pw.yumc.YumCore.bukkit.P;
|
||||||
import pw.yumc.YumCore.bukkit.compatible.C;
|
|
||||||
|
|
||||||
public class AuthMeHook implements Listener {
|
public class AuthMeHook implements Listener {
|
||||||
private MiaoLobby plugin = P.getPlugin();
|
private MiaoLobby plugin = P.getPlugin();
|
||||||
@@ -19,22 +16,6 @@ public class AuthMeHook implements Listener {
|
|||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onLogin(final LoginEvent e) {
|
public void onLogin(final LoginEvent e) {
|
||||||
new BukkitRunnable() {
|
plugin.delayTP(e.getPlayer());
|
||||||
Player player = e.getPlayer();
|
|
||||||
int delay = plugin.config.AutoTPDelay;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
if (player.isOnline()) {
|
|
||||||
if (delay > 0) {
|
|
||||||
C.ActionBar.send(player, String.format(plugin.config.TPDelay, delay));
|
|
||||||
delay--;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
plugin.random(player);
|
|
||||||
}
|
|
||||||
cancel();
|
|
||||||
}
|
|
||||||
}.runTaskTimerAsynchronously(plugin, 0, 20);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ public class Config extends InjectConfig {
|
|||||||
public String TimeOut;
|
public String TimeOut;
|
||||||
public String TPDelay;
|
public String TPDelay;
|
||||||
public String Unavailable;
|
public String Unavailable;
|
||||||
|
public Boolean AutoTP;
|
||||||
public Boolean AuthMeAutoTP;
|
public Boolean AuthMeAutoTP;
|
||||||
public Integer AutoTPDelay;
|
public Integer AutoTPDelay;
|
||||||
public Boolean ReTry;
|
public Boolean ReTry;
|
||||||
|
|||||||
@@ -7,6 +7,9 @@ import java.util.List;
|
|||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.configuration.file.FileConfiguration;
|
import org.bukkit.configuration.file.FileConfiguration;
|
||||||
import org.bukkit.entity.Player;
|
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.plugin.java.JavaPlugin;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
@@ -22,22 +25,11 @@ import pw.yumc.YumCore.commands.annotation.Cmd;
|
|||||||
import pw.yumc.YumCore.commands.annotation.Cmd.Executor;
|
import pw.yumc.YumCore.commands.annotation.Cmd.Executor;
|
||||||
import pw.yumc.YumCore.commands.annotation.Help;
|
import pw.yumc.YumCore.commands.annotation.Help;
|
||||||
import pw.yumc.YumCore.statistic.Statistics;
|
import pw.yumc.YumCore.statistic.Statistics;
|
||||||
import pw.yumc.YumCore.update.SubscribeTask;
|
|
||||||
|
|
||||||
public class MiaoLobby extends JavaPlugin implements CommandExecutor {
|
public class MiaoLobby extends JavaPlugin implements CommandExecutor, Listener {
|
||||||
Config config;
|
Config config;
|
||||||
private final SecureRandom random = new SecureRandom();
|
private final SecureRandom random = new SecureRandom();
|
||||||
|
|
||||||
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());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Cmd(permission = "MiaoLobby.default", executor = Executor.PLAYER)
|
@Cmd(permission = "MiaoLobby.default", executor = Executor.PLAYER)
|
||||||
@Help("进行随机服务器传送")
|
@Help("进行随机服务器传送")
|
||||||
public boolean def(final CommandArgument e) {
|
public boolean def(final CommandArgument e) {
|
||||||
@@ -45,6 +37,25 @@ public class MiaoLobby extends JavaPlugin implements CommandExecutor {
|
|||||||
return true;
|
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
|
@Override
|
||||||
public FileConfiguration getConfig() {
|
public FileConfiguration getConfig() {
|
||||||
return config.getConfig();
|
return config.getConfig();
|
||||||
@@ -54,18 +65,44 @@ public class MiaoLobby extends JavaPlugin implements CommandExecutor {
|
|||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
new CommandManager("MiaoLobby", this);
|
new CommandManager("MiaoLobby", this);
|
||||||
Bukkit.getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
|
Bukkit.getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
|
||||||
if (config.AuthMeAutoTP && Bukkit.getPluginManager().isPluginEnabled("AuthMe")) {
|
if (config.AutoTP) {
|
||||||
|
Bukkit.getPluginManager().registerEvents(this, this);
|
||||||
|
} else if (config.AuthMeAutoTP && Bukkit.getPluginManager().isPluginEnabled("AuthMe")) {
|
||||||
new AuthMeHook();
|
new AuthMeHook();
|
||||||
}
|
}
|
||||||
new Statistics();
|
new Statistics();
|
||||||
// new SubscribeTask(true, true);
|
// new SubscribeTask(true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onJoin(PlayerJoinEvent e) {
|
||||||
|
if (config.AutoTP) {
|
||||||
|
delayTP(e.getPlayer());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLoad() {
|
public void onLoad() {
|
||||||
config = new Config();
|
config = new Config();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Cmd(permission = "MiaoLobby.reload")
|
||||||
|
@Help("重载配置文件")
|
||||||
|
public void reload(final CommandArgument e) {
|
||||||
|
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) {
|
void random(final Player player) {
|
||||||
new BukkitRunnable() {
|
new BukkitRunnable() {
|
||||||
List<String> servers = new ArrayList<>(config.Servers);
|
List<String> servers = new ArrayList<>(config.Servers);
|
||||||
@@ -91,11 +128,4 @@ public class MiaoLobby extends JavaPlugin implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
}.runTaskTimerAsynchronously(this, 0, config.WaitTime);
|
}.runTaskTimerAsynchronously(this, 0, config.WaitTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Cmd(permission = "MiaoLobby.reload")
|
|
||||||
@Help("重载配置文件")
|
|
||||||
public void reload(final CommandArgument e) {
|
|
||||||
config.reload();
|
|
||||||
Log.toSender(e.getSender(), "§a配置文件已重载!");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#配置文件版本 请勿修改
|
#配置文件版本 请勿修改
|
||||||
Version: 1.2
|
Version: 1.3
|
||||||
|
|
||||||
#数据库信息
|
#数据库信息
|
||||||
Servers:
|
Servers:
|
||||||
@@ -7,9 +7,11 @@ Servers:
|
|||||||
- lobby2
|
- lobby2
|
||||||
#传送超时时间(单位: Tick)
|
#传送超时时间(单位: Tick)
|
||||||
WaitTime: 35
|
WaitTime: 35
|
||||||
|
#自带传送(如果开启 则AuthMe自动传送失效)
|
||||||
|
AutoTP: false
|
||||||
#AuthMe自动传送
|
#AuthMe自动传送
|
||||||
AuthMeAutoTP: true
|
AuthMeAutoTP: true
|
||||||
#自动登录延时(单位: 秒)
|
#自动传送延时(单位: 秒)
|
||||||
AutoTPDelay: 10
|
AutoTPDelay: 10
|
||||||
#尝试完毕后是否继续重试
|
#尝试完毕后是否继续重试
|
||||||
ReTry: true
|
ReTry: true
|
||||||
|
|||||||
Reference in New Issue
Block a user