From 2aa5e497ca2ce27bcd56ebac36ac9be34c01a00d Mon Sep 17 00:00:00 2001 From: Ziggy Date: Fri, 10 Jul 2020 00:32:50 +0200 Subject: [PATCH] Removed IntentFactory because it's been replaced by static broadcast methods in each Intent --- .../radial/terminal/TerminalBankRadial.java | 7 +- .../skills/skillmod/SkillModService.java | 6 +- .../gameplay/player/group/GroupService.java | 4 +- .../holocore/utilities/IntentFactory.java | 147 ------------------ 4 files changed, 10 insertions(+), 154 deletions(-) delete mode 100644 src/main/java/com/projectswg/holocore/utilities/IntentFactory.java diff --git a/src/main/java/com/projectswg/holocore/resources/support/objects/radial/terminal/TerminalBankRadial.java b/src/main/java/com/projectswg/holocore/resources/support/objects/radial/terminal/TerminalBankRadial.java index 709fd8884..97a492121 100644 --- a/src/main/java/com/projectswg/holocore/resources/support/objects/radial/terminal/TerminalBankRadial.java +++ b/src/main/java/com/projectswg/holocore/resources/support/objects/radial/terminal/TerminalBankRadial.java @@ -1,5 +1,7 @@ package com.projectswg.holocore.resources.support.objects.radial.terminal; +import com.projectswg.common.data.encodables.oob.ProsePackage; +import com.projectswg.common.data.encodables.oob.StringId; import com.projectswg.common.data.radial.RadialItem; import com.projectswg.common.data.radial.RadialOption; import com.projectswg.common.data.sui.SuiEvent; @@ -12,7 +14,6 @@ import com.projectswg.holocore.resources.support.objects.radial.RadialHandlerInt 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.player.PlayerObject; -import com.projectswg.holocore.utilities.IntentFactory; import java.util.ArrayList; import java.util.Collection; @@ -109,7 +110,7 @@ public class TerminalBankRadial implements RadialHandlerInterface { creature.setBankBalance(amount + creature.getBankBalance()); creature.setCashBalance(0L); if (amount > 0) - IntentFactory.sendSystemMessage(player, "@base_player:prose_deposit_success", "DI", (int) amount); + SystemMessageIntent.broadcastPersonal(player, new ProsePackage(new StringId("@base_player:prose_deposit_success"), "DI", (int) amount)); else SystemMessageIntent.broadcastPersonal(player, "@error_message:bank_deposit"); } @@ -119,7 +120,7 @@ public class TerminalBankRadial implements RadialHandlerInterface { creature.setCashBalance(creature.getCashBalance() + amount); creature.setBankBalance(0L); if (amount > 0) - IntentFactory.sendSystemMessage(player, "@base_player:prose_withdraw_success", "DI", (int) amount); + SystemMessageIntent.broadcastPersonal(player, new ProsePackage(new StringId("@base_player:prose_withdraw_success"), "DI", (int) amount)); else SystemMessageIntent.broadcastPersonal(player, "@error_message:bank_withdraw"); } diff --git a/src/main/java/com/projectswg/holocore/services/gameplay/player/experience/skills/skillmod/SkillModService.java b/src/main/java/com/projectswg/holocore/services/gameplay/player/experience/skills/skillmod/SkillModService.java index b19e2361e..9f0569cbd 100644 --- a/src/main/java/com/projectswg/holocore/services/gameplay/player/experience/skills/skillmod/SkillModService.java +++ b/src/main/java/com/projectswg/holocore/services/gameplay/player/experience/skills/skillmod/SkillModService.java @@ -26,12 +26,15 @@ ***********************************************************************************/ package com.projectswg.holocore.services.gameplay.player.experience.skills.skillmod; +import com.projectswg.common.data.encodables.oob.ProsePackage; +import com.projectswg.common.data.encodables.oob.StringId; import com.projectswg.common.data.encodables.tangible.Race; import com.projectswg.common.data.info.RelationalServerData; import com.projectswg.common.data.info.RelationalServerFactory; import com.projectswg.holocore.ProjectSWG; import com.projectswg.holocore.intents.gameplay.player.experience.LevelChangedIntent; import com.projectswg.holocore.intents.gameplay.player.experience.skills.SkillModIntent; +import com.projectswg.holocore.intents.support.global.chat.SystemMessageIntent; import com.projectswg.holocore.intents.support.global.zone.creation.CreatedCharacterIntent; import com.projectswg.holocore.intents.support.objects.swg.ContainerTransferIntent; import com.projectswg.holocore.resources.support.global.player.Player; @@ -39,7 +42,6 @@ import com.projectswg.holocore.resources.support.objects.swg.creature.CreatureOb import com.projectswg.holocore.resources.support.objects.swg.player.PlayerObject; import com.projectswg.holocore.resources.support.objects.swg.player.Profession; import com.projectswg.holocore.services.gameplay.player.experience.skills.skillmod.adjust.*; -import com.projectswg.holocore.utilities.IntentFactory; import me.joshlarson.jlcommon.control.IntentHandler; import me.joshlarson.jlcommon.control.Service; import me.joshlarson.jlcommon.log.Log; @@ -349,7 +351,7 @@ public class SkillModService extends Service { private void sendSystemMessage(Player target, String id, Object... objects) { if (target != null){ - IntentFactory.sendSystemMessage(target, "@spam:" + id, objects); + SystemMessageIntent.broadcastPersonal(target, new ProsePackage(new StringId("@spam:" + id), objects)); } } diff --git a/src/main/java/com/projectswg/holocore/services/gameplay/player/group/GroupService.java b/src/main/java/com/projectswg/holocore/services/gameplay/player/group/GroupService.java index 29a81ed88..2b259c505 100644 --- a/src/main/java/com/projectswg/holocore/services/gameplay/player/group/GroupService.java +++ b/src/main/java/com/projectswg/holocore/services/gameplay/player/group/GroupService.java @@ -28,6 +28,7 @@ package com.projectswg.holocore.services.gameplay.player.group; import com.projectswg.common.data.encodables.chat.ChatAvatar; import com.projectswg.common.data.encodables.oob.ProsePackage; +import com.projectswg.common.data.encodables.oob.StringId; import com.projectswg.common.data.sui.SuiEvent; import com.projectswg.holocore.intents.gameplay.player.group.GroupEventIntent; import com.projectswg.holocore.intents.support.global.chat.ChatRoomUpdateIntent; @@ -45,7 +46,6 @@ import com.projectswg.holocore.resources.support.objects.ObjectCreator; 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 com.projectswg.holocore.utilities.IntentFactory; import me.joshlarson.jlcommon.control.IntentHandler; import me.joshlarson.jlcommon.control.Service; @@ -464,6 +464,6 @@ public class GroupService extends Service { } private void sendSystemMessage(Player target, String id, Object... objects) { - IntentFactory.sendSystemMessage(target, "@group:" + id, objects); + SystemMessageIntent.broadcastPersonal(target, new ProsePackage(new StringId("@group:" + id), objects)); } } diff --git a/src/main/java/com/projectswg/holocore/utilities/IntentFactory.java b/src/main/java/com/projectswg/holocore/utilities/IntentFactory.java deleted file mode 100644 index ab1540ed1..000000000 --- a/src/main/java/com/projectswg/holocore/utilities/IntentFactory.java +++ /dev/null @@ -1,147 +0,0 @@ -/*********************************************************************************** - * Copyright (c) 2018 /// Project SWG /// www.projectswg.com * - * * - * ProjectSWG is the first NGE emulator for Star Wars Galaxies founded on * - * July 7th, 2011 after SOE announced the official shutdown of Star Wars Galaxies. * - * Our goal is to create an emulator which will provide a server for players to * - * continue playing a game similar to the one they used to play. We are basing * - * it on the final publish of the game prior to end-game events. * - * * - * This file is part of Holocore. * - * * - * --------------------------------------------------------------------------------* - * * - * Holocore is free software: you can redistribute it and/or modify * - * it under the terms of the GNU Affero General Public License as * - * published by the Free Software Foundation, either version 3 of the * - * License, or (at your option) any later version. * - * * - * Holocore is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU Affero General Public License for more details. * - * * - * You should have received a copy of the GNU Affero General Public License * - * along with Holocore. If not, see . * - ***********************************************************************************/ -package com.projectswg.holocore.utilities; - -import com.projectswg.common.data.encodables.oob.OutOfBandPackage; -import com.projectswg.common.data.encodables.oob.ProsePackage; -import com.projectswg.common.data.encodables.oob.StringId; -import com.projectswg.common.data.encodables.oob.waypoint.WaypointPackage; -import com.projectswg.common.data.encodables.player.Mail; -import com.projectswg.common.data.location.Terrain; -import com.projectswg.common.network.packets.swg.zone.chat.ChatSystemMessage; -import com.projectswg.holocore.intents.support.global.chat.PersistentMessageIntent; -import com.projectswg.holocore.intents.support.global.chat.SystemMessageIntent; -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.waypoint.WaypointObject; -import me.joshlarson.jlcommon.log.Log; - -/** - * @author Mads - * This class is to be used exclusively in cases where using the intents directly isn't practical. - */ -public final class IntentFactory { - - /** - * Sends a system message around the observing players for the source {@link Player}. - * @param message System message to broadcast. - * @param source Source of the system message, anyone observing this player will receive the system message. - */ - public void broadcastArea(String message, Player source) { - SystemMessageIntent.broadcastArea(source, message); - } - - /** - * Sends a system message to the entire galaxy. - * @param message System message to broadcast. - * @param source The source of this system message. - */ - public void broadcastGalaxy(String message, Player source) { - SystemMessageIntent.broadcastGalaxy(message); - } - - /** - * Sends a system message to all players who are on the specified {@link Terrain}. - * @param terrain Terrain to broadcast system message on. - * @param message System message to broadcast. - */ - public void broadcastPlanet(Terrain terrain, String message) { - SystemMessageIntent.broadcastPlanet(terrain, message); - } - - /** - * Sends a system message to the target. - * @param target Player receiving the message. - * @param message System message to send. - */ - public void sendSystemMessage(Player target, String message) { - SystemMessageIntent.broadcastPersonal(target, message); - } - - /** - * Sends a system message to the target as a ProsePackage which allows prose keys to be used. - *

- * Example:
- *      sendSystemMessage(target, "base_player", "prose_deposit_success", "DI", 500); - *

- * Using this method is the same as:
- *   new SystemMessageIntent(target, new ProsePackage("StringId", new StringId(table, key), objects)).broadcast(); - * @param target Player receiving the system message. - * @param stf The string stf table to use for this system message. It should be formatted as such:

- * example_key where @example refers to the stf example.stf in string/en folder and example_key is the key to use for the stf. - * @param objects Collection of prose keys followed by with the value for the prose key.
As an example, ("DI", 500) would - * set the %DI to the value of 500 for the StringId. - * Note that the prose key must always come first and the value for that key must always come second. - */ - public static void sendSystemMessage(Player target, String stf, Object ... objects) { - if (objects.length % 2 != 0) - Log.e("Sent a ProsePackage chat message with an uneven number of object arguments for StringId %s", stf); - SystemMessageIntent.broadcastPersonal(target, new ProsePackage(new StringId(stf), objects)); - } - - /** - * Sends a message to just the console chat for the target. - * @param target Player to receive the message - * @param message Message to display in the players chat console. - */ - public void sendConsoleMessage(Player target, String message) { - target.sendPacket(new ChatSystemMessage(ChatSystemMessage.SystemChatType.CHAT_BOX, message)); - } - - /** - * Sends a mail to the receiver with the specified subject, message, from the specified sender. - * @param receiver Player receiving the mail. - * @param sender The sender of this mail. - * @param subject Subject of the mail. - * @param message Message for the mail. - */ - public void sendMail(SWGObject receiver, String sender, String subject, String message) { - Mail mail = new Mail(sender, subject, message, receiver.getObjectId()); - - new PersistentMessageIntent(receiver, mail, receiver.getOwner().getGalaxyName()).broadcast(); - } - - /** - * Sends a mail to the receiver with the specified subject, message, from the specified sender. In addition to a normal - * string based mail, the provided waypoints are added as attachments to the message. - * @param receiver Player receiving the mail. - * @param sender The sender of this mail. - * @param subject Subject of the mail. - * @param message Message for the mail. - * @param waypoints Waypoints to attach to the mail. - */ - public void sendMail(SWGObject receiver, String sender, String subject, String message, WaypointObject... waypoints) { - Mail mail = new Mail(sender, subject, message, receiver.getObjectId()); - WaypointPackage [] packages = new WaypointPackage[waypoints.length]; - for (int i = 0; i < waypoints.length; i++) - packages[i] = waypoints[i].getOOB(); - mail.setOutOfBandPackage(new OutOfBandPackage(packages)); - - new PersistentMessageIntent(receiver, mail, receiver.getOwner().getGalaxyName()).broadcast(); - } - -}