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
148 lines
4.3 KiB
Java
148 lines
4.3 KiB
Java
/*
|
|
* Decompiled with CFR 0.152.
|
|
*
|
|
* Could not load the following classes:
|
|
* javax.annotation.Nullable
|
|
* org.bukkit.entity.Player
|
|
*/
|
|
package de.maxhenkel.voicechat.plugins.impl;
|
|
|
|
import de.maxhenkel.voicechat.Voicechat;
|
|
import de.maxhenkel.voicechat.api.ServerPlayer;
|
|
import de.maxhenkel.voicechat.api.VoicechatConnection;
|
|
import de.maxhenkel.voicechat.plugins.impl.GroupImpl;
|
|
import de.maxhenkel.voicechat.plugins.impl.ServerPlayerImpl;
|
|
import de.maxhenkel.voicechat.voice.common.PlayerState;
|
|
import de.maxhenkel.voicechat.voice.server.Group;
|
|
import de.maxhenkel.voicechat.voice.server.PlayerStateManager;
|
|
import de.maxhenkel.voicechat.voice.server.Server;
|
|
import javax.annotation.Nullable;
|
|
import org.bukkit.entity.Player;
|
|
|
|
public class VoicechatConnectionImpl
|
|
implements VoicechatConnection {
|
|
private final ServerPlayer player;
|
|
private final Player serverPlayer;
|
|
private final PlayerState state;
|
|
@Nullable
|
|
private final de.maxhenkel.voicechat.api.Group group;
|
|
|
|
public VoicechatConnectionImpl(Player player, PlayerState state) {
|
|
this.serverPlayer = player;
|
|
this.player = new ServerPlayerImpl(player);
|
|
this.state = state;
|
|
this.group = GroupImpl.create(state);
|
|
}
|
|
|
|
@Nullable
|
|
public static VoicechatConnectionImpl fromPlayer(@Nullable Player player) {
|
|
if (player == null) {
|
|
return null;
|
|
}
|
|
Server server = Voicechat.SERVER.getServer();
|
|
if (server == null) {
|
|
return null;
|
|
}
|
|
PlayerState state = server.getPlayerStateManager().getState(player.getUniqueId());
|
|
if (state == null) {
|
|
return null;
|
|
}
|
|
return new VoicechatConnectionImpl(player, state);
|
|
}
|
|
|
|
@Override
|
|
@Nullable
|
|
public de.maxhenkel.voicechat.api.Group getGroup() {
|
|
return this.group;
|
|
}
|
|
|
|
@Override
|
|
public boolean isInGroup() {
|
|
return this.group != null;
|
|
}
|
|
|
|
@Override
|
|
public void setGroup(@Nullable de.maxhenkel.voicechat.api.Group group) {
|
|
Server server = Voicechat.SERVER.getServer();
|
|
if (server == null) {
|
|
return;
|
|
}
|
|
if (group == null) {
|
|
server.getGroupManager().leaveGroup((Player)this.player.getPlayer());
|
|
return;
|
|
}
|
|
if (group instanceof GroupImpl) {
|
|
GroupImpl g = (GroupImpl)group;
|
|
Group actualGroup = server.getGroupManager().getGroup(g.getGroup().getId());
|
|
if (actualGroup == null) {
|
|
server.getGroupManager().addGroup(g.getGroup(), this.serverPlayer);
|
|
actualGroup = g.getGroup();
|
|
}
|
|
server.getGroupManager().joinGroup(actualGroup, this.serverPlayer, g.getGroup().getPassword());
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public boolean isConnected() {
|
|
return !this.state.isDisconnected();
|
|
}
|
|
|
|
@Override
|
|
public void setConnected(boolean connected) {
|
|
if (this.isInstalled()) {
|
|
return;
|
|
}
|
|
Server server = Voicechat.SERVER.getServer();
|
|
if (server == null) {
|
|
return;
|
|
}
|
|
PlayerStateManager manager = server.getPlayerStateManager();
|
|
PlayerState actualState = manager.getState(this.state.getUuid());
|
|
if (actualState == null) {
|
|
return;
|
|
}
|
|
if (actualState.isDisconnected() != connected) {
|
|
return;
|
|
}
|
|
actualState.setDisconnected(!connected);
|
|
manager.broadcastState(null, actualState);
|
|
}
|
|
|
|
@Override
|
|
public boolean isDisabled() {
|
|
return this.state.isDisabled();
|
|
}
|
|
|
|
@Override
|
|
public void setDisabled(boolean disabled) {
|
|
if (this.isInstalled()) {
|
|
return;
|
|
}
|
|
Server server = Voicechat.SERVER.getServer();
|
|
if (server == null) {
|
|
return;
|
|
}
|
|
PlayerStateManager manager = server.getPlayerStateManager();
|
|
PlayerState actualState = manager.getState(this.state.getUuid());
|
|
if (actualState == null) {
|
|
return;
|
|
}
|
|
if (actualState.isDisabled() == disabled) {
|
|
return;
|
|
}
|
|
actualState.setDisabled(disabled);
|
|
manager.broadcastState(null, actualState);
|
|
}
|
|
|
|
@Override
|
|
public boolean isInstalled() {
|
|
return Voicechat.SERVER.isCompatible(this.serverPlayer);
|
|
}
|
|
|
|
@Override
|
|
public ServerPlayer getPlayer() {
|
|
return this.player;
|
|
}
|
|
}
|
|
|