mirror of
https://github.com/ProjectSWGCore/Holocore.git
synced 2026-10-07 22:13:40 -04:00
Fixed /groupchat command
This commit is contained in:
+37
@@ -0,0 +1,37 @@
|
||||
package com.projectswg.holocore.intents.support.global.chat;
|
||||
|
||||
import com.projectswg.holocore.resources.support.global.player.Player;
|
||||
import me.joshlarson.jlcommon.control.Intent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class ChatRoomMessageIntent extends Intent {
|
||||
|
||||
private final Player player;
|
||||
private final String roomPath;
|
||||
private final String message;
|
||||
|
||||
public ChatRoomMessageIntent(@NotNull Player player, @NotNull String roomPath, @NotNull String message) {
|
||||
this.player = player;
|
||||
this.roomPath = roomPath;
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Player getPlayer() {
|
||||
return player;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public String getRoomPath() {
|
||||
return roomPath;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
public static void broadcast(@NotNull Player player, @NotNull String roomPath, @NotNull String message) {
|
||||
new ChatRoomMessageIntent(player, roomPath, message).broadcast();
|
||||
}
|
||||
}
|
||||
+2
-5
@@ -59,9 +59,6 @@ public class ChatRoomUpdateIntent extends Intent {
|
||||
case CREATE:
|
||||
this.title = title;
|
||||
break;
|
||||
case SEND_MESSAGE:
|
||||
this.message = message;
|
||||
break;
|
||||
default:
|
||||
this.target = target;
|
||||
break;
|
||||
@@ -135,7 +132,7 @@ public class ChatRoomUpdateIntent extends Intent {
|
||||
BANNED_ADD_TARGET,
|
||||
BANNED_REMOVE_TARGET,
|
||||
INVITED_ADD_TARGET,
|
||||
INVITED_REMOVE_TARGET,
|
||||
SEND_MESSAGE
|
||||
INVITED_REMOVE_TARGET
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+16
@@ -1,15 +1,31 @@
|
||||
package com.projectswg.holocore.resources.support.global.commands.callbacks.group;
|
||||
|
||||
import com.projectswg.holocore.intents.support.global.chat.ChatRoomMessageIntent;
|
||||
import com.projectswg.holocore.intents.support.global.chat.ChatRoomUpdateIntent;
|
||||
import com.projectswg.holocore.resources.support.global.commands.ICmdCallback;
|
||||
import com.projectswg.holocore.resources.support.global.player.Player;
|
||||
import com.projectswg.holocore.resources.support.objects.swg.SWGObject;
|
||||
import com.projectswg.holocore.resources.support.objects.swg.creature.CreatureObject;
|
||||
import com.projectswg.holocore.resources.support.objects.swg.group.GroupObject;
|
||||
import com.projectswg.holocore.services.support.objects.ObjectStorageService.ObjectLookup;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public final class CmdGroupChat implements ICmdCallback {
|
||||
|
||||
@Override
|
||||
public void execute(@NotNull Player player, SWGObject target, @NotNull String args) {
|
||||
CreatureObject creature = player.getCreatureObject();
|
||||
if (creature == null)
|
||||
return;
|
||||
|
||||
long groupId = creature.getGroupId();
|
||||
if (groupId == 0)
|
||||
return;
|
||||
|
||||
GroupObject group = (GroupObject) ObjectLookup.getObjectById(groupId);
|
||||
assert group != null : "groupId is set but no GroupObject exists";
|
||||
|
||||
ChatRoomMessageIntent.broadcast(player, group.getChatRoomPath(), args);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+5
@@ -31,6 +31,7 @@ import com.projectswg.common.encoding.Encodable;
|
||||
import com.projectswg.common.encoding.StringType;
|
||||
import com.projectswg.common.network.NetBuffer;
|
||||
import com.projectswg.common.network.packets.swg.zone.baselines.Baseline;
|
||||
import com.projectswg.holocore.ProjectSWG;
|
||||
import com.projectswg.holocore.intents.gameplay.player.group.GroupEventIntent;
|
||||
import com.projectswg.holocore.intents.gameplay.player.group.GroupEventIntent.GroupEventType;
|
||||
import com.projectswg.holocore.resources.support.data.collections.SWGList;
|
||||
@@ -128,6 +129,10 @@ public class GroupObject extends SWGObject {
|
||||
return size() >= 8;
|
||||
}
|
||||
|
||||
public String getChatRoomPath() {
|
||||
return "SWG." + ProjectSWG.getGalaxy().getName() + ".group." + getObjectId() + ".GroupChat";
|
||||
}
|
||||
|
||||
public long getLeaderId() {
|
||||
return leader.getObjectId();
|
||||
}
|
||||
|
||||
+3
-9
@@ -362,15 +362,13 @@ public class GroupService extends Service {
|
||||
|
||||
new ObjectCreatedIntent(group).broadcast();
|
||||
|
||||
String galaxy = leader.getGalaxyName();
|
||||
new ChatRoomUpdateIntent(leader, new ChatAvatar(leader.getCharacterChatName()), getGroupChatPath(group.getObjectId(), galaxy), String.valueOf(group.getObjectId()), false).broadcast();
|
||||
new ChatRoomUpdateIntent(leader, new ChatAvatar(leader.getCharacterChatName()), group.getChatRoomPath(), String.valueOf(group.getObjectId()), false).broadcast();
|
||||
sendSystemMessage(leader, "formed_self", "TT", leader.getCreatureObject().getObjectId());
|
||||
onJoinGroup(member.getCreatureObject(), group);
|
||||
}
|
||||
|
||||
private void destroyGroup(GroupObject group, Player player) {
|
||||
String galaxy = player.getGalaxyName();
|
||||
new ChatRoomUpdateIntent(getGroupChatPath(group.getObjectId(), galaxy), String.valueOf(group.getObjectId()), null, new ChatAvatar(player.getCharacterChatName()), null, ChatRoomUpdateIntent.UpdateType.DESTROY).broadcast();
|
||||
new ChatRoomUpdateIntent(group.getChatRoomPath(), String.valueOf(group.getObjectId()), null, new ChatAvatar(player.getCharacterChatName()), null, ChatRoomUpdateIntent.UpdateType.DESTROY).broadcast();
|
||||
|
||||
sendGroupSystemMessage(group, "disbanded");
|
||||
group.disbandGroup();
|
||||
@@ -422,7 +420,7 @@ public class GroupService extends Service {
|
||||
}
|
||||
|
||||
private void updateChatRoom(Player player, GroupObject group, UpdateType updateType) {
|
||||
new ChatRoomUpdateIntent(player, getGroupChatPath(group.getObjectId(), player.getGalaxyName()), updateType).broadcast();
|
||||
new ChatRoomUpdateIntent(player, group.getChatRoomPath(), updateType).broadcast();
|
||||
}
|
||||
|
||||
private void clearInviteData(CreatureObject creature) {
|
||||
@@ -457,10 +455,6 @@ public class GroupService extends Service {
|
||||
}
|
||||
}
|
||||
|
||||
private String getGroupChatPath(long groupId, String galaxy) {
|
||||
return "SWG." + galaxy + ".group." + groupId + ".GroupChat";
|
||||
}
|
||||
|
||||
private GroupObject getGroup(long groupId) {
|
||||
return groups.get(groupId);
|
||||
}
|
||||
|
||||
+6
-3
@@ -34,6 +34,7 @@ import com.projectswg.common.data.encodables.oob.OutOfBandPackage;
|
||||
import com.projectswg.common.network.packets.SWGPacket;
|
||||
import com.projectswg.common.network.packets.swg.zone.chat.*;
|
||||
import com.projectswg.common.network.packets.swg.zone.insertion.ChatRoomList;
|
||||
import com.projectswg.holocore.intents.support.global.chat.ChatRoomMessageIntent;
|
||||
import com.projectswg.holocore.intents.support.global.zone.PlayerEventIntent;
|
||||
import com.projectswg.holocore.intents.support.global.chat.ChatRoomUpdateIntent;
|
||||
import com.projectswg.holocore.intents.support.global.network.InboundPacketIntent;
|
||||
@@ -142,14 +143,16 @@ public class ChatRoomService extends Service {
|
||||
case LEAVE:
|
||||
chatRoomHandler.leaveChatChannel(crui.getPlayer(), crui.getPath());
|
||||
break;
|
||||
case SEND_MESSAGE:
|
||||
chatRoomHandler.sendMessageToRoom(crui.getPlayer(), crui.getPath(), 0, crui.getMessage(), new OutOfBandPackage());
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@IntentHandler
|
||||
private void handleChatRoomMessageIntent(ChatRoomMessageIntent crmi) {
|
||||
chatRoomHandler.sendMessageToRoom(crmi.getPlayer(), crmi.getRoomPath(), 0, crmi.getMessage(), new OutOfBandPackage());
|
||||
}
|
||||
|
||||
/* Chat Rooms */
|
||||
|
||||
private ChatResult performModeratedChecks(ChatRoom room, Player senderPlayer, ChatAvatar senderAvatar) {
|
||||
|
||||
Reference in New Issue
Block a user