111 lines
3.6 KiB
Java
111 lines
3.6 KiB
Java
package com.hypixel.hytale.builtin.asseteditor;
|
|
|
|
import com.hypixel.hytale.protocol.FormattedMessage;
|
|
import com.hypixel.hytale.protocol.packets.asseteditor.AssetEditorPopupNotification;
|
|
import com.hypixel.hytale.protocol.packets.asseteditor.AssetEditorPopupNotificationType;
|
|
import com.hypixel.hytale.protocol.packets.asseteditor.FailureReply;
|
|
import com.hypixel.hytale.protocol.packets.asseteditor.SuccessReply;
|
|
import com.hypixel.hytale.server.core.Message;
|
|
import com.hypixel.hytale.server.core.auth.PlayerAuthentication;
|
|
import com.hypixel.hytale.server.core.io.PacketHandler;
|
|
import com.hypixel.hytale.server.core.permissions.PermissionHolder;
|
|
import com.hypixel.hytale.server.core.permissions.PermissionsModule;
|
|
import com.hypixel.hytale.server.core.universe.PlayerRef;
|
|
import com.hypixel.hytale.server.core.universe.Universe;
|
|
import java.util.UUID;
|
|
import javax.annotation.Nonnull;
|
|
import javax.annotation.Nullable;
|
|
|
|
public class EditorClient implements PermissionHolder {
|
|
private String language;
|
|
private final UUID uuid;
|
|
private final String username;
|
|
@Nullable
|
|
private final PlayerAuthentication auth;
|
|
private final PacketHandler packetHandler;
|
|
|
|
public EditorClient(String language, @Nonnull PlayerAuthentication auth, PacketHandler packetHandler) {
|
|
this.language = language;
|
|
this.uuid = auth.getUuid();
|
|
this.username = auth.getUsername();
|
|
this.auth = auth;
|
|
this.packetHandler = packetHandler;
|
|
}
|
|
|
|
public EditorClient(String language, UUID uuid, String username, PacketHandler packetHandler) {
|
|
this.language = language;
|
|
this.uuid = uuid;
|
|
this.username = username;
|
|
this.auth = null;
|
|
this.packetHandler = packetHandler;
|
|
}
|
|
|
|
@Deprecated
|
|
public EditorClient(@Nonnull PlayerRef playerRef) {
|
|
this.language = playerRef.getLanguage();
|
|
this.uuid = playerRef.getUuid();
|
|
this.username = playerRef.getUsername();
|
|
this.auth = null;
|
|
this.packetHandler = playerRef.getPacketHandler();
|
|
}
|
|
|
|
public String getLanguage() {
|
|
return this.language;
|
|
}
|
|
|
|
public void setLanguage(String language) {
|
|
this.language = language;
|
|
}
|
|
|
|
public UUID getUuid() {
|
|
return this.uuid;
|
|
}
|
|
|
|
public String getUsername() {
|
|
return this.username;
|
|
}
|
|
|
|
@Nullable
|
|
public PlayerAuthentication getAuth() {
|
|
return this.auth;
|
|
}
|
|
|
|
public PacketHandler getPacketHandler() {
|
|
return this.packetHandler;
|
|
}
|
|
|
|
@Nullable
|
|
public PlayerRef tryGetPlayer() {
|
|
return Universe.get().getPlayer(this.uuid);
|
|
}
|
|
|
|
@Override
|
|
public boolean hasPermission(@Nonnull String id) {
|
|
return PermissionsModule.get().hasPermission(this.uuid, id);
|
|
}
|
|
|
|
@Override
|
|
public boolean hasPermission(@Nonnull String id, boolean def) {
|
|
return PermissionsModule.get().hasPermission(this.uuid, id, def);
|
|
}
|
|
|
|
public void sendPopupNotification(AssetEditorPopupNotificationType type, @Nonnull Message message) {
|
|
FormattedMessage msg = message.getFormattedMessage();
|
|
this.getPacketHandler().write(new AssetEditorPopupNotification(type, msg));
|
|
}
|
|
|
|
public void sendSuccessReply(int token) {
|
|
this.sendSuccessReply(token, null);
|
|
}
|
|
|
|
public void sendSuccessReply(int token, @Nullable Message message) {
|
|
FormattedMessage msg = message != null ? message.getFormattedMessage() : null;
|
|
this.getPacketHandler().write(new SuccessReply(token, msg));
|
|
}
|
|
|
|
public void sendFailureReply(int token, @Nonnull Message message) {
|
|
FormattedMessage msg = message.getFormattedMessage();
|
|
this.getPacketHandler().write(new FailureReply(token, msg));
|
|
}
|
|
}
|