配置文件修改

This commit is contained in:
筱锋xiao_lfeng 2023-10-12 20:53:57 +08:00
parent 44691d0ae6
commit b79a462a1d
4 changed files with 160 additions and 20 deletions

View File

@ -28,8 +28,9 @@ public final class BungeeCross extends Plugin {
// 注册指令
getProxy().getPluginManager().registerCommand(this, new PluginInfoCommand("bungeecross"));
getProxy().getPluginManager().registerCommand(this, new ProxyServerListCommand("server-list"));
getProxy().getPluginManager().registerCommand(this, new ReturnHubCommand("hub", this));
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());
}

View File

@ -2,6 +2,7 @@ package com.frontleaves.bungeecross.configuration;
import com.frontleaves.bungeecross.BungeeCross;
import lombok.RequiredArgsConstructor;
import net.md_5.bungee.api.config.ServerInfo;
import net.md_5.bungee.config.Configuration;
import net.md_5.bungee.config.ConfigurationProvider;
import net.md_5.bungee.config.YamlConfiguration;
@ -26,8 +27,18 @@ public class ServerEnable {
*/
public void serverStart() {
this.getConfig();
this.getLang();
this.getProxyServer();
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() {
}
/**
@ -43,7 +54,7 @@ public class ServerEnable {
}
File configFile = new File(plugin.getDataFolder(), "config.yml");
if (!configFile.exists()) {
saveDefaultConfig(configFile);
saveDefaultConfigYmlFile(configFile);
plugin.getLogger().info("配置文件创建成功");
}
}
@ -64,24 +75,96 @@ public class ServerEnable {
}
// 读取配置文件
if (config.getString("server_prefix") != null && !config.getString("server_prefix").isEmpty()) {
VariableStorage.setPrefix(config.getString("server_prefix"));
if (config.getString("bungee-cord.server-prefix") != null && !config.getString("bungee-cord.server-prefix").isEmpty()) {
VariableStorage.setPrefix(config.getString("bungee-cord.server-prefix"));
} else {
VariableStorage.setPrefix("§7[§2Bungee§aCross§7] §r");
}
// 读取登录服务器
if (config.getList("server_login").isEmpty()) {
if (config.getList("bungee-cord.server-login").isEmpty()) {
this.reloadTheDefaultConfig(configFile);
return;
} else {
VariableStorage.setLoginServer(config.getList("server_login"));
VariableStorage.setLoginServer(config.getList("bungee-cord.server-login"));
}
// 读取大厅服务器
if (config.getList("server_lobby").isEmpty()) {
if (config.getList("bungee-cord.server-lobby").isEmpty()) {
this.reloadTheDefaultConfig(configFile);
return;
} else {
VariableStorage.setLobbyServer(config.getList("server_login"));
VariableStorage.setLobbyServer(config.getList("bungee-cord.server-login"));
}
// 获取登陆提醒
if (config.getString("bungee-cord.login-reminder") != null && !config.getString("bungee-cord.login-reminder").isEmpty()) {
VariableStorage.setBungeeCordReminder(config.getBoolean("bungee-cord.login-reminder"));
if (config.getString("bungee-cord.join-message") != null && !config.getString("bungee-cord.join-message").isEmpty()) {
VariableStorage.setJoinMessage(config.getString("bungee-cord.join-message"));
} else {
VariableStorage.setJoinMessage("§7[§a+§7] §6%player%");
}
if (config.getString("bungee-cord.leave-message") != null && !config.getString("bungee-cord.leave-message").isEmpty()) {
VariableStorage.setLeaveMessage(config.getString("bungee-cord.leave-message"));
} 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()) {
VariableStorage.setBungeeSilent(config.getBoolean("bungee-cord.login-silent"));
} else {
config.set("bungee-cord.login-silent", true);
VariableStorage.setBungeeSilent(true);
}
// 获取服务器列表
plugin.getProxy().getServers().forEach((string, serverInfo) -> {
if (config.getSection("server").getKeys().contains(string)) {
if (config.getString("server." + string + ".display-name") == null && config.getString("server." + string + ".display-name").isEmpty()) {
this.reloadTheDefaultConfig(configFile);
return;
}
if (config.getString("server." + string + ".bungee-join-server-reminder") == null && config.getString("server." + string + ".bungee-join-server-reminder").isEmpty()) {
this.reloadTheDefaultConfig(configFile);
return;
}
if (config.getString("server." + string + ".join-server-inform.join-enable") == null && config.getString("server." + string + ".join-server-inform.join-enable").isEmpty()) {
this.reloadTheDefaultConfig(configFile);
return;
}
if (config.getString("server." + string + ".join-server-inform.leave-enable") == null && config.getString("server." + string + ".join-server-inform.leave-enable").isEmpty()) {
this.reloadTheDefaultConfig(configFile);
return;
}
if (config.getString("server." + string + ".join-server-inform.join-message") == null && config.getString("server." + string + ".join-server-inform.join-message").isEmpty()) {
this.reloadTheDefaultConfig(configFile);
return;
}
if (config.getString("server." + string + ".join-server-inform.leave-message") == null && config.getString("server." + string + ".join-server-inform.leave-message").isEmpty()) {
this.reloadTheDefaultConfig(configFile);
}
} else {
config.set("server." + serverInfo.getName() + ".display-name", serverInfo.getName());
config.set("server." + serverInfo.getName() + ".bungee-join-server-reminder", true);
config.set("server." + serverInfo.getName() + ".join-server-inform.join-enable", true);
config.set("server." + serverInfo.getName() + ".join-server-inform.leave-enable", true);
config.set("server." + serverInfo.getName() + ".join-server-inform.join-message", "[+] %player% 加入到 %server_display% 服务器");
config.set("server." + serverInfo.getName() + ".join-server-inform.leave-message", "[-] %player% 加入到 %server_display% 服务器");
}
});
try {
ConfigurationProvider.getProvider(YamlConfiguration.class).save(config, configFile);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
private boolean checkServerNameCorrect(String serverName) {
ServerInfo serverInfo = plugin.getProxy().getServerInfo(serverName);
return serverInfo != null;
}
/**
@ -96,7 +179,7 @@ public class ServerEnable {
*
* @param configFile File
*/
private void saveDefaultConfig(@NotNull File configFile) {
private void saveDefaultConfigYmlFile(@NotNull File configFile) {
// 将默认配置文件从资源中复制到插件目录
try (InputStream inputStream = plugin.getResourceAsStream("config.yml")) {
Files.copy(inputStream, configFile.toPath());
@ -105,6 +188,15 @@ public class ServerEnable {
}
}
private void saveDefaultLangYmlFile(@NotNull File langFile) {
// 将默认配置文件从资源中复制到插件目录
try (InputStream inputStream = plugin.getResourceAsStream("lang.yml")) {
Files.copy(inputStream, langFile.toPath());
} catch (IOException e) {
throw new RuntimeException(e);
}
}
/**
* 重新载入新的配置文件
*
@ -112,10 +204,13 @@ public class ServerEnable {
*/
private void reloadTheDefaultConfig(@NotNull File configFile) {
File newConfigFile = new File(plugin.getDataFolder(), "config.old.yml");
if (newConfigFile.exists()) {
newConfigFile.delete();
}
try {
Files.copy(configFile.toPath(), newConfigFile.toPath());
if (configFile.delete()) {
this.saveDefaultConfig(configFile);
this.saveDefaultConfigYmlFile(configFile);
plugin.getLogger().warning("配置文件错误,已重新生成新的文件");
plugin.getLogger().info("旧配置文件已生成 config.old.yml");
}

View File

@ -1,15 +1,59 @@
# BungeeCross
# ##################################
# PluginName: BungeeCross
# Author: 筱锋xiao_lfeng
# Version: v1.0-SNAPSHOT
# ##################################
# 显示前缀
server_prefix: "§7[§2Bungee§aCross§7] §r"
# ##################################
# 插件配置
# ##################################
# 授权码
authorization-code: #请勿填写
# ##################################
# BungeeCord 服务端配置
# ##################################
bungee-cord:
# 前缀配置
server-prefix: "§7[§2Bungee§aCross§7] §r"
# 登录服务器列表
server_login:
server-login:
- login_1
- login_2
# 大厅服务器列表
server_lobby:
server-lobby:
- 登陆大厅
# 是否开启登陆提醒
login-reminder: true
# 加入提醒
join-message: "[+] %player%"
# 离开提醒
leave-message: "[-] %player%"
# 是否开启有权限的人静默登录
login-silent: true
# ##################################
# Server 子服务端配置
# ##################################
server:
login_1:
# 展示名字
display-name: "登录一服"
# 是否允许 BungeeCord 登录提醒
bungee-join-server-reminder: false
join-server-inform:
join-enable: true
leave-enable: true
join-message: "[+] %player% 加入到 %server_display% 服务器"
leave-message: "[-] %player% 离开了 %server_display% 服务器"
login_2:
# 展示名字
display-name: "登录二服"
# 是否允许 BungeeCord 登录提醒
bungee-join-server-reminder: false
join-server-inform:
join-enable: true
leave-enable: true
join-message: "[+] %player% 加入到 %server_display% 服务器"
leave-message: "[-] %player% 离开了 %server_display% 服务器"

View File