HubThat/src/main/java/wtf/beatrice/hubthat/listeners/PlayerChatListener.java

51 lines
2.0 KiB
Java
Raw Normal View History

2022-05-31 20:09:36 +02:00
package wtf.beatrice.hubthat.listeners;
2020-04-09 16:31:14 +02:00
2022-05-31 20:09:36 +02:00
import wtf.beatrice.hubthat.HubThat;
2023-02-11 20:57:29 +01:00
import wtf.beatrice.hubthat.utils.ConfigEntry;
2022-05-31 20:09:36 +02:00
import wtf.beatrice.hubthat.utils.Debugger;
import wtf.beatrice.hubthat.utils.files.FileUtils;
2020-04-09 16:31:14 +02:00
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
public class PlayerChatListener implements Listener
{
// Instantiate a Debugger for this class.
2020-05-27 00:41:02 +02:00
private final Debugger debugger = new Debugger(getClass().getName());
2020-04-09 16:31:14 +02:00
2020-05-27 00:41:02 +02:00
private final HubThat plugin;
2020-04-09 16:31:14 +02:00
public PlayerChatListener(HubThat givenPlugin)
{
plugin = givenPlugin;
}
@EventHandler
public void onPlayerChat(AsyncPlayerChatEvent event) {
// This is only related to players chatting - we don't need to check if console is running any command.
Player messageSender = event.getPlayer();
// Check if the world-related chat is enabled.
2023-02-11 20:57:29 +01:00
if(FileUtils.FileType.CONFIG_YAML.yaml.getBoolean(ConfigEntry.WORLD_RELATED_CHAT.path))
2020-04-09 16:31:14 +02:00
{
// Store the sender's world spawn name in a string. Fallback to "__UNSET__".
String senderWorldSpawn = FileUtils.FileType.SPAWN_YAML.yaml.getString("spawn.world." + messageSender.getWorld().getName(), "__UNSET__");
// Iterate through each player connected to the server.
for(Player messageReceiver : plugin.getServer().getOnlinePlayers())
{
// Store the receiver's world spawn name in a string. Fallback to "__UNSET__".
String receiverWorldSpawn = FileUtils.FileType.SPAWN_YAML.yaml.getString("spawn.world." + messageReceiver.getWorld().getName(), "__UNSET__");
// Check if the two world names match - and remove the receiver if they don't.
if(!senderWorldSpawn.equalsIgnoreCase(receiverWorldSpawn))
{
event.getRecipients().remove(messageReceiver);
}
}
}
}
}