feat: 适配 HamsterCore 更新

This commit is contained in:
2023-08-21 00:23:06 +08:00
parent 2a11117b8c
commit 62d4b14492
6 changed files with 19 additions and 21 deletions

View File

@@ -2,7 +2,7 @@ package cn.hamster3.mc.plugin.ball.bukkit.data;
import cn.hamster3.mc.plugin.ball.common.api.BallAPI; import cn.hamster3.mc.plugin.ball.common.api.BallAPI;
import cn.hamster3.mc.plugin.ball.common.data.BallBlockPos; import cn.hamster3.mc.plugin.ball.common.data.BallBlockPos;
import cn.hamster3.mc.plugin.core.common.util.CoreUtils; import cn.hamster3.mc.plugin.core.common.api.CoreAPI;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.block.Block; import org.bukkit.block.Block;
@@ -51,7 +51,7 @@ public class BukkitBlockPos extends BallBlockPos {
} }
public static BukkitBlockPos fromJson(String json) { public static BukkitBlockPos fromJson(String json) {
return CoreUtils.GSON.fromJson(json, BukkitBlockPos.class); return CoreAPI.getInstance().getGson().fromJson(json, BukkitBlockPos.class);
} }
@NotNull @NotNull

View File

@@ -2,7 +2,7 @@ package cn.hamster3.mc.plugin.ball.bukkit.data;
import cn.hamster3.mc.plugin.ball.common.api.BallAPI; import cn.hamster3.mc.plugin.ball.common.api.BallAPI;
import cn.hamster3.mc.plugin.ball.common.data.BallLocation; import cn.hamster3.mc.plugin.ball.common.data.BallLocation;
import cn.hamster3.mc.plugin.core.common.util.CoreUtils; import cn.hamster3.mc.plugin.core.common.api.CoreAPI;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.block.Block; import org.bukkit.block.Block;
@@ -53,7 +53,7 @@ public class BukkitLocation extends BallLocation {
} }
public static BukkitLocation fromJson(String json) { public static BukkitLocation fromJson(String json) {
return CoreUtils.GSON.fromJson(json, BukkitLocation.class); return CoreAPI.getInstance().getGson().fromJson(json, BukkitLocation.class);
} }
@NotNull @NotNull

View File

@@ -10,7 +10,6 @@ import cn.hamster3.mc.plugin.ball.common.listener.BallListener;
import cn.hamster3.mc.plugin.core.bukkit.api.CoreBukkitAPI; import cn.hamster3.mc.plugin.core.bukkit.api.CoreBukkitAPI;
import cn.hamster3.mc.plugin.core.common.api.CoreAPI; import cn.hamster3.mc.plugin.core.common.api.CoreAPI;
import cn.hamster3.mc.plugin.core.common.data.DisplayMessage; import cn.hamster3.mc.plugin.core.common.data.DisplayMessage;
import cn.hamster3.mc.plugin.core.common.util.CoreUtils;
import cn.hamster3.mc.plugin.core.lib.net.kyori.adventure.audience.Audience; import cn.hamster3.mc.plugin.core.lib.net.kyori.adventure.audience.Audience;
import cn.hamster3.mc.plugin.core.lib.net.kyori.adventure.text.TextReplacementConfig; import cn.hamster3.mc.plugin.core.lib.net.kyori.adventure.text.TextReplacementConfig;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@@ -47,14 +46,14 @@ public class BallBukkitListener implements Listener, BallListener {
public void onMessageReceived(@NotNull BallMessageInfo info) { public void onMessageReceived(@NotNull BallMessageInfo info) {
switch (info.getAction()) { switch (info.getAction()) {
case BroadcastPlayerMessageEvent.ACTION: { case BroadcastPlayerMessageEvent.ACTION: {
BroadcastPlayerMessageEvent event = CoreUtils.GSON.fromJson(info.getContent(), BroadcastPlayerMessageEvent.class); BroadcastPlayerMessageEvent event = CoreAPI.getInstance().getGson().fromJson(info.getContent(), BroadcastPlayerMessageEvent.class);
DisplayMessage message = event.getMessage(); DisplayMessage message = event.getMessage();
Audience audience = CoreAPI.getInstance().getAudienceProvider().all(); Audience audience = CoreAPI.getInstance().getAudienceProvider().all();
message.show(audience); message.show(audience);
break; break;
} }
case DispatchConsoleCommandEvent.ACTION: { case DispatchConsoleCommandEvent.ACTION: {
DispatchConsoleCommandEvent event = CoreUtils.GSON.fromJson(info.getContent(), DispatchConsoleCommandEvent.class); DispatchConsoleCommandEvent event = CoreAPI.getInstance().getGson().fromJson(info.getContent(), DispatchConsoleCommandEvent.class);
if (event.getType() != null && event.getType() != BallServerType.GAME) { if (event.getType() != null && event.getType() != BallServerType.GAME) {
return; return;
} }
@@ -65,7 +64,7 @@ public class BallBukkitListener implements Listener, BallListener {
break; break;
} }
case DispatchPlayerCommandEvent.ACTION: { case DispatchPlayerCommandEvent.ACTION: {
DispatchPlayerCommandEvent event = CoreUtils.GSON.fromJson(info.getContent(), DispatchPlayerCommandEvent.class); DispatchPlayerCommandEvent event = CoreAPI.getInstance().getGson().fromJson(info.getContent(), DispatchPlayerCommandEvent.class);
if (event.getType() != null && event.getType() != BallServerType.GAME) { if (event.getType() != null && event.getType() != BallServerType.GAME) {
return; return;
} }
@@ -83,7 +82,7 @@ public class BallBukkitListener implements Listener, BallListener {
break; break;
} }
case SendPlayerToLocationEvent.ACTION: { case SendPlayerToLocationEvent.ACTION: {
SendPlayerToLocationEvent event = CoreUtils.GSON.fromJson(info.getContent(), SendPlayerToLocationEvent.class); SendPlayerToLocationEvent event = CoreAPI.getInstance().getGson().fromJson(info.getContent(), SendPlayerToLocationEvent.class);
BukkitLocation location = new BukkitLocation(event.getLocation()); BukkitLocation location = new BukkitLocation(event.getLocation());
if (BallAPI.getInstance().isLocalServer(location.getServerID())) { if (BallAPI.getInstance().isLocalServer(location.getServerID())) {
for (UUID uuid : event.getSendPlayerUUID()) { for (UUID uuid : event.getSendPlayerUUID()) {
@@ -104,7 +103,7 @@ public class BallBukkitListener implements Listener, BallListener {
break; break;
} }
case SendPlayerToPlayerEvent.ACTION: { case SendPlayerToPlayerEvent.ACTION: {
SendPlayerToPlayerEvent event = CoreUtils.GSON.fromJson(info.getContent(), SendPlayerToPlayerEvent.class); SendPlayerToPlayerEvent event = CoreAPI.getInstance().getGson().fromJson(info.getContent(), SendPlayerToPlayerEvent.class);
Player toPlayer = Bukkit.getPlayer(event.getToPlayerUUID()); Player toPlayer = Bukkit.getPlayer(event.getToPlayerUUID());
if (toPlayer == null) { if (toPlayer == null) {
break; break;
@@ -200,7 +199,7 @@ public class BallBukkitListener implements Listener, BallListener {
statement.setString(1, uuid.toString()); statement.setString(1, uuid.toString());
try (ResultSet set = statement.executeQuery()) { try (ResultSet set = statement.executeQuery()) {
while (set.next()) { while (set.next()) {
DisplayMessage msg = CoreUtils.GSON.fromJson(set.getString("message"), DisplayMessage.class); DisplayMessage msg = CoreAPI.getInstance().getGson().fromJson(set.getString("message"), DisplayMessage.class);
list.add(msg); list.add(msg);
} }
} }

View File

@@ -10,7 +10,6 @@ import cn.hamster3.mc.plugin.ball.common.listener.BallListener;
import cn.hamster3.mc.plugin.core.bungee.HamsterBallPlugin; import cn.hamster3.mc.plugin.core.bungee.HamsterBallPlugin;
import cn.hamster3.mc.plugin.core.bungee.util.BallBungeeCordUtils; import cn.hamster3.mc.plugin.core.bungee.util.BallBungeeCordUtils;
import cn.hamster3.mc.plugin.core.common.api.CoreAPI; import cn.hamster3.mc.plugin.core.common.api.CoreAPI;
import cn.hamster3.mc.plugin.core.common.util.CoreUtils;
import cn.hamster3.mc.plugin.core.lib.net.kyori.adventure.audience.Audience; import cn.hamster3.mc.plugin.core.lib.net.kyori.adventure.audience.Audience;
import cn.hamster3.mc.plugin.core.lib.net.kyori.adventure.text.serializer.bungeecord.BungeeComponentSerializer; import cn.hamster3.mc.plugin.core.lib.net.kyori.adventure.text.serializer.bungeecord.BungeeComponentSerializer;
import net.md_5.bungee.api.ProxyServer; import net.md_5.bungee.api.ProxyServer;
@@ -35,7 +34,7 @@ public final class BallBungeeCordListener implements Listener, BallListener {
public void onMessageReceived(@NotNull BallMessageInfo info) { public void onMessageReceived(@NotNull BallMessageInfo info) {
switch (info.getAction()) { switch (info.getAction()) {
case DispatchConsoleCommandEvent.ACTION: { case DispatchConsoleCommandEvent.ACTION: {
DispatchConsoleCommandEvent event = CoreUtils.GSON.fromJson(info.getContent(), DispatchConsoleCommandEvent.class); DispatchConsoleCommandEvent event = CoreAPI.getInstance().getGson().fromJson(info.getContent(), DispatchConsoleCommandEvent.class);
if (event.getType() != null && event.getType() != BallServerType.PROXY) { if (event.getType() != null && event.getType() != BallServerType.PROXY) {
return; return;
} }
@@ -47,7 +46,7 @@ public final class BallBungeeCordListener implements Listener, BallListener {
break; break;
} }
case DispatchPlayerCommandEvent.ACTION: { case DispatchPlayerCommandEvent.ACTION: {
DispatchPlayerCommandEvent event = CoreUtils.GSON.fromJson(info.getContent(), DispatchPlayerCommandEvent.class); DispatchPlayerCommandEvent event = CoreAPI.getInstance().getGson().fromJson(info.getContent(), DispatchPlayerCommandEvent.class);
if (event.getType() != null && event.getType() != BallServerType.GAME) { if (event.getType() != null && event.getType() != BallServerType.GAME) {
return; return;
} }
@@ -66,14 +65,14 @@ public final class BallBungeeCordListener implements Listener, BallListener {
break; break;
} }
case KickPlayerEvent.ACTION: { case KickPlayerEvent.ACTION: {
KickPlayerEvent event = CoreUtils.GSON.fromJson(info.getContent(), KickPlayerEvent.class); KickPlayerEvent event = CoreAPI.getInstance().getGson().fromJson(info.getContent(), KickPlayerEvent.class);
ProxiedPlayer player = ProxyServer.getInstance().getPlayer(event.getUuid()); ProxiedPlayer player = ProxyServer.getInstance().getPlayer(event.getUuid());
BaseComponent[] components = BungeeComponentSerializer.get().serialize(event.getReason()); BaseComponent[] components = BungeeComponentSerializer.get().serialize(event.getReason());
player.disconnect(components); player.disconnect(components);
break; break;
} }
case SendMessageToPlayerEvent.ACTION: { case SendMessageToPlayerEvent.ACTION: {
SendMessageToPlayerEvent event = CoreUtils.GSON.fromJson(info.getContent(), SendMessageToPlayerEvent.class); SendMessageToPlayerEvent event = CoreAPI.getInstance().getGson().fromJson(info.getContent(), SendMessageToPlayerEvent.class);
for (UUID receiver : event.getReceivers()) { for (UUID receiver : event.getReceivers()) {
Audience audience = CoreAPI.getInstance().getAudienceProvider().player(receiver); Audience audience = CoreAPI.getInstance().getAudienceProvider().player(receiver);
event.getMessage().show(audience); event.getMessage().show(audience);
@@ -81,7 +80,7 @@ public final class BallBungeeCordListener implements Listener, BallListener {
break; break;
} }
case SendPlayerToLocationEvent.ACTION: { case SendPlayerToLocationEvent.ACTION: {
SendPlayerToLocationEvent event = CoreUtils.GSON.fromJson(info.getContent(), SendPlayerToLocationEvent.class); SendPlayerToLocationEvent event = CoreAPI.getInstance().getGson().fromJson(info.getContent(), SendPlayerToLocationEvent.class);
String serverID = event.getLocation().getServerID(); String serverID = event.getLocation().getServerID();
ServerInfo serverInfo = ProxyServer.getInstance().getServerInfo(serverID); ServerInfo serverInfo = ProxyServer.getInstance().getServerInfo(serverID);
if (serverInfo == null) { if (serverInfo == null) {
@@ -101,7 +100,7 @@ public final class BallBungeeCordListener implements Listener, BallListener {
break; break;
} }
case SendPlayerToPlayerEvent.ACTION: { case SendPlayerToPlayerEvent.ACTION: {
SendPlayerToPlayerEvent event = CoreUtils.GSON.fromJson(info.getContent(), SendPlayerToPlayerEvent.class); SendPlayerToPlayerEvent event = CoreAPI.getInstance().getGson().fromJson(info.getContent(), SendPlayerToPlayerEvent.class);
UUID toPlayerUUID = event.getToPlayerUUID(); UUID toPlayerUUID = event.getToPlayerUUID();
ProxiedPlayer toPlayer = ProxyServer.getInstance().getPlayer(toPlayerUUID); ProxiedPlayer toPlayer = ProxyServer.getInstance().getPlayer(toPlayerUUID);
if (toPlayer == null) { if (toPlayer == null) {

View File

@@ -3,7 +3,7 @@ package cn.hamster3.mc.plugin.core.bungee.util;
import cn.hamster3.mc.plugin.ball.common.api.BallAPI; import cn.hamster3.mc.plugin.ball.common.api.BallAPI;
import cn.hamster3.mc.plugin.ball.common.entity.BallPlayerInfo; import cn.hamster3.mc.plugin.ball.common.entity.BallPlayerInfo;
import cn.hamster3.mc.plugin.ball.common.event.player.BallPlayerInfoUpdateEvent; import cn.hamster3.mc.plugin.ball.common.event.player.BallPlayerInfoUpdateEvent;
import cn.hamster3.mc.plugin.core.common.util.CoreUtils; import cn.hamster3.mc.plugin.core.common.api.CoreAPI;
import cn.hamster3.mc.plugin.core.lib.com.zaxxer.hikari.HikariConfig; import cn.hamster3.mc.plugin.core.lib.com.zaxxer.hikari.HikariConfig;
import cn.hamster3.mc.plugin.core.lib.com.zaxxer.hikari.HikariDataSource; import cn.hamster3.mc.plugin.core.lib.com.zaxxer.hikari.HikariDataSource;
import net.md_5.bungee.api.connection.ProxiedPlayer; import net.md_5.bungee.api.connection.ProxiedPlayer;
@@ -34,7 +34,7 @@ public final class BallBungeeCordUtils {
} }
public static void uploadPlayerInfo(@NotNull BallPlayerInfo playerInfo) { public static void uploadPlayerInfo(@NotNull BallPlayerInfo playerInfo) {
CoreUtils.WORKER_EXECUTOR.execute(() -> { CoreAPI.getInstance().getExecutorService().execute(() -> {
try (Connection connection = BallAPI.getInstance().getDatasource().getConnection()) { try (Connection connection = BallAPI.getInstance().getDatasource().getConnection()) {
try (PreparedStatement statement = connection.prepareStatement( try (PreparedStatement statement = connection.prepareStatement(
"REPLACE INTO `hamster_ball_player_info` VALUES(?, ?, ?, ?, ?);" "REPLACE INTO `hamster_ball_player_info` VALUES(?, ?, ?, ?, ?);"

View File

@@ -1,3 +1,3 @@
org.gradle.jvmargs=-Xmx2G org.gradle.jvmargs=-Xmx2G
hamster_core_version=1.0.0-SNAPSHOT hamster_core_version=1.1.0-SNAPSHOT
redission_version=3.23.2 redission_version=3.23.2