diff --git a/pom.xml b/pom.xml
index e30fc85..6fcb1dc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
4.0.0
MiaoChat
- 1.9.3
+ 1.9.5
pw.yumc
@@ -13,8 +13,9 @@
- §a正式版本 §bv1.9.3 §b兼容 1.17 版本
+ §a正式版本 §bv1.9.5 §b兼容 1.15 版本
+ §621-06-20 §a增强: 兼容 1.18 版本 兼容新版PAPI;
§621-06-20 §a增强: 兼容 1.17 版本;
§620-10-10 §c修复: 1.16.3聊天包格式调整的问题;
§620-04-10 §c修复: L10N 本地化组件报错的问题;
diff --git a/src/main/java/pw/yumc/MiaoChat/MiaoChat.java b/src/main/java/pw/yumc/MiaoChat/MiaoChat.java
index 8ab9071..0f58ff3 100644
--- a/src/main/java/pw/yumc/MiaoChat/MiaoChat.java
+++ b/src/main/java/pw/yumc/MiaoChat/MiaoChat.java
@@ -1,5 +1,9 @@
package pw.yumc.MiaoChat;
+import com.google.common.io.ByteArrayDataInput;
+import com.google.common.io.ByteArrayDataOutput;
+import com.google.common.io.ByteStreams;
+import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.command.CommandSender;
@@ -11,12 +15,7 @@ import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.plugin.messaging.PluginMessageListener;
-
-import com.google.common.io.ByteArrayDataInput;
-import com.google.common.io.ByteArrayDataOutput;
-import com.google.common.io.ByteStreams;
-import me.clip.placeholderapi.PlaceholderAPI;
-import me.clip.placeholderapi.PlaceholderHook;
+import org.jetbrains.annotations.NotNull;
import pw.yumc.MiaoChat.config.ChatConfig;
import pw.yumc.MiaoChat.listeners.ChatListener;
import pw.yumc.YumCore.bukkit.Log;
@@ -32,6 +31,7 @@ public class MiaoChat extends JavaPlugin implements Executor, PluginMessageListe
private FileConfig cfg;
private ChatConfig chatConfig;
private String ServerName;
+ private PlaceholderExpansion expansion;
public ChatConfig getChatConfig() {
return chatConfig;
@@ -65,6 +65,11 @@ public class MiaoChat extends JavaPlugin implements Executor, PluginMessageListe
L10N.getName(new ItemStack(Material.AIR));
}
+ @Override
+ public void onDisable() {
+ this.expansion.unregister();
+ }
+
private void enableBungeeCord() {
if (getChatConfig().isBungeeCord()) {
Log.i("已开启 BungeeCord 模式!");
@@ -79,19 +84,40 @@ public class MiaoChat extends JavaPlugin implements Executor, PluginMessageListe
}
private void hookPlaceholderAPI() {
- PlaceholderAPI.registerPlaceholderHook("mct", new PlaceholderHook() {
+ this.expansion = new PlaceholderExpansion() {
@Override
- public String onPlaceholderRequest(Player player, String s) {
- switch (s.toLowerCase()) {
- case "server":
- return getChatConfig().getServername();
- case "bserver":
- return ServerName;
+ public @NotNull String getIdentifier() {
+ return "mct";
+ }
+
+ @Override
+ public @NotNull String getAuthor() {
+ return "MiaoWoo";
+ }
+
+ @Override
+ public @NotNull String getVersion() {
+ return "1.0";
+ }
+
+ @Override
+ public boolean persist() {
+ return true;
+ }
+
+ @Override
+ public String onPlaceholderRequest(Player player, @NotNull String params) {
+ switch (params.toLowerCase()) {
+ case "server":
+ return getChatConfig().getServername();
+ case "bserver":
+ return ServerName;
default:
}
return "未知的参数";
}
- });
+ };
+ this.expansion.register();
}
@Override
diff --git a/src/main/java/pw/yumc/MiaoChat/MiaoChatBungee.java b/src/main/java/pw/yumc/MiaoChat/MiaoChatBungee.java
index 4fa7f1b..13f9545 100644
--- a/src/main/java/pw/yumc/MiaoChat/MiaoChatBungee.java
+++ b/src/main/java/pw/yumc/MiaoChat/MiaoChatBungee.java
@@ -1,11 +1,5 @@
package pw.yumc.MiaoChat;
-import java.net.InetSocketAddress;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.config.ServerInfo;
import net.md_5.bungee.api.event.PluginMessageEvent;
@@ -17,6 +11,12 @@ import net.md_5.bungee.event.EventHandler;
import pw.yumc.MiaoChat.bungee.FileConfig;
import pw.yumc.MiaoChat.bungee.Log;
+import java.net.InetSocketAddress;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
/**
* @author MiaoWoo
*/
@@ -49,21 +49,20 @@ public class MiaoChatBungee extends Plugin implements Listener {
Map temp = getProxy().getServers();
Set unused = new HashSet<>(temp.values());
Configuration groupSel = config.getSection("Groups");
+ // 读取所有的分组名称
groupSel.getKeys().forEach(groupName -> {
+ // 获取每个分组的服务器名称
Set servers = new HashSet<>(groupSel.getStringList(groupName));
+ // 新建当前分组数组
Set serverInfos = new HashSet<>();
servers.forEach(s -> {
if (temp.containsKey(s)) {
- ServerInfo serverInfo = temp.get(s);
- unused.remove(serverInfo);
- servers.forEach(ss -> {
- if (temp.containsKey(ss) && !ss.equals(s)) {
- serverInfos.add(temp.get(ss));
- }
- });
- groups.put(serverInfo.getAddress(), serverInfos);
+ ServerInfo info = temp.get(s);
+ unused.remove(info);
+ serverInfos.add(info);
}
});
+ serverInfos.forEach(serverInfo -> groups.put(serverInfo.getAddress(), serverInfos));
});
unused.forEach(serverInfo -> groups.put(serverInfo.getAddress(), unused));
}