配置文件修改
This commit is contained in:
parent
431bf215f1
commit
2c1a5cce36
@ -7,12 +7,13 @@ import com.frontleaves.bungeecross.commands.SendToServerCommand;
|
||||
import com.frontleaves.bungeecross.configuration.ServerEnable;
|
||||
import com.frontleaves.bungeecross.configuration.VariableStorage;
|
||||
import com.frontleaves.bungeecross.events.PlayerJoinProxyEvent;
|
||||
import com.frontleaves.bungeecross.events.PlayerLeaveProxyEvent;
|
||||
import lombok.Getter;
|
||||
import net.md_5.bungee.api.plugin.Plugin;
|
||||
|
||||
/**
|
||||
* @version 见 final VERSION 变量
|
||||
* @author 筱锋xiao_lfeng
|
||||
* @version 见 final VERSION 变量
|
||||
*/
|
||||
public final class BungeeCross extends Plugin {
|
||||
@Getter
|
||||
@ -26,13 +27,14 @@ public final class BungeeCross extends Plugin {
|
||||
ServerEnable serverEnable = new ServerEnable(this);
|
||||
serverEnable.serverStart();
|
||||
// 注册指令
|
||||
getProxy().getPluginManager().registerCommand(this, new PluginInfoCommand("bungeecross"));
|
||||
getProxy().getPluginManager().registerCommand(this, new PluginInfoCommand("bungeecross", this));
|
||||
getProxy().getPluginManager().registerCommand(this, new ProxyServerListCommand("server-list"));
|
||||
getProxy().getPluginManager().registerCommand(this, new ReturnHubCommand("lobby", this));
|
||||
getProxy().getPluginManager().registerCommand(this, new SendToServerCommand("serverTo", this));
|
||||
getProxy().getPluginManager().registerCommand(this, new SendToServerCommand("sto", this));
|
||||
// 注册监听器
|
||||
getProxy().getPluginManager().registerListener(this, new PlayerJoinProxyEvent());
|
||||
getProxy().getPluginManager().registerListener(this, new PlayerJoinProxyEvent(this));
|
||||
getProxy().getPluginManager().registerListener(this, new PlayerLeaveProxyEvent(this));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -1,9 +1,11 @@
|
||||
package com.frontleaves.bungeecross.commands;
|
||||
|
||||
import com.frontleaves.bungeecross.BungeeCross;
|
||||
import com.frontleaves.bungeecross.configuration.ServerEnable;
|
||||
import com.frontleaves.bungeecross.configuration.VariableStorage;
|
||||
import net.md_5.bungee.api.CommandSender;
|
||||
import net.md_5.bungee.api.plugin.Command;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* 输出插件基本信息
|
||||
@ -12,17 +14,43 @@ import net.md_5.bungee.api.plugin.Command;
|
||||
*/
|
||||
public class PluginInfoCommand extends Command {
|
||||
|
||||
public PluginInfoCommand(String name) {
|
||||
private final BungeeCross plugin;
|
||||
|
||||
public PluginInfoCommand(String name, BungeeCross bungeeCross) {
|
||||
super(name);
|
||||
plugin = bungeeCross;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(CommandSender commandSender, String[] strings) {
|
||||
public void execute(@NotNull CommandSender commandSender, String @NotNull [] strings) {
|
||||
switch (strings.length) {
|
||||
case 1: {
|
||||
if ("reload".equals(strings[0])) {
|
||||
if (commandSender.hasPermission("bungeecross.admin")) {
|
||||
ServerEnable serverEnable = new ServerEnable(plugin);
|
||||
serverEnable.serverReload();
|
||||
} else {
|
||||
commandSender.sendMessage(VariableStorage.getPrefix() + "您不是管理员,无法进行操作");
|
||||
}
|
||||
} else if ("update".equals(strings[0])) {
|
||||
if (commandSender.hasPermission("bungeecross.admin")) {
|
||||
commandSender.sendMessage(VariableStorage.getPrefix() + "您的版本为最新的 " + BungeeCross.getVERSION());
|
||||
} else {
|
||||
commandSender.sendMessage(VariableStorage.getPrefix() + "您不是管理员,无法进行操作");
|
||||
}
|
||||
} else {
|
||||
commandSender.sendMessage(VariableStorage.getPrefix() + "参数无效");
|
||||
}
|
||||
}
|
||||
break;
|
||||
default: {
|
||||
commandSender.sendMessage("§9§l§m=]=======§2 Bungee§aCross §9§l§m========[=");
|
||||
commandSender.sendMessage(VariableStorage.getPrefix() + "蹦极插件:§2Bungee§aCross");
|
||||
commandSender.sendMessage(VariableStorage.getPrefix() + "作者:" + BungeeCross.getAUTHOR());
|
||||
commandSender.sendMessage(VariableStorage.getPrefix() + "版本:" + BungeeCross.getVERSION());
|
||||
commandSender.sendMessage(VariableStorage.getPrefix() + "跨服插件:§2Bungee§aCross");
|
||||
commandSender.sendMessage(VariableStorage.getPrefix() + "§6作者:§e" + BungeeCross.getAUTHOR());
|
||||
commandSender.sendMessage(VariableStorage.getPrefix() + "§9版本:§d" + BungeeCross.getVERSION());
|
||||
commandSender.sendMessage(VariableStorage.getPrefix() + "§b您的版本为最新的");
|
||||
commandSender.sendMessage("§9§l§m=]=======§2 Bungee§aCross §9§l§m========[=");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ package com.frontleaves.bungeecross.commands;
|
||||
import com.frontleaves.bungeecross.configuration.VariableStorage;
|
||||
import net.md_5.bungee.api.CommandSender;
|
||||
import net.md_5.bungee.api.plugin.Command;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* 查询服务器列表
|
||||
@ -19,7 +20,7 @@ public class ProxyServerListCommand extends Command {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(CommandSender commandSender, String[] strings) {
|
||||
public void execute(@NotNull CommandSender commandSender, String[] strings) {
|
||||
// 整理数据
|
||||
serverList = null;
|
||||
VariableStorage.getProxyServer().forEach((key, serverInfo) -> {
|
||||
|
@ -3,19 +3,22 @@ package com.frontleaves.bungeecross.commands;
|
||||
import com.frontleaves.bungeecross.BungeeCross;
|
||||
import com.frontleaves.bungeecross.configuration.VariableStorage;
|
||||
import net.md_5.bungee.api.CommandSender;
|
||||
import net.md_5.bungee.api.config.ServerInfo;
|
||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||
import net.md_5.bungee.api.plugin.Command;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
/**
|
||||
* 返回大厅指令
|
||||
*
|
||||
* @author 筱锋xiao_lfeng
|
||||
* @since v1.0-SNAPSHOT
|
||||
* @version v1.0-SNAPSHOT
|
||||
* @since v1.0-SNAPSHOT
|
||||
*/
|
||||
public class ReturnHubCommand extends Command {
|
||||
private final BungeeCross plugin;
|
||||
|
||||
public ReturnHubCommand(String name, BungeeCross bungeeCross) {
|
||||
super(name);
|
||||
plugin = bungeeCross;
|
||||
@ -25,11 +28,17 @@ public class ReturnHubCommand extends Command {
|
||||
public void execute(@NotNull CommandSender commandSender, String[] strings) {
|
||||
// 检查玩家所属服务器
|
||||
String playerName = commandSender.getName();
|
||||
ServerInfo serverInfo = plugin.getProxy().getPlayer(playerName).getServer().getInfo();
|
||||
if (VariableStorage.getLoginServer().contains(serverInfo.getName())) {
|
||||
if (commandSender instanceof ProxiedPlayer) {
|
||||
String userServerInfo = plugin.getProxy().getPlayer(playerName).getServer().getInfo().getName();
|
||||
if (VariableStorage.getLoginServer().contains(userServerInfo)) {
|
||||
commandSender.sendMessage(VariableStorage.getPrefix() + "登录服无权限传送");
|
||||
} else {
|
||||
plugin.getProxy().getPlayer(playerName).connect(plugin.getProxy().getServerInfo("登陆大厅"));
|
||||
Random random = new Random();
|
||||
int getKey = random.nextInt(VariableStorage.getLobbyServer().size());
|
||||
plugin.getProxy().getPlayer(playerName).connect(plugin.getProxy().getServerInfo((String) VariableStorage.getLobbyServer().get(getKey)));
|
||||
}
|
||||
} else {
|
||||
commandSender.sendMessage(VariableStorage.getPrefix() + "该指令只允许玩家使用");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -62,6 +62,9 @@ public class SendToServerCommand extends Command {
|
||||
ServerInfo serverInfo = plugin.getProxy().getServers().get(strings[0]);
|
||||
if (serverInfo != null) {
|
||||
ProxiedPlayer player = plugin.getProxy().getPlayer(strings[1]);
|
||||
if (commandSender instanceof ProxiedPlayer) {
|
||||
ServerInfo serverName = plugin.getProxy().getPlayer(commandSender.getName()).getServer().getInfo();
|
||||
if (!VariableStorage.getLoginServer().contains(serverName.getName())) {
|
||||
// 玩家是否已链接
|
||||
if (player != null) {
|
||||
if (player.isConnected()) {
|
||||
@ -78,14 +81,37 @@ public class SendToServerCommand extends Command {
|
||||
} else {
|
||||
commandSender.sendMessage(VariableStorage.getPrefix() + "玩家 " + strings[1] + " 不在线");
|
||||
}
|
||||
} else {
|
||||
commandSender.sendMessage(VariableStorage.getPrefix() + "登录服禁止进行服务器跳转");
|
||||
}
|
||||
} else {
|
||||
// 玩家是否已链接
|
||||
if (player != null) {
|
||||
if (player.isConnected()) {
|
||||
ServerInfo playerServer = player.getServer().getInfo();
|
||||
if (playerServer != serverInfo) {
|
||||
player.connect(serverInfo);
|
||||
commandSender.sendMessage(VariableStorage.getPrefix() + "已将 " + player.getName() + " 用户传送到 " + serverInfo.getName() + " 服务器");
|
||||
} else {
|
||||
commandSender.sendMessage(VariableStorage.getPrefix() + "玩家 " + player.getName() + " 正处于 " + playerServer.getName() + " 服务器中");
|
||||
}
|
||||
} else {
|
||||
commandSender.sendMessage(VariableStorage.getPrefix() + "玩家 " + player.getName() + " 不在线");
|
||||
}
|
||||
} else {
|
||||
commandSender.sendMessage(VariableStorage.getPrefix() + "玩家 " + strings[1] + " 不在线");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
commandSender.sendMessage(VariableStorage.getPrefix() + "服务器不存在");
|
||||
}
|
||||
} else {
|
||||
commandSender.sendMessage(VariableStorage.getPrefix() + "您不是管理员,无权限操作玩家");
|
||||
}
|
||||
}
|
||||
break;
|
||||
default: {
|
||||
commandSender.sendMessage(VariableStorage.getPrefix() + "参数无效");
|
||||
commandSender.sendMessage(VariableStorage.getPrefix() + "使用方法 /sto <ServerName> [player]");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -37,6 +37,17 @@ public class ServerEnable {
|
||||
System.out.println("§9§l§m=]=======§2 Bungee§aCross §9§l§m========[=");
|
||||
}
|
||||
|
||||
public void serverReload() {
|
||||
this.getConfig();
|
||||
this.getLang();
|
||||
|
||||
System.out.println(VariableStorage.getPrefix() + "§c配置文件重载完毕");
|
||||
System.out.println("§9§l§m=]=======§2 Bungee§aCross §9§l§m========[=");
|
||||
System.out.println("§6作者:§e" + BungeeCross.getAUTHOR());
|
||||
System.out.println("§9版本:§d" + BungeeCross.getVERSION());
|
||||
System.out.println("§9§l§m=]=======§2 Bungee§aCross §9§l§m========[=");
|
||||
}
|
||||
|
||||
private void getLang() {
|
||||
|
||||
}
|
||||
@ -95,8 +106,12 @@ public class ServerEnable {
|
||||
VariableStorage.setLobbyServer(config.getList("bungee-cord.server-login"));
|
||||
}
|
||||
// 获取登陆提醒
|
||||
if (config.getString("bungee-cord.login-reminder") != null && !config.getString("bungee-cord.login-reminder").isEmpty()) {
|
||||
if (config.getString("bungee-cord.login-reminder") != null) {
|
||||
VariableStorage.setBungeeCordReminder(config.getBoolean("bungee-cord.login-reminder"));
|
||||
} else {
|
||||
config.set("bungee-cord.login-reminder", true);
|
||||
VariableStorage.setBungeeCordReminder(true);
|
||||
}
|
||||
if (config.getString("bungee-cord.join-message") != null && !config.getString("bungee-cord.join-message").isEmpty()) {
|
||||
VariableStorage.setJoinMessage(config.getString("bungee-cord.join-message"));
|
||||
} else {
|
||||
@ -107,12 +122,8 @@ public class ServerEnable {
|
||||
} else {
|
||||
VariableStorage.setLeaveMessage("§7[§c-§7] §6%player%");
|
||||
}
|
||||
} else {
|
||||
config.set("bungee-cord.login-reminder", true);
|
||||
VariableStorage.setBungeeCordReminder(true);
|
||||
}
|
||||
// 是否开启管理员静默登录
|
||||
if (config.getString("bungee-cord.login-silent") != null && !config.getString("bungee-cord.login-silent").isEmpty()) {
|
||||
if (config.getString("bungee-cord.login-silent") != null) {
|
||||
VariableStorage.setBungeeSilent(config.getBoolean("bungee-cord.login-silent"));
|
||||
} else {
|
||||
config.set("bungee-cord.login-silent", true);
|
||||
|
@ -28,4 +28,20 @@ public class VariableStorage {
|
||||
@Getter
|
||||
@Setter
|
||||
private static List<?> lobbyServer;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
private static boolean bungeeCordReminder;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
private static String joinMessage;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
private static String leaveMessage;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
private static boolean bungeeSilent;
|
||||
}
|
||||
|
@ -1,11 +1,14 @@
|
||||
package com.frontleaves.bungeecross.events;
|
||||
|
||||
import com.frontleaves.bungeecross.BungeeCross;
|
||||
import com.frontleaves.bungeecross.configuration.VariableStorage;
|
||||
import net.md_5.bungee.api.event.ServerConnectedEvent;
|
||||
import net.md_5.bungee.api.event.LoginEvent;
|
||||
import net.md_5.bungee.api.plugin.Listener;
|
||||
import net.md_5.bungee.event.EventHandler;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* 玩家登录服务器事件
|
||||
*
|
||||
@ -14,9 +17,25 @@ import org.jetbrains.annotations.NotNull;
|
||||
* @since v1.0-SNAPSHOT
|
||||
*/
|
||||
public class PlayerJoinProxyEvent implements Listener {
|
||||
private final BungeeCross plugin;
|
||||
|
||||
public PlayerJoinProxyEvent(BungeeCross bc) {
|
||||
plugin = bc;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerJoinProxy(@NotNull ServerConnectedEvent event) {
|
||||
event.getPlayer().connect(VariableStorage.getProxyServer().get("login_1"));
|
||||
public void onPlayerJoinProxy(@NotNull LoginEvent event) {
|
||||
// 发送用户登录信息
|
||||
String loginServerMessage = VariableStorage.getJoinMessage();
|
||||
if (VariableStorage.isBungeeCordReminder()) {
|
||||
if (!VariableStorage.isBungeeSilent()) {
|
||||
plugin.getProxy().getPlayers().forEach(proxiedPlayer -> {
|
||||
String message = Pattern.compile("%player%").matcher(loginServerMessage).replaceAll(event.getConnection().getName());
|
||||
proxiedPlayer.sendMessage(message);
|
||||
});
|
||||
}
|
||||
}
|
||||
String message = Pattern.compile("%player%").matcher(loginServerMessage).replaceAll(event.getConnection().getName());
|
||||
System.out.println(message);
|
||||
}
|
||||
}
|
||||
|
@ -1,10 +1,14 @@
|
||||
package com.frontleaves.bungeecross.events;
|
||||
|
||||
import net.md_5.bungee.api.event.ServerDisconnectEvent;
|
||||
import com.frontleaves.bungeecross.BungeeCross;
|
||||
import com.frontleaves.bungeecross.configuration.VariableStorage;
|
||||
import net.md_5.bungee.api.event.PlayerDisconnectEvent;
|
||||
import net.md_5.bungee.api.plugin.Listener;
|
||||
import net.md_5.bungee.event.EventHandler;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* 玩家离开服务器事件
|
||||
*
|
||||
@ -13,9 +17,25 @@ import org.jetbrains.annotations.NotNull;
|
||||
* @since v1.0-SNAPSHOT
|
||||
*/
|
||||
public class PlayerLeaveProxyEvent implements Listener {
|
||||
private final BungeeCross plugin;
|
||||
|
||||
public PlayerLeaveProxyEvent(BungeeCross bc) {
|
||||
plugin = bc;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerDisconnectEvent(@NotNull ServerDisconnectEvent event) {
|
||||
|
||||
public void onPlayerDisconnectEvent(@NotNull PlayerDisconnectEvent event) {
|
||||
// 发送用户登录信息
|
||||
String leaveServerMessage = VariableStorage.getLeaveMessage();
|
||||
if (VariableStorage.isBungeeCordReminder()) {
|
||||
if (!VariableStorage.isBungeeSilent()) {
|
||||
plugin.getProxy().getPlayers().forEach(proxiedPlayer -> {
|
||||
String message = Pattern.compile("%player%").matcher(leaveServerMessage).replaceAll(event.getPlayer().getName());
|
||||
proxiedPlayer.sendMessage(message);
|
||||
});
|
||||
}
|
||||
}
|
||||
String message = Pattern.compile("%player%").matcher(leaveServerMessage).replaceAll(event.getPlayer().getName());
|
||||
System.out.println(message);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user