BungeeChatAccount.java
package dev.aura.bungeechat.api.account;
import dev.aura.bungeechat.api.enums.AccountType;
import dev.aura.bungeechat.api.enums.ChannelType;
import java.sql.Timestamp;
import java.util.Optional;
import java.util.UUID;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.TimeUnit;
public interface BungeeChatAccount {
public static final String unknownServer = "unknown";
public UUID getUniqueId();
public default AccountType getAccountType() {
return AccountType.PLAYER;
}
public ChannelType getChannelType();
/**
* Returns the <b>global</b> default channel type for <b>all players</b>!!
*
* @return default channel type
*/
public ChannelType getDefaultChannelType();
public boolean isVanished();
public boolean hasMessengerEnabled();
public boolean hasSocialSpyEnabled();
public boolean hasLocalSpyEnabled();
public BlockingQueue<UUID> getIgnored();
public default boolean hasIgnored(UUID uuid) {
return getIgnored().contains(uuid);
}
public default boolean hasIgnored(BungeeChatAccount account) {
return this.hasIgnored(account.getUniqueId());
}
public String getName();
public default String getDisplayName() {
return getName();
}
public int getPing();
public String getServerName();
public String getServerIP();
public Timestamp getMutedUntil();
public default boolean isMuted() {
return getMutedUntil().after(new Timestamp(System.currentTimeMillis()));
}
public Optional<String> getStoredPrefix();
public Optional<String> getStoredSuffix();
public void setChannelType(ChannelType channelType);
/**
* Sets the <b>global</b> default channel type for <b>all players</b>!!
*
* @param channelType new default channel type
*/
public void setDefaultChannelType(ChannelType channelType);
public void setVanished(boolean vanished);
public void setMessenger(boolean messenger);
public void setSocialSpy(boolean socialSpy);
public void setLocalSpy(boolean localSpy);
public default void toggleVanished() {
setVanished(!isVanished());
}
public default void toggleMessenger() {
setMessenger(!hasMessengerEnabled());
}
public default void toggleSocialSpy() {
setSocialSpy(!hasSocialSpyEnabled());
}
public default void toggleLocalSpy() {
setLocalSpy(!hasLocalSpyEnabled());
}
public void addIgnore(UUID uuid);
public default void addIgnore(BungeeChatAccount account) {
this.addIgnore(account.getUniqueId());
}
public void removeIgnore(UUID uuid);
public default void removeIgnore(BungeeChatAccount account) {
this.removeIgnore(account.getUniqueId());
}
public void setMutedUntil(Timestamp mutedUntil);
public default void setMutedUntil(long mutedUntilMillis) {
setMutedUntil(new Timestamp(mutedUntilMillis));
}
default void mutePermanently() {
setMutedUntil(Timestamp.valueOf("9999-12-31 23:59:59"));
}
default void muteFor(long amount, TimeUnit timeUnit) {
setMutedUntil(System.currentTimeMillis() + timeUnit.toMillis(amount));
}
default void unmute() {
setMutedUntil(0L);
}
public void setStoredPrefix(Optional<String> newPrefix);
public void setStoredSuffix(Optional<String> newSuffix);
}