From 53058a3f9b946326bcf57735b400fb9cd985eb36 Mon Sep 17 00:00:00 2001 From: VAKiliner <119078586+vakiliner@users.noreply.github.com> Date: Tue, 10 Feb 2026 21:18:20 +0300 Subject: [PATCH] feat: ChatServer.isSingleplayerOwner(GameProfile) --- .../chatcomponentapi/base/ChatServer.java | 12 +++++++++++- .../craftbukkit/BukkitChatServer.java | 18 ++++++++++++++++++ .../fabric/FabricChatServer.java | 17 +++++++++++++++++ .../forge/ForgeChatServer.java | 17 +++++++++++++++++ 4 files changed, 63 insertions(+), 1 deletion(-) diff --git a/base/src/main/java/vakiliner/chatcomponentapi/base/ChatServer.java b/base/src/main/java/vakiliner/chatcomponentapi/base/ChatServer.java index 7db2c7b..7b3a9a2 100644 --- a/base/src/main/java/vakiliner/chatcomponentapi/base/ChatServer.java +++ b/base/src/main/java/vakiliner/chatcomponentapi/base/ChatServer.java @@ -1,5 +1,15 @@ package vakiliner.chatcomponentapi.base; +import com.mojang.authlib.GameProfile; + public interface ChatServer { - public void execute(IChatPlugin plugin, Runnable runnable); + boolean isDedicatedServer(); + + String getSingleplayerName(); + + boolean isSingleplayer(); + + boolean isSingleplayerOwner(GameProfile gameProfile); + + void execute(IChatPlugin plugin, Runnable runnable); } \ No newline at end of file diff --git a/craftbukkit/src/main/java/vakiliner/chatcomponentapi/craftbukkit/BukkitChatServer.java b/craftbukkit/src/main/java/vakiliner/chatcomponentapi/craftbukkit/BukkitChatServer.java index 2594e97..ee2ac5a 100644 --- a/craftbukkit/src/main/java/vakiliner/chatcomponentapi/craftbukkit/BukkitChatServer.java +++ b/craftbukkit/src/main/java/vakiliner/chatcomponentapi/craftbukkit/BukkitChatServer.java @@ -2,6 +2,7 @@ import java.util.Objects; import org.bukkit.Server; +import com.mojang.authlib.GameProfile; import vakiliner.chatcomponentapi.base.ChatServer; import vakiliner.chatcomponentapi.base.IChatPlugin; @@ -18,6 +19,23 @@ public Server getImpl() { return this.server; } + public boolean isDedicatedServer() { + return true; + } + + // Not supported + public String getSingleplayerName() { + return null; + } + + public boolean isSingleplayer() { + return this.getSingleplayerName() != null; + } + + public boolean isSingleplayerOwner(GameProfile gameProfile) { + return false; + } + public void execute(IChatPlugin plugin, Runnable runnable) { this.parser.execute(this.server.getScheduler(), plugin, runnable); } diff --git a/fabric/src/main/java/vakiliner/chatcomponentapi/fabric/FabricChatServer.java b/fabric/src/main/java/vakiliner/chatcomponentapi/fabric/FabricChatServer.java index b4991c6..f6e0070 100644 --- a/fabric/src/main/java/vakiliner/chatcomponentapi/fabric/FabricChatServer.java +++ b/fabric/src/main/java/vakiliner/chatcomponentapi/fabric/FabricChatServer.java @@ -1,6 +1,7 @@ package vakiliner.chatcomponentapi.fabric; import java.util.Objects; +import com.mojang.authlib.GameProfile; import net.minecraft.server.MinecraftServer; import vakiliner.chatcomponentapi.base.ChatServer; import vakiliner.chatcomponentapi.base.IChatPlugin; @@ -18,6 +19,22 @@ public MinecraftServer getImpl() { return this.server; } + public boolean isDedicatedServer() { + return this.server.isDedicatedServer(); + } + + public String getSingleplayerName() { + return this.server.getSingleplayerName(); + } + + public boolean isSingleplayer() { + return this.server.isSingleplayer(); + } + + public boolean isSingleplayerOwner(GameProfile gameProfile) { + return this.server.isSingleplayerOwner(gameProfile); + } + public void execute(IChatPlugin plugin, Runnable runnable) { this.parser.execute(this.server, plugin, runnable); } diff --git a/forge/src/main/java/vakiliner/chatcomponentapi/forge/ForgeChatServer.java b/forge/src/main/java/vakiliner/chatcomponentapi/forge/ForgeChatServer.java index 01a11e4..016f97c 100644 --- a/forge/src/main/java/vakiliner/chatcomponentapi/forge/ForgeChatServer.java +++ b/forge/src/main/java/vakiliner/chatcomponentapi/forge/ForgeChatServer.java @@ -1,6 +1,7 @@ package vakiliner.chatcomponentapi.forge; import java.util.Objects; +import com.mojang.authlib.GameProfile; import net.minecraft.server.MinecraftServer; import vakiliner.chatcomponentapi.base.ChatServer; import vakiliner.chatcomponentapi.base.IChatPlugin; @@ -18,6 +19,22 @@ public MinecraftServer getImpl() { return this.server; } + public boolean isDedicatedServer() { + return this.server.isDedicatedServer(); + } + + public String getSingleplayerName() { + return this.server.getSingleplayerName(); + } + + public boolean isSingleplayer() { + return this.server.isSingleplayer(); + } + + public boolean isSingleplayerOwner(GameProfile gameProfile) { + return this.server.isSingleplayerOwner(gameProfile); + } + public void execute(IChatPlugin plugin, Runnable runnable) { this.parser.execute(this.server, plugin, runnable); }