配置文件修改

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 PluginInfoCommand("bungeecross"));
getProxy().getPluginManager().registerCommand(this, new ProxyServerListCommand("server-list")); 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("serverTo", this));
getProxy().getPluginManager().registerCommand(this, new SendToServerCommand("sto", this));
// 注册监听器 // 注册监听器
getProxy().getPluginManager().registerListener(this, new PlayerJoinProxyEvent()); getProxy().getPluginManager().registerListener(this, new PlayerJoinProxyEvent());
} }

View File

@ -2,6 +2,7 @@ package com.frontleaves.bungeecross.configuration;
import com.frontleaves.bungeecross.BungeeCross; import com.frontleaves.bungeecross.BungeeCross;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import net.md_5.bungee.api.config.ServerInfo;
import net.md_5.bungee.config.Configuration; import net.md_5.bungee.config.Configuration;
import net.md_5.bungee.config.ConfigurationProvider; import net.md_5.bungee.config.ConfigurationProvider;
import net.md_5.bungee.config.YamlConfiguration; import net.md_5.bungee.config.YamlConfiguration;
@ -26,8 +27,18 @@ public class ServerEnable {
*/ */
public void serverStart() { public void serverStart() {
this.getConfig(); this.getConfig();
this.getLang();
this.getProxyServer(); this.getProxyServer();
System.out.println(VariableStorage.getPrefix() + "§c配置文件加载完毕"); 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"); File configFile = new File(plugin.getDataFolder(), "config.yml");
if (!configFile.exists()) { if (!configFile.exists()) {
saveDefaultConfig(configFile); saveDefaultConfigYmlFile(configFile);
plugin.getLogger().info("配置文件创建成功"); plugin.getLogger().info("配置文件创建成功");
} }
} }
@ -64,24 +75,96 @@ public class ServerEnable {
} }
// 读取配置文件 // 读取配置文件
if (config.getString("server_prefix") != null && !config.getString("server_prefix").isEmpty()) { if (config.getString("bungee-cord.server-prefix") != null && !config.getString("bungee-cord.server-prefix").isEmpty()) {
VariableStorage.setPrefix(config.getString("server_prefix")); VariableStorage.setPrefix(config.getString("bungee-cord.server-prefix"));
} else { } else {
VariableStorage.setPrefix("§7[§2Bungee§aCross§7] §r"); VariableStorage.setPrefix("§7[§2Bungee§aCross§7] §r");
} }
// 读取登录服务器 // 读取登录服务器
if (config.getList("server_login").isEmpty()) { if (config.getList("bungee-cord.server-login").isEmpty()) {
this.reloadTheDefaultConfig(configFile); this.reloadTheDefaultConfig(configFile);
return; return;
} else { } 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); this.reloadTheDefaultConfig(configFile);
return;
} else { } 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 * @param configFile File
*/ */
private void saveDefaultConfig(@NotNull File configFile) { private void saveDefaultConfigYmlFile(@NotNull File configFile) {
// 将默认配置文件从资源中复制到插件目录 // 将默认配置文件从资源中复制到插件目录
try (InputStream inputStream = plugin.getResourceAsStream("config.yml")) { try (InputStream inputStream = plugin.getResourceAsStream("config.yml")) {
Files.copy(inputStream, configFile.toPath()); Files.copy(inputStream, configFile.toPath());
@ -104,6 +187,15 @@ public class ServerEnable {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
} }
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) { private void reloadTheDefaultConfig(@NotNull File configFile) {
File newConfigFile = new File(plugin.getDataFolder(), "config.old.yml"); File newConfigFile = new File(plugin.getDataFolder(), "config.old.yml");
if (newConfigFile.exists()) {
newConfigFile.delete();
}
try { try {
Files.copy(configFile.toPath(), newConfigFile.toPath()); Files.copy(configFile.toPath(), newConfigFile.toPath());
if (configFile.delete()) { if (configFile.delete()) {
this.saveDefaultConfig(configFile); this.saveDefaultConfigYmlFile(configFile);
plugin.getLogger().warning("配置文件错误,已重新生成新的文件"); plugin.getLogger().warning("配置文件错误,已重新生成新的文件");
plugin.getLogger().info("旧配置文件已生成 config.old.yml"); plugin.getLogger().info("旧配置文件已生成 config.old.yml");
} }

View File

@ -1,15 +1,59 @@
# BungeeCross # ##################################
# PluginName: BungeeCross
# Author: 筱锋xiao_lfeng # Author: 筱锋xiao_lfeng
# Version: v1.0-SNAPSHOT # Version: v1.0-SNAPSHOT
# ##################################
# 显示前缀 # ##################################
server_prefix: "§7[§2Bungee§aCross§7] §r" # 插件配置
# ##################################
# 登录服务器列表 # 授权码
server_login: authorization-code: #请勿填写
- login_1
- login_2
# 大厅服务器列表 # ##################################
server_lobby: # BungeeCord 服务端配置
- 登陆大厅 # ##################################
bungee-cord:
# 前缀配置
server-prefix: "§7[§2Bungee§aCross§7] §r"
# 登录服务器列表
server-login:
- login_1
- login_2
# 大厅服务器列表
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