mirror of
https://github.com/songoda/FabledSkyBlock.git
synced 2025-02-03 13:21:25 +01:00
Fix async Bukkit-API call
This commit is contained in:
parent
49ed7c6449
commit
15ad11a6cb
@ -2,13 +2,10 @@ package com.songoda.skyblock.listeners;
|
||||
|
||||
import com.songoda.skyblock.SkyBlock;
|
||||
import com.songoda.skyblock.api.event.player.PlayerIslandChatEvent;
|
||||
import com.songoda.skyblock.config.FileManager;
|
||||
import com.songoda.skyblock.config.FileManager.Config;
|
||||
import com.songoda.skyblock.island.Island;
|
||||
import com.songoda.skyblock.island.IslandManager;
|
||||
import com.songoda.skyblock.island.IslandRole;
|
||||
import com.songoda.skyblock.message.MessageManager;
|
||||
import com.songoda.skyblock.placeholder.PlaceholderManager;
|
||||
import com.songoda.skyblock.playerdata.PlayerData;
|
||||
import com.songoda.skyblock.playerdata.PlayerDataManager;
|
||||
import com.songoda.skyblock.utils.player.OfflinePlayer;
|
||||
@ -21,7 +18,6 @@ import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.UUID;
|
||||
|
||||
public class ChatListeners implements Listener {
|
||||
@ -36,7 +32,6 @@ public class ChatListeners implements Listener {
|
||||
public void onAsyncPlayerChat(AsyncPlayerChatEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
|
||||
PlaceholderManager placeholderManager = plugin.getPlaceholderManager();
|
||||
PlayerDataManager playerDataManager = plugin.getPlayerDataManager();
|
||||
|
||||
if (playerDataManager.hasPlayerData(player)) {
|
||||
@ -53,24 +48,30 @@ public class ChatListeners implements Listener {
|
||||
|
||||
PlayerIslandChatEvent islandChatEvent = new PlayerIslandChatEvent(player, island.getAPIWrapper(),
|
||||
event.getMessage(), languageLoad.getString("Island.Chat.Format.Message"));
|
||||
Bukkit.getServer().getPluginManager().callEvent(islandChatEvent);
|
||||
|
||||
Runnable callEvent = () -> Bukkit.getServer().getPluginManager().callEvent(islandChatEvent);
|
||||
if (Bukkit.isPrimaryThread()) {
|
||||
callEvent.run();
|
||||
} else {
|
||||
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, callEvent);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR,ignoreCancelled = true)
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onIslandChat(PlayerIslandChatEvent event) {
|
||||
PlayerDataManager playerDataManager = plugin.getPlayerDataManager();
|
||||
MessageManager messageManager = plugin.getMessageManager();
|
||||
IslandManager islandManager = plugin.getIslandManager();
|
||||
|
||||
|
||||
Island island = event.getIsland().getIsland();
|
||||
Player player = event.getPlayer();
|
||||
|
||||
FileConfiguration languageLoad = plugin.getLanguage();
|
||||
|
||||
|
||||
String islandRole = null;
|
||||
|
||||
|
||||
if (island.hasRole(IslandRole.Member, player.getUniqueId())) {
|
||||
islandRole = languageLoad.getString("Island.Chat.Format.Role.Member");
|
||||
} else if (island.hasRole(IslandRole.Operator, player.getUniqueId())) {
|
||||
@ -78,10 +79,10 @@ public class ChatListeners implements Listener {
|
||||
} else if (island.hasRole(IslandRole.Owner, player.getUniqueId())) {
|
||||
islandRole = languageLoad.getString("Island.Chat.Format.Role.Owner");
|
||||
}
|
||||
if(islandRole == null) {
|
||||
if (islandRole == null) {
|
||||
islandRole = "";
|
||||
}
|
||||
|
||||
|
||||
for (UUID islandMembersOnlineList : islandManager.getMembersOnline(island)) {
|
||||
Player targetPlayer = Bukkit.getServer().getPlayer(islandMembersOnlineList);
|
||||
String message = ChatColor.translateAlternateColorCodes('&', messageManager.replaceMessage(targetPlayer,
|
||||
@ -89,14 +90,14 @@ public class ChatListeners implements Listener {
|
||||
.replace("%message", event.getMessage());
|
||||
messageManager.sendMessage(targetPlayer, message);
|
||||
}
|
||||
|
||||
|
||||
// Spy
|
||||
for(Player targetPlayer : Bukkit.getServer().getOnlinePlayers()){
|
||||
if(!targetPlayer.equals(event.getPlayer()) &&
|
||||
for (Player targetPlayer : Bukkit.getServer().getOnlinePlayers()) {
|
||||
if (!targetPlayer.equals(event.getPlayer()) &&
|
||||
!islandManager.getMembersOnline(island).contains(targetPlayer.getUniqueId()) &&
|
||||
targetPlayer.hasPermission("fabledskyblock.admin.chatspy")) {
|
||||
PlayerData pd = playerDataManager.getPlayerData(targetPlayer);
|
||||
if(pd != null && pd.isChatSpy() && (pd.isGlobalChatSpy() || pd.isChatSpyIsland(island))) {
|
||||
if (pd != null && pd.isChatSpy() && (pd.isGlobalChatSpy() || pd.isChatSpyIsland(island))) {
|
||||
String message = ChatColor.translateAlternateColorCodes('&', messageManager.replaceMessage(targetPlayer,
|
||||
languageLoad.getString("Island.Chat.Spy.Format.Message").replace("%role", islandRole).replace("%player", player.getName())))
|
||||
.replace("%islandOwner", new OfflinePlayer(island.getOwnerUUID()).getName())
|
||||
@ -105,7 +106,7 @@ public class ChatListeners implements Listener {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (this.plugin.getConfiguration().getBoolean("Island.Chat.OutputToConsole")) {
|
||||
messageManager.sendMessage(Bukkit.getConsoleSender(), event.getFormat().replace("%role", islandRole).replace("%player", player.getName())
|
||||
.replace("%message", event.getMessage()));
|
||||
|
Loading…
Reference in New Issue
Block a user