001package co.aikar.commands; 002 003import org.spongepowered.api.entity.living.player.Player; 004import org.spongepowered.api.event.Listener; 005import org.spongepowered.api.event.Order; 006import org.spongepowered.api.event.entity.living.humanoid.player.PlayerChangeClientSettingsEvent; 007import org.spongepowered.api.event.filter.cause.First; 008import org.spongepowered.api.event.network.ClientConnectionEvent; 009 010public class ACFSpongeListener { 011 012 private final SpongeCommandManager manager; 013 014 public ACFSpongeListener(SpongeCommandManager manager) { 015 this.manager = manager; 016 } 017 018 @Listener(order = Order.POST) 019 public void onSettingsChange(PlayerChangeClientSettingsEvent changeSettingsEvent, @First Player targetPlayer) { 020 //this event will be fired on join as well as every time the player changes it 021 manager.setIssuerLocale(targetPlayer, targetPlayer.getLocale()); 022 } 023 024 @Listener 025 public void onDisconnectCleanup(ClientConnectionEvent.Disconnect disconnectEvent, @First Player player) { 026 manager.issuersLocale.remove(player.getUniqueId()); 027 } 028}