mirror of
https://github.com/ProjectSWGCore/NGECore2.git
synced 2026-09-12 22:45:31 -04:00
Refactored ChatRoom to store Strings for lists instead of CreatureObject
This commit is contained in:
@@ -54,37 +54,37 @@ public class ChatQueryRoomResults extends SWGMessage {
|
||||
buffer.putShort((short) 7);
|
||||
buffer.putInt(0xC4DE864E);
|
||||
|
||||
Vector<CreatureObject> users = room.getUserList();
|
||||
Vector<String> users = room.getUserList();
|
||||
|
||||
buffer.putInt(users.size());
|
||||
if (users.size() > 0) {
|
||||
for (CreatureObject creo : users) {
|
||||
for (String str : users) {
|
||||
buffer.put(getAsciiString("SWG"));
|
||||
buffer.put(getAsciiString(server));
|
||||
buffer.put(getAsciiString(creo.getCustomName()));
|
||||
buffer.put(getAsciiString(str));
|
||||
}
|
||||
}
|
||||
|
||||
buffer.putInt(0); // TODO: Invited list for chat rooms
|
||||
|
||||
Vector<CreatureObject> moderators = room.getModeratorList();
|
||||
Vector<String> moderators = room.getModeratorList();
|
||||
|
||||
buffer.putInt(moderators.size());
|
||||
if (moderators.size() > 0) {
|
||||
for (CreatureObject creo : users) {
|
||||
for (String str : moderators) {
|
||||
buffer.put(getAsciiString("SWG"));
|
||||
buffer.put(getAsciiString(server));
|
||||
buffer.put(getAsciiString(creo.getCustomName()));
|
||||
buffer.put(getAsciiString(str));
|
||||
}
|
||||
}
|
||||
|
||||
Vector<CreatureObject> banned = room.getBanList();
|
||||
Vector<String> banned = room.getBanList();
|
||||
buffer.putInt(banned.size());
|
||||
if (banned.size() > 0) {
|
||||
for (CreatureObject creo : users) {
|
||||
for (String str : banned) {
|
||||
buffer.put(getAsciiString("SWG"));
|
||||
buffer.put(getAsciiString(server));
|
||||
buffer.put(getAsciiString(creo.getCustomName()));
|
||||
buffer.put(getAsciiString(str));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -37,10 +37,10 @@ public class ChatRoom {
|
||||
private int roomId;
|
||||
private String roomAddress; // name
|
||||
|
||||
private Vector<CreatureObject> moderatorList = new Vector<CreatureObject>();
|
||||
private Vector<CreatureObject> banList = new Vector<CreatureObject>();
|
||||
private Vector<String> moderatorList = new Vector<String>();
|
||||
private Vector<String> banList = new Vector<String>();
|
||||
@NotPersistent
|
||||
private Vector<CreatureObject> userList = new Vector<CreatureObject>(); // current users
|
||||
private Vector<String> userList = new Vector<String>(); // current users
|
||||
|
||||
private boolean moderatorsOnly;
|
||||
private boolean privateRoom;
|
||||
@@ -50,9 +50,9 @@ public class ChatRoom {
|
||||
public String getCreator() {
|
||||
return creator;
|
||||
}
|
||||
|
||||
|
||||
public void setCreator(String creator) {
|
||||
this.creator = creator;
|
||||
this.creator = creator.toLowerCase();
|
||||
}
|
||||
|
||||
public String getRoomAddress() {
|
||||
@@ -71,22 +71,14 @@ public class ChatRoom {
|
||||
this.roomId = roomId;
|
||||
}
|
||||
|
||||
public Vector<CreatureObject> getModeratorList() {
|
||||
public Vector<String> getModeratorList() {
|
||||
return moderatorList;
|
||||
}
|
||||
|
||||
public void setModeratorList(Vector<CreatureObject> moderatorList) {
|
||||
this.moderatorList = moderatorList;
|
||||
}
|
||||
|
||||
public Vector<CreatureObject> getUserList() {
|
||||
public Vector<String> getUserList() {
|
||||
return userList;
|
||||
}
|
||||
|
||||
public void setUserList(Vector<CreatureObject> userList) {
|
||||
this.userList = userList;
|
||||
}
|
||||
|
||||
public boolean isModeratorsOnly() {
|
||||
return moderatorsOnly;
|
||||
}
|
||||
@@ -108,17 +100,13 @@ public class ChatRoom {
|
||||
}
|
||||
|
||||
public void setOwner(String owner) {
|
||||
this.owner = owner;
|
||||
this.owner = owner.toLowerCase();
|
||||
}
|
||||
|
||||
public Vector<CreatureObject> getBanList() {
|
||||
public Vector<String> getBanList() {
|
||||
return banList;
|
||||
}
|
||||
|
||||
public void setBanList(Vector<CreatureObject> banList) {
|
||||
this.banList = banList;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
@@ -134,4 +122,28 @@ public class ChatRoom {
|
||||
public void setVisible(boolean visible) {
|
||||
this.visible = visible;
|
||||
}
|
||||
|
||||
public void addUser(String user) {
|
||||
userList.add(user.toLowerCase());
|
||||
}
|
||||
|
||||
public void addModerator(String moderator) {
|
||||
moderatorList.add(moderator.toLowerCase());
|
||||
}
|
||||
|
||||
public void banUser(String user) {
|
||||
banList.add(user.toLowerCase());
|
||||
}
|
||||
|
||||
public boolean hasUser(String user) {
|
||||
return userList.contains(user.toLowerCase());
|
||||
}
|
||||
|
||||
public boolean hasModerator(String moderator) {
|
||||
return moderatorList.contains(moderator.toLowerCase());
|
||||
}
|
||||
|
||||
public boolean hasBan(String user) {
|
||||
return banList.contains(user.toLowerCase());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -451,7 +451,7 @@ public class ChatService implements INetworkDispatch {
|
||||
ChatEnterRoomById sentPacket = new ChatEnterRoomById();
|
||||
sentPacket.deserialize(data);
|
||||
|
||||
joinChatRoom((CreatureObject) obj, sentPacket.getRoomId());
|
||||
joinChatRoom(obj.getCustomName(), sentPacket.getRoomId());
|
||||
|
||||
//System.out.println("Entering room... " + sentPacket.getRoomId());
|
||||
|
||||
@@ -763,24 +763,25 @@ public class ChatService implements INetworkDispatch {
|
||||
return room;
|
||||
}
|
||||
|
||||
public void joinChatRoom(CreatureObject player, int roomId) {
|
||||
public void joinChatRoom(String user, int roomId) {
|
||||
|
||||
String playerName = player.getCustomName().toLowerCase();
|
||||
|
||||
if (playerName.contains(" "))
|
||||
playerName = playerName.split(" ")[0];
|
||||
if (user.contains(" "))
|
||||
user = user.split(" ")[0];
|
||||
|
||||
ChatRoom room = getChatRoom(roomId);
|
||||
if (room == null)
|
||||
return;
|
||||
|
||||
ChatOnEnteredRoom enterRoom = new ChatOnEnteredRoom(playerName, 0, roomId, true);
|
||||
|
||||
if (!room.getUserList().contains(player))
|
||||
room.getUserList().add(player);
|
||||
|
||||
room.getUserList().stream().forEach(user -> user.getClient().getSession().write(enterRoom.serialize()));
|
||||
if (!room.hasUser(user)) {
|
||||
|
||||
ChatOnEnteredRoom enterRoom = new ChatOnEnteredRoom(user, 0, roomId, true);
|
||||
room.addUser(user);
|
||||
|
||||
room.getUserList().stream().forEach(str -> {
|
||||
SWGObject userObj = getObjectByFirstName(str);
|
||||
if (userObj != null) { userObj.getClient().getSession().write(enterRoom.serialize()); }
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public void leaveChatRoom(CreatureObject player, int roomId) {
|
||||
@@ -815,11 +816,8 @@ public class ChatService implements INetworkDispatch {
|
||||
sender.getClient().getSession().write(onSend.serialize());
|
||||
|
||||
ChatRoomMessage roomMessage = new ChatRoomMessage(roomId, senderName, message);
|
||||
Vector<CreatureObject> users = room.getUserList();
|
||||
Vector<String> users = room.getUserList();
|
||||
|
||||
for (CreatureObject user : users) {
|
||||
user.getClient().getSession().write(roomMessage.serialize());
|
||||
}
|
||||
}
|
||||
|
||||
public ConcurrentHashMap<Integer, ChatRoom> getChatRooms() {
|
||||
|
||||
Reference in New Issue
Block a user