feat(ball-bukkit): 修复玩家进入服务器时不显示缓存消息的bug
This commit is contained in:
@@ -7,6 +7,7 @@ import cn.hamster3.mc.plugin.ball.common.api.BallAPI;
|
||||
import cn.hamster3.mc.plugin.ball.common.event.server.ServerOnlineEvent;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@@ -17,10 +18,14 @@ public class HamsterBallPlugin extends JavaPlugin {
|
||||
return instance;
|
||||
}
|
||||
|
||||
public static void sync(Runnable runnable) {
|
||||
public static void sync(@NotNull Runnable runnable) {
|
||||
Bukkit.getScheduler().runTask(instance, runnable);
|
||||
}
|
||||
|
||||
public static void async(@NotNull Runnable runnable) {
|
||||
Bukkit.getScheduler().runTaskAsynchronously(instance, runnable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoad() {
|
||||
instance = this;
|
||||
|
@@ -26,7 +26,9 @@ import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.sql.SQLException;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
public class BallBukkitListener implements Listener, BallListener {
|
||||
@@ -175,6 +177,18 @@ public class BallBukkitListener implements Listener, BallListener {
|
||||
.build());
|
||||
}
|
||||
}
|
||||
HamsterBallPlugin.async(() -> {
|
||||
try {
|
||||
List<DisplayMessage> cachedPlayerMessage = BallAPI.getInstance().getCachedPlayerMessage(uuid);
|
||||
Audience audience = CoreAPI.getInstance().getAudienceProvider().player(uuid);
|
||||
for (DisplayMessage message : cachedPlayerMessage) {
|
||||
message.show(audience);
|
||||
}
|
||||
BallAPI.getInstance().removeCachedPlayerMessage(uuid);
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Data
|
||||
|
Reference in New Issue
Block a user