diff --git a/bukkit/src/main/java/org/bukkit/plugin/Plugin.java b/bukkit/src/main/java/org/bukkit/plugin/Plugin.java new file mode 100644 index 0000000..2562fd9 --- /dev/null +++ b/bukkit/src/main/java/org/bukkit/plugin/Plugin.java @@ -0,0 +1,4 @@ +package org.bukkit.plugin; + +public interface Plugin { +} \ No newline at end of file diff --git a/bukkit/src/main/java/org/bukkit/plugin/java/JavaPlugin.java b/bukkit/src/main/java/org/bukkit/plugin/java/JavaPlugin.java index b293890..2dbb5b5 100644 --- a/bukkit/src/main/java/org/bukkit/plugin/java/JavaPlugin.java +++ b/bukkit/src/main/java/org/bukkit/plugin/java/JavaPlugin.java @@ -1,4 +1,6 @@ package org.bukkit.plugin.java; -public abstract class JavaPlugin { +import org.bukkit.plugin.Plugin; + +public abstract class JavaPlugin implements Plugin { } \ No newline at end of file diff --git a/bukkit/src/main/java/vakiliner/chatcomponentapi/ChatComponentAPIBukkitLoader.java b/bukkit/src/main/java/vakiliner/chatcomponentapi/ChatComponentAPIBukkitLoader.java index b533f27..9e16af4 100644 --- a/bukkit/src/main/java/vakiliner/chatcomponentapi/ChatComponentAPIBukkitLoader.java +++ b/bukkit/src/main/java/vakiliner/chatcomponentapi/ChatComponentAPIBukkitLoader.java @@ -1,12 +1,13 @@ package vakiliner.chatcomponentapi; +import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; -import vakiliner.chatcomponentapi.base.IChatPlugin; import vakiliner.chatcomponentapi.craftbukkit.BukkitParser; +import vakiliner.chatcomponentapi.craftbukkit.IBukkitChatPlugin; import vakiliner.chatcomponentapi.paper.PaperParser; import vakiliner.chatcomponentapi.spigot.SpigotParser; -public class ChatComponentAPIBukkitLoader extends JavaPlugin implements IChatPlugin { +public class ChatComponentAPIBukkitLoader extends JavaPlugin implements IBukkitChatPlugin { public static final BukkitParser PARSER; static { @@ -22,4 +23,8 @@ public class ChatComponentAPIBukkitLoader extends JavaPlugin implements IChatPlu } PARSER = impl; } + + public Plugin asPlugin() { + return this; + } } \ No newline at end of file diff --git a/bukkit/src/main/java/vakiliner/chatcomponentapi/craftbukkit/IBukkitChatPlugin.java b/bukkit/src/main/java/vakiliner/chatcomponentapi/craftbukkit/IBukkitChatPlugin.java new file mode 100644 index 0000000..b8c4eb1 --- /dev/null +++ b/bukkit/src/main/java/vakiliner/chatcomponentapi/craftbukkit/IBukkitChatPlugin.java @@ -0,0 +1,8 @@ +package vakiliner.chatcomponentapi.craftbukkit; + +import org.bukkit.plugin.Plugin; +import vakiliner.chatcomponentapi.base.IChatPlugin; + +public interface IBukkitChatPlugin extends IChatPlugin { + Plugin asPlugin(); +} \ No newline at end of file diff --git a/craftbukkit/src/main/java/vakiliner/chatcomponentapi/craftbukkit/BukkitParser.java b/craftbukkit/src/main/java/vakiliner/chatcomponentapi/craftbukkit/BukkitParser.java index a1bac59..b603a4e 100644 --- a/craftbukkit/src/main/java/vakiliner/chatcomponentapi/craftbukkit/BukkitParser.java +++ b/craftbukkit/src/main/java/vakiliner/chatcomponentapi/craftbukkit/BukkitParser.java @@ -7,7 +7,6 @@ import org.bukkit.Server; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import org.bukkit.plugin.Plugin; import org.bukkit.scheduler.BukkitScheduler; import org.bukkit.scoreboard.Team; import vakiliner.chatcomponentapi.base.BaseParser; @@ -39,14 +38,14 @@ public void sendMessage(CommandSender sender, ChatComponent component, ChatMessa } public void execute(BukkitScheduler scheduler, IChatPlugin plugin, Runnable runnable) { - if (plugin instanceof Plugin) { + if (plugin instanceof IBukkitChatPlugin) { if (!Bukkit.isPrimaryThread()) { - scheduler.runTask((Plugin) plugin, runnable); + scheduler.runTask(((IBukkitChatPlugin) plugin).asPlugin(), runnable); } else { runnable.run(); } } else { - throw new IllegalArgumentException("Invalid plugin"); + throw new ClassCastException("Invalid plugin"); } } diff --git a/craftbukkit/src/main/java/vakiliner/chatcomponentapi/craftbukkit/IBukkitChatPlugin.java b/craftbukkit/src/main/java/vakiliner/chatcomponentapi/craftbukkit/IBukkitChatPlugin.java new file mode 100644 index 0000000..b8c4eb1 --- /dev/null +++ b/craftbukkit/src/main/java/vakiliner/chatcomponentapi/craftbukkit/IBukkitChatPlugin.java @@ -0,0 +1,8 @@ +package vakiliner.chatcomponentapi.craftbukkit; + +import org.bukkit.plugin.Plugin; +import vakiliner.chatcomponentapi.base.IChatPlugin; + +public interface IBukkitChatPlugin extends IChatPlugin { + Plugin asPlugin(); +} \ No newline at end of file diff --git a/fabric/src/main/java/vakiliner/chatcomponentapi/ChatComponentAPIFabricLoader.java b/fabric/src/main/java/vakiliner/chatcomponentapi/ChatComponentAPIFabricLoader.java index 5e2fdb9..e862286 100644 --- a/fabric/src/main/java/vakiliner/chatcomponentapi/ChatComponentAPIFabricLoader.java +++ b/fabric/src/main/java/vakiliner/chatcomponentapi/ChatComponentAPIFabricLoader.java @@ -1,10 +1,10 @@ package vakiliner.chatcomponentapi; import net.fabricmc.api.ModInitializer; -import vakiliner.chatcomponentapi.base.IChatPlugin; import vakiliner.chatcomponentapi.fabric.FabricParser; +import vakiliner.chatcomponentapi.fabric.IFabricChatPlugin; -public class ChatComponentAPIFabricLoader implements ModInitializer, IChatPlugin { +public class ChatComponentAPIFabricLoader implements ModInitializer, IFabricChatPlugin { public static final FabricParser PARSER = new FabricParser(); public void onInitialize() { diff --git a/fabric/src/main/java/vakiliner/chatcomponentapi/fabric/FabricParser.java b/fabric/src/main/java/vakiliner/chatcomponentapi/fabric/FabricParser.java index 3351715..5c78283 100644 --- a/fabric/src/main/java/vakiliner/chatcomponentapi/fabric/FabricParser.java +++ b/fabric/src/main/java/vakiliner/chatcomponentapi/fabric/FabricParser.java @@ -2,7 +2,6 @@ import java.util.Arrays; import java.util.List; -import java.util.Objects; import java.util.UUID; import java.util.stream.Collectors; import com.mojang.authlib.GameProfile; @@ -72,8 +71,11 @@ public void broadcastMessage(PlayerList playerList, ChatComponent component, Cha } public void execute(MinecraftServer server, IChatPlugin plugin, Runnable runnable) { - Objects.requireNonNull(plugin, "Invalid plugin"); - server.execute(runnable); + if (plugin instanceof IFabricChatPlugin) { + server.execute(runnable); + } else { + throw new ClassCastException("Invalid plugin"); + } } public void kickPlayer(ServerPlayer player, ChatComponent reason) { diff --git a/fabric/src/main/java/vakiliner/chatcomponentapi/fabric/IFabricChatPlugin.java b/fabric/src/main/java/vakiliner/chatcomponentapi/fabric/IFabricChatPlugin.java new file mode 100644 index 0000000..4096df6 --- /dev/null +++ b/fabric/src/main/java/vakiliner/chatcomponentapi/fabric/IFabricChatPlugin.java @@ -0,0 +1,6 @@ +package vakiliner.chatcomponentapi.fabric; + +import vakiliner.chatcomponentapi.base.IChatPlugin; + +public interface IFabricChatPlugin extends IChatPlugin { +} \ No newline at end of file diff --git a/forge/src/main/java/vakiliner/chatcomponentapi/ChatComponentAPIForgeLoader.java b/forge/src/main/java/vakiliner/chatcomponentapi/ChatComponentAPIForgeLoader.java index fc3cce9..78c053a 100644 --- a/forge/src/main/java/vakiliner/chatcomponentapi/ChatComponentAPIForgeLoader.java +++ b/forge/src/main/java/vakiliner/chatcomponentapi/ChatComponentAPIForgeLoader.java @@ -1,10 +1,10 @@ package vakiliner.chatcomponentapi; import net.minecraftforge.fml.common.Mod; -import vakiliner.chatcomponentapi.base.IChatPlugin; import vakiliner.chatcomponentapi.forge.ForgeParser; +import vakiliner.chatcomponentapi.forge.IForgeChatPlugin; @Mod("chatcomponentapi") -public class ChatComponentAPIForgeLoader implements IChatPlugin { +public class ChatComponentAPIForgeLoader implements IForgeChatPlugin { public static final ForgeParser PARSER = new ForgeParser(); } \ No newline at end of file diff --git a/forge/src/main/java/vakiliner/chatcomponentapi/forge/ForgeParser.java b/forge/src/main/java/vakiliner/chatcomponentapi/forge/ForgeParser.java index 79cd10d..f72a893 100644 --- a/forge/src/main/java/vakiliner/chatcomponentapi/forge/ForgeParser.java +++ b/forge/src/main/java/vakiliner/chatcomponentapi/forge/ForgeParser.java @@ -2,7 +2,6 @@ import java.util.Arrays; import java.util.List; -import java.util.Objects; import java.util.UUID; import java.util.stream.Collectors; import com.mojang.authlib.GameProfile; @@ -64,8 +63,11 @@ public void sendMessage(ICommandSource commandSource, ChatComponent component, C } public void execute(MinecraftServer server, IChatPlugin plugin, Runnable runnable) { - Objects.requireNonNull(plugin, "Invalid plugin"); - server.execute(runnable); + if (plugin instanceof IForgeChatPlugin) { + server.execute(runnable); + } else { + throw new ClassCastException("Invalid plugin"); + } } public void kickPlayer(ServerPlayerEntity player, ChatComponent reason) { diff --git a/forge/src/main/java/vakiliner/chatcomponentapi/forge/IForgeChatPlugin.java b/forge/src/main/java/vakiliner/chatcomponentapi/forge/IForgeChatPlugin.java new file mode 100644 index 0000000..5b0e863 --- /dev/null +++ b/forge/src/main/java/vakiliner/chatcomponentapi/forge/IForgeChatPlugin.java @@ -0,0 +1,6 @@ +package vakiliner.chatcomponentapi.forge; + +import vakiliner.chatcomponentapi.base.IChatPlugin; + +public interface IForgeChatPlugin extends IChatPlugin { +} \ No newline at end of file