51 lines
2.0 KiB
Java
51 lines
2.0 KiB
Java
package wtf.beatrice.hubthat.listeners;
|
|
|
|
import wtf.beatrice.hubthat.HubThat;
|
|
import wtf.beatrice.hubthat.utils.ConfigEntry;
|
|
import wtf.beatrice.hubthat.utils.Debugger;
|
|
import wtf.beatrice.hubthat.utils.files.FileUtils;
|
|
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.
|
|
private final Debugger debugger = new Debugger(getClass().getName());
|
|
|
|
private final HubThat plugin;
|
|
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.
|
|
if(FileUtils.FileType.CONFIG_YAML.yaml.getBoolean(ConfigEntry.WORLD_RELATED_CHAT.path))
|
|
{
|
|
|
|
// 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);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|