first commit
Build AsminVoicechat / prepare-release (push) Successful in 14s
Build AsminVoicechat / build-and-test (17) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (18) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (19) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (20) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (21) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (22) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (23) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (24) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (25) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (26) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (27-ea) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (16) (push) Canceled after 38s
Build AsminVoicechat / prepare-release (push) Successful in 14s
Build AsminVoicechat / build-and-test (17) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (18) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (19) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (20) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (21) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (22) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (23) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (24) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (25) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (26) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (27-ea) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (16) (push) Canceled after 38s
This commit is contained in:
commit
bbccd4a815
454 files changed
+45050
No files matched your search
@@ -0,0 +1,155 @@
|
||||
/*
|
||||
* Decompiled with CFR 0.152.
|
||||
*
|
||||
* Could not load the following classes:
|
||||
* javax.annotation.Nullable
|
||||
* org.bukkit.Bukkit
|
||||
* org.bukkit.entity.Player
|
||||
* org.bukkit.event.Listener
|
||||
* org.bukkit.event.player.PlayerJoinEvent
|
||||
* org.bukkit.event.player.PlayerQuitEvent
|
||||
*/
|
||||
package de.maxhenkel.voicechat.voice.server;
|
||||
|
||||
import de.maxhenkel.voicechat.Voicechat;
|
||||
import de.maxhenkel.voicechat.compatibility.PlayerHideEvent;
|
||||
import de.maxhenkel.voicechat.compatibility.PlayerShowEvent;
|
||||
import de.maxhenkel.voicechat.net.NetManager;
|
||||
import de.maxhenkel.voicechat.net.PlayerStatePacket;
|
||||
import de.maxhenkel.voicechat.net.PlayerStatesPacket;
|
||||
import de.maxhenkel.voicechat.net.RemovePlayerStatePacket;
|
||||
import de.maxhenkel.voicechat.net.UpdateStatePacket;
|
||||
import de.maxhenkel.voicechat.plugins.PluginManager;
|
||||
import de.maxhenkel.voicechat.voice.common.PlayerState;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import javax.annotation.Nullable;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
|
||||
public class PlayerStateManager
|
||||
implements Listener {
|
||||
private final ConcurrentHashMap<UUID, PlayerState> states = new ConcurrentHashMap();
|
||||
|
||||
public void onUpdateStatePacket(Player player, UpdateStatePacket packet) {
|
||||
PlayerState state = this.states.get(player.getUniqueId());
|
||||
if (state == null) {
|
||||
state = PlayerStateManager.defaultDisconnectedState(player);
|
||||
}
|
||||
state.setDisabled(packet.isDisabled());
|
||||
this.states.put(player.getUniqueId(), state);
|
||||
this.broadcastState(player, state);
|
||||
Voicechat.LOGGER.debug("Got state of {}: {}", player.getName(), state);
|
||||
}
|
||||
|
||||
public void onPlayerQuit(PlayerQuitEvent event) {
|
||||
this.states.remove(event.getPlayer().getUniqueId());
|
||||
this.broadcastRemoveState(event.getPlayer());
|
||||
Voicechat.LOGGER.debug("Removing state of {}", event.getPlayer().getName());
|
||||
}
|
||||
|
||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||
PlayerState state = PlayerStateManager.defaultDisconnectedState(event.getPlayer());
|
||||
this.states.put(event.getPlayer().getUniqueId(), state);
|
||||
this.broadcastState(event.getPlayer(), state);
|
||||
Voicechat.LOGGER.debug("Setting default state of {}: {}", event.getPlayer().getName(), state);
|
||||
}
|
||||
|
||||
public void onPlayerHide(PlayerHideEvent event) {
|
||||
RemovePlayerStatePacket packet = new RemovePlayerStatePacket(event.getHiddenPlayer().getUniqueId());
|
||||
NetManager.sendToClient(event.getObserver(), packet);
|
||||
Voicechat.LOGGER.debug("Removing state of {} for {}", event.getHiddenPlayer().getName(), event.getObserver().getName());
|
||||
}
|
||||
|
||||
public void onPlayerShow(PlayerShowEvent event) {
|
||||
PlayerState state = this.states.get(event.getShownPlayer().getUniqueId());
|
||||
if (state == null) {
|
||||
state = PlayerStateManager.defaultDisconnectedState(event.getShownPlayer());
|
||||
}
|
||||
PlayerStatePacket packet = new PlayerStatePacket(state);
|
||||
NetManager.sendToClient(event.getObserver(), packet);
|
||||
Voicechat.LOGGER.debug("Sending state of {} to {}", event.getShownPlayer().getName(), event.getObserver().getName());
|
||||
}
|
||||
|
||||
public void broadcastState(@Nullable Player stateOwner, PlayerState state) {
|
||||
PlayerStatePacket packet = new PlayerStatePacket(state);
|
||||
for (Player receiver : Voicechat.INSTANCE.getServer().getOnlinePlayers()) {
|
||||
if (stateOwner != null && !Voicechat.compatibility.canSee(receiver, stateOwner)) continue;
|
||||
NetManager.sendToClient(receiver, packet);
|
||||
}
|
||||
PluginManager.instance().onPlayerStateChanged(state);
|
||||
}
|
||||
|
||||
public void broadcastRemoveState(Player stateOwner) {
|
||||
RemovePlayerStatePacket packet = new RemovePlayerStatePacket(stateOwner.getUniqueId());
|
||||
for (Player receiver : Voicechat.INSTANCE.getServer().getOnlinePlayers()) {
|
||||
NetManager.sendToClient(receiver, packet);
|
||||
}
|
||||
PluginManager.instance().onPlayerStateChanged(PlayerStateManager.defaultDisconnectedState(stateOwner));
|
||||
}
|
||||
|
||||
public void onPlayerCompatibilityCheckSucceeded(Player player) {
|
||||
ArrayList<PlayerState> stateList = new ArrayList<PlayerState>(this.states.size());
|
||||
for (PlayerState state : this.states.values()) {
|
||||
Player otherPlayer = Voicechat.INSTANCE.getServer().getPlayer(state.getUuid());
|
||||
if (otherPlayer == null || !Voicechat.compatibility.canSee(player, otherPlayer)) continue;
|
||||
stateList.add(state);
|
||||
}
|
||||
PlayerStatesPacket packet = new PlayerStatesPacket(stateList);
|
||||
NetManager.sendToClient(player, packet);
|
||||
Voicechat.LOGGER.debug("Sending initial states to {}", player.getName());
|
||||
}
|
||||
|
||||
public void onPlayerVoicechatDisconnect(UUID uuid) {
|
||||
PlayerState state = this.states.get(uuid);
|
||||
if (state == null) {
|
||||
return;
|
||||
}
|
||||
state.setDisconnected(true);
|
||||
Player player = Bukkit.getPlayer((UUID)uuid);
|
||||
this.broadcastState(player, state);
|
||||
Voicechat.LOGGER.debug("Set state of {} to disconnected: {}", uuid, state);
|
||||
}
|
||||
|
||||
public void onPlayerVoicechatConnect(Player player) {
|
||||
PlayerState state = this.states.get(player.getUniqueId());
|
||||
if (state == null) {
|
||||
state = PlayerStateManager.defaultDisconnectedState(player);
|
||||
}
|
||||
state.setDisconnected(false);
|
||||
this.states.put(player.getUniqueId(), state);
|
||||
this.broadcastState(player, state);
|
||||
Voicechat.LOGGER.debug("Set state of {} to connected: {}", player.getName(), state);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public PlayerState getState(UUID playerUUID) {
|
||||
return this.states.get(playerUUID);
|
||||
}
|
||||
|
||||
public static PlayerState defaultDisconnectedState(Player player) {
|
||||
return new PlayerState(player.getUniqueId(), player.getName(), false, true);
|
||||
}
|
||||
|
||||
public void setGroup(Player player, @Nullable UUID group) {
|
||||
PlayerState state = this.states.get(player.getUniqueId());
|
||||
if (state == null) {
|
||||
state = PlayerStateManager.defaultDisconnectedState(player);
|
||||
Voicechat.LOGGER.debug("Defaulting to default state for {}: {}", player.getName(), state);
|
||||
}
|
||||
state.setGroup(group);
|
||||
this.states.put(player.getUniqueId(), state);
|
||||
this.broadcastState(player, state);
|
||||
Voicechat.LOGGER.debug("Setting group of {}: {}", player.getName(), state);
|
||||
}
|
||||
|
||||
public Collection<PlayerState> getStates() {
|
||||
return this.states.values();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user