Defer legacy component handling on 1.7 servers to Kyori lib

This commit is contained in:
Luck 2020-04-05 15:48:07 +01:00
parent 141d3e26ea
commit 94809c2a66
No known key found for this signature in database
GPG Key ID: EFA9B3EC5FD90F8B
2 changed files with 5 additions and 20 deletions

View File

@ -25,7 +25,6 @@
package me.lucko.luckperms.bukkit;
import me.lucko.luckperms.bukkit.util.CraftBukkitImplementation;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
import me.lucko.luckperms.common.sender.Sender;
import me.lucko.luckperms.common.sender.SenderFactory;
@ -78,12 +77,13 @@ public class BukkitSenderFactory extends SenderFactory<CommandSender> {
@Override
protected void sendMessage(CommandSender sender, Component message) {
if (CraftBukkitImplementation.isChatCompatible() && sender instanceof Player) {
if (sender instanceof Player) {
TextAdapter.sendComponent(sender, message);
} else {
// Fallback to legacy format
sendMessage(sender, TextUtils.toLegacy(message));
return;
}
// Fallback to legacy format
sendMessage(sender, TextUtils.toLegacy(message));
}
@Override

View File

@ -34,32 +34,17 @@ public final class CraftBukkitImplementation {
private CraftBukkitImplementation() {}
private static final String SERVER_PACKAGE_VERSION;
private static final boolean CHAT_COMPATIBLE;
static {
Class<?> server = Bukkit.getServer().getClass();
Matcher matcher = Pattern.compile("^org\\.bukkit\\.craftbukkit\\.(\\w+)\\.CraftServer$").matcher(server.getName());
if (matcher.matches()) {
SERVER_PACKAGE_VERSION = '.' + matcher.group(1) + '.';
CHAT_COMPATIBLE = !SERVER_PACKAGE_VERSION.startsWith(".v1_7_");
} else {
SERVER_PACKAGE_VERSION = ".";
CHAT_COMPATIBLE = true;
}
}
public static boolean isChatCompatible() {
return CHAT_COMPATIBLE;
}
public static String nms(String className) {
return "net.minecraft.server" + SERVER_PACKAGE_VERSION + className;
}
public static Class<?> nmsClass(String className) throws ClassNotFoundException {
return Class.forName(nms(className));
}
public static String obc(String className) {
return "org.bukkit.craftbukkit" + SERVER_PACKAGE_VERSION + className;
}