Chat/api/src/main/java/com/alttd/chat/objects/ChatUser.java

145 lines
4.6 KiB
Java
Raw Normal View History

2021-06-02 17:55:55 +00:00
package com.alttd.chat.objects;
2021-05-14 00:33:23 +00:00
import com.alttd.chat.database.Queries;
import com.alttd.chat.util.Utility;
2021-05-14 00:33:23 +00:00
2021-05-15 22:28:47 +00:00
import java.util.LinkedList;
2021-05-14 00:33:23 +00:00
import java.util.UUID;
public class ChatUser {
2021-06-07 08:51:00 +00:00
private final UUID uuid; // player uuid
private final int partyId; // the party they are in
private boolean toggledPartyChat; // should chat messages instantly go to party chat when added, idk if this should be saved
private String displayName; // the nickname, doesn't need to be saved with the chatuser object, could be saved but we can get it from the nicknamesview
private String prefix; // doesn't need saving, we get this from luckperms
private String staffPrefix; // doesn't need saving, we get this from luckperms
private String prefixAll; // doesn't need saving, we get this from luckperms
private boolean toggleGc; // should be saved, this toggles if the player can see and use global chat
2021-06-23 19:44:04 +00:00
private String replyTarget; // reply target for use in /msg i don't mind setting this to null on login, feedback?
2021-06-07 08:51:00 +00:00
private long gcCooldown; // the time when they last used gc, is used for the cooldown, i wouldn't save this, but setting this to the login time means they can't use gc for 30 seconds after logging in
private LinkedList<Mail> mails; // mails aren't finalized yet, so for now a table sender, reciever, sendtime, readtime(if emtpy mail isn't read yet?, could also do a byte to control this), the actual message
private LinkedList<UUID> ignoredPlayers; // a list of UUID, a new table non unique, where one is is the player select * from ignores where ignoredby = thisplayer? where the result is the uuid of the player ignored by this player?
private LinkedList<UUID> ignoredBy; // a list of UUID, same table as above but select * from ignores where ignored = thisplayer? result should be the other user that ignored this player?
2021-05-15 22:28:47 +00:00
2021-06-07 13:41:05 +00:00
public ChatUser(UUID uuid, int partyId, boolean toggledChat, boolean toggleGc) {
2021-05-14 00:33:23 +00:00
this.uuid = uuid;
this.partyId = partyId;
2021-06-07 13:41:05 +00:00
this.toggledPartyChat = toggledChat;
2021-05-14 00:33:23 +00:00
2021-06-13 11:53:49 +00:00
//displayName = Queries.getNickname(uuid); // todo fix sql
//if (displayName == null) {
displayName = Utility.getDisplayName(uuid);
2021-06-13 11:53:49 +00:00
//}
2021-05-14 00:33:23 +00:00
prefix = Utility.getPrefix(uuid, true);
staffPrefix = Utility.getStaffPrefix(uuid);
2021-05-22 18:34:32 +00:00
prefixAll = Utility.getPrefix(uuid, false);
2021-06-07 13:41:05 +00:00
this.toggleGc = toggleGc;
2021-05-15 22:28:47 +00:00
replyTarget = null;
2021-06-07 08:38:38 +00:00
gcCooldown = System.currentTimeMillis(); // players can't use gc for 30 seconds after logging in if we use this?
2021-05-15 22:28:47 +00:00
mails = new LinkedList<>(); // todo load mails
ignoredPlayers = Queries.getIgnoredUsers(uuid);
2021-06-07 08:51:00 +00:00
ignoredBy = new LinkedList<>(); // todo load ignoredPlayers
2021-05-14 00:33:23 +00:00
}
public UUID getUuid() {
return uuid;
}
public int getPartyId() {
return partyId;
}
2021-05-16 00:02:03 +00:00
public boolean toggledPartyChat() {
return toggledPartyChat;
2021-05-14 00:33:23 +00:00
}
2021-05-16 00:02:03 +00:00
public void togglePartyChat() {
toggledPartyChat = !toggledPartyChat;
2021-05-22 18:34:32 +00:00
Queries.setPartyChatState(toggledPartyChat, uuid); //TODO: Async pls - no CompleteableFuture<>!
2021-05-14 00:33:23 +00:00
}
public String getDisplayName() {
return displayName;
}
public void setDisplayName(String displayName) {
this.displayName = displayName;
}
public String getPrefix() {
return prefix;
}
public void setPrefix(String prefix) {
this.prefix = prefix;
}
public String getStaffPrefix() {
return staffPrefix;
}
public void setStaffPrefix(String staffPrefix) {
this.staffPrefix = staffPrefix;
}
public String getPrefixAll() {
return prefixAll;
}
public void setPrefixAll(String prefixAll) {
this.prefixAll = prefixAll;
}
public void toggleGc() {
toggleGc = !toggleGc;
}
public boolean isGcOn() {
return toggleGc;
}
2021-05-15 19:16:01 +00:00
2021-06-23 19:44:04 +00:00
public String getReplyTarget() {
2021-05-15 22:28:47 +00:00
return replyTarget;
}
2021-06-23 19:44:04 +00:00
public void setReplyTarget(String replyTarget) {
2021-05-15 22:28:47 +00:00
this.replyTarget = replyTarget;
2021-05-15 19:16:01 +00:00
}
2021-05-15 22:28:47 +00:00
public LinkedList<Mail> getMails() {
return mails;
2021-05-15 19:16:01 +00:00
}
2021-05-22 18:34:32 +00:00
public void addMail(Mail mail) {
mails.add(mail);
}
2021-06-06 19:32:13 +00:00
2021-06-07 08:38:38 +00:00
public LinkedList<UUID> getIgnoredPlayers() {
return ignoredPlayers;
}
public void addIgnoredPlayers(UUID uuid) {
ignoredPlayers.add(uuid);
}
2021-06-07 08:51:00 +00:00
public LinkedList<UUID> getIgnoredBy() {
return ignoredBy;
}
public void addIgnoredBy(UUID uuid) {
ignoredBy.add(uuid);
}
2021-06-06 19:32:13 +00:00
public long getGcCooldown() {
return gcCooldown;
}
2021-06-07 08:38:38 +00:00
public void setGcCooldown(long time) {
this.gcCooldown = time;
}
2021-05-14 00:33:23 +00:00
}