diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/deathmessage/handler/EnvironmentDeathMessageHandler.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/deathmessage/handler/EnvironmentDeathMessageHandler.java index dd268c94e..2ec1d5e8e 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/deathmessage/handler/EnvironmentDeathMessageHandler.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/deathmessage/handler/EnvironmentDeathMessageHandler.java @@ -75,7 +75,7 @@ private void handleEntityKill(Player victim, Entity killer) { .placeholder("{MOB}", mobName) .placeholder("{MOB_TYPE}", mobType.name()) .onlinePlayers() - .send(); + .sendAsync(); } private void handleEnvironmentDeath(String victimName, EntityDamageEvent.DamageCause cause) { @@ -92,7 +92,7 @@ private void handleEnvironmentDeath(String victimName, EntityDamageEvent.DamageC .placeholder("{PLAYER}", victimName) .placeholder("{CAUSE}", this.formatCauseName(cause)) .onlinePlayers() - .send(); + .sendAsync(); } private void handleUnknownDeath(String victimName) { @@ -101,7 +101,7 @@ private void handleUnknownDeath(String victimName) { .playerDiedByUnknownCause())) .placeholder("{PLAYER}", victimName) .onlinePlayers() - .send(); + .sendAsync(); } private String getMobName(Entity entity) { diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/deathmessage/handler/PlayerKillMessageHandler.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/deathmessage/handler/PlayerKillMessageHandler.java index 3359013fd..66ed393db 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/deathmessage/handler/PlayerKillMessageHandler.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/deathmessage/handler/PlayerKillMessageHandler.java @@ -40,12 +40,13 @@ public void handle(DeathContext context) { String weaponName = this.getWeaponName(weapon); this.noticeService.create() - .noticeOptional(translation -> RandomElementUtil.randomElement(translation.deathMessage().playerKilledByOtherPlayer())) + .noticeOptional(translation -> RandomElementUtil.randomElement(translation.deathMessage() + .playerKilledByOtherPlayer())) .placeholder("{PLAYER}", victimName) .placeholder("{KILLER}", killerName) .placeholder("{WEAPON}", weaponName) .onlinePlayers() - .send(); + .sendAsync(); } private String getWeaponName(ItemStack weapon) { diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/joinmessage/PlayerJoinMessageController.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/joinmessage/PlayerJoinMessageController.java index 348d169bb..d38d3033e 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/joinmessage/PlayerJoinMessageController.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/joinmessage/PlayerJoinMessageController.java @@ -1,6 +1,5 @@ package com.eternalcode.core.feature.joinmessage; - import com.eternalcode.commons.RandomElementUtil; import com.eternalcode.core.feature.vanish.VanishService; import com.eternalcode.core.injector.annotations.Inject; @@ -34,18 +33,16 @@ void onPlayerJoin(PlayerJoinEvent event) { return; } - if (!player.hasPlayedBefore()) { - this.noticeService.create() - .noticeOptional(translation -> RandomElementUtil.randomElement(translation.join().playerJoinedServerFirstTime())) - .placeholder("{PLAYER}", player.getName()) - .onlinePlayers() - .send(); - } - event.setJoinMessage(EMPTY_MESSAGE); + boolean firstTime = !player.hasPlayedBefore(); + this.noticeService.create() - .noticeOptional(translation -> RandomElementUtil.randomElement(translation.join().playerJoinedServer())) + .noticeOptional(translation -> RandomElementUtil.randomElement( + firstTime + ? translation.join().playerJoinedServerFirstTime() + : translation.join().playerJoinedServer() + )) .placeholder("{PLAYER}", player.getName()) .onlinePlayers() .sendAsync(); diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/quitmessage/PlayerQuitMessageController.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/quitmessage/PlayerQuitMessageController.java index a04754ea5..98e5e6cfd 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/quitmessage/PlayerQuitMessageController.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/quitmessage/PlayerQuitMessageController.java @@ -1,6 +1,5 @@ package com.eternalcode.core.feature.quitmessage; - import com.eternalcode.commons.RandomElementUtil; import com.eternalcode.core.feature.vanish.VanishService; import com.eternalcode.core.injector.annotations.Inject; @@ -40,6 +39,6 @@ void onPlayerQuit(PlayerQuitEvent event) { .noticeOptional(translation -> RandomElementUtil.randomElement(translation.quit().playerLeftServer())) .placeholder("{PLAYER}", player.getName()) .onlinePlayers() - .send(); + .sendAsync(); } } diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/viewer/BukkitViewerProvider.java b/eternalcore-core/src/main/java/com/eternalcode/core/viewer/BukkitViewerProvider.java index 725d62337..ac5198022 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/viewer/BukkitViewerProvider.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/viewer/BukkitViewerProvider.java @@ -5,7 +5,11 @@ import com.eternalcode.core.user.User; import com.eternalcode.core.user.UserManager; import com.eternalcode.multification.viewer.ViewerProvider; -import java.util.List; +import java.util.Collection; +import java.util.HashSet; +import java.util.Optional; +import java.util.Set; +import java.util.UUID; import org.bukkit.Server; import org.bukkit.command.BlockCommandSender; import org.bukkit.command.CommandSender; @@ -13,12 +17,6 @@ import org.bukkit.command.RemoteConsoleCommandSender; import org.bukkit.entity.Player; -import java.util.Collection; -import java.util.HashSet; -import java.util.Optional; -import java.util.Set; -import java.util.UUID; - @Service public class BukkitViewerProvider implements ViewerProvider, ViewerService { @@ -42,10 +40,10 @@ public Collection all() { @Override public Collection onlinePlayers() { + Collection players = this.server.getOnlinePlayers(); + Set audiences = new HashSet<>(players.size()); - Set audiences = new HashSet<>(); - - for (Player player : this.server.getOnlinePlayers()) { + for (Player player : players) { audiences.add(this.player(player.getUniqueId())); } @@ -54,9 +52,10 @@ public Collection onlinePlayers() { @Override public Collection onlinePlayers(String permission) { - Set audiences = new HashSet<>(); + Collection players = this.server.getOnlinePlayers(); + Set audiences = new HashSet<>(players.size()); - for (Player player : this.server.getOnlinePlayers()) { + for (Player player : players) { if (player.hasPermission(permission)) { audiences.add(this.player(player.getUniqueId())); } @@ -98,11 +97,11 @@ public Viewer any(Object any) { return BukkitViewerImpl.player(player.getUniqueId()); } - if (any instanceof ConsoleCommandSender || any instanceof RemoteConsoleCommandSender || any instanceof BlockCommandSender) { + if (any instanceof ConsoleCommandSender || any instanceof RemoteConsoleCommandSender + || any instanceof BlockCommandSender) { return BukkitViewerImpl.console(); } throw new IllegalArgumentException("Unsupported sender type: " + any.getClass().getName()); } - }