From 4b55bf8960ae2e50e0386f2d4dc81153ab53090b Mon Sep 17 00:00:00 2001 From: Major- Date: Sun, 3 Nov 2013 05:58:04 +0000 Subject: [PATCH] Add widget display encoders; bug fixes. --- data/plugins/bootstrap.rb | 2 +- .../game/command/CreditsCommandListener.java | 34 +++++----- .../event/handler/impl/WalkEventHandler.java | 8 +-- .../event/impl/SetWidgetItemModelEvent.java | 67 +++++++++++++++++++ .../impl/SetWidgetModelAnimationEvent.java | 51 ++++++++++++++ .../event/impl/SetWidgetNpcModelEvent.java | 51 ++++++++++++++ .../event/impl/SetWidgetPlayerModelEvent.java | 35 ++++++++++ ...TextEvent.java => SetWidgetTextEvent.java} | 4 +- .../event/impl/SetWidgetVisibilityEvent.java | 52 ++++++++++++++ src/org/apollo/game/model/WalkingQueue.java | 9 ++- .../apollo/net/release/r317/Release317.java | 14 +++- .../r317/SetWidgetItemModelEventEncoder.java | 28 ++++++++ .../SetWidgetModelAnimationEventEncoder.java | 26 +++++++ .../r317/SetWidgetNpcModelEventEncoder.java | 28 ++++++++ .../SetWidgetPlayerModelEventEncoder.java | 25 +++++++ ...er.java => SetWidgetTextEventEncoder.java} | 8 +-- .../r317/SetWidgetVisibilityEventEncoder.java | 26 +++++++ .../apollo/net/release/r377/Release377.java | 18 +++-- .../r377/SetWidgetItemModelEventEncoder.java | 29 ++++++++ .../SetWidgetModelAnimationEventEncoder.java | 28 ++++++++ .../r377/SetWidgetNpcModelEventEncoder.java | 28 ++++++++ .../SetWidgetPlayerModelEventEncoder.java | 25 +++++++ ...er.java => SetWidgetTextEventEncoder.java} | 8 +-- .../r377/SetWidgetVisibilityEventEncoder.java | 26 +++++++ src/org/apollo/util/plugin/PluginManager.java | 2 + 25 files changed, 589 insertions(+), 43 deletions(-) create mode 100644 src/org/apollo/game/event/impl/SetWidgetItemModelEvent.java create mode 100644 src/org/apollo/game/event/impl/SetWidgetModelAnimationEvent.java create mode 100644 src/org/apollo/game/event/impl/SetWidgetNpcModelEvent.java create mode 100644 src/org/apollo/game/event/impl/SetWidgetPlayerModelEvent.java rename src/org/apollo/game/event/impl/{SetInterfaceTextEvent.java => SetWidgetTextEvent.java} (86%) create mode 100644 src/org/apollo/game/event/impl/SetWidgetVisibilityEvent.java create mode 100644 src/org/apollo/net/release/r317/SetWidgetItemModelEventEncoder.java create mode 100644 src/org/apollo/net/release/r317/SetWidgetModelAnimationEventEncoder.java create mode 100644 src/org/apollo/net/release/r317/SetWidgetNpcModelEventEncoder.java create mode 100644 src/org/apollo/net/release/r317/SetWidgetPlayerModelEventEncoder.java rename src/org/apollo/net/release/r317/{SetInterfaceTextEventEncoder.java => SetWidgetTextEventEncoder.java} (68%) create mode 100644 src/org/apollo/net/release/r317/SetWidgetVisibilityEventEncoder.java create mode 100644 src/org/apollo/net/release/r377/SetWidgetItemModelEventEncoder.java create mode 100644 src/org/apollo/net/release/r377/SetWidgetModelAnimationEventEncoder.java create mode 100644 src/org/apollo/net/release/r377/SetWidgetNpcModelEventEncoder.java create mode 100644 src/org/apollo/net/release/r377/SetWidgetPlayerModelEventEncoder.java rename src/org/apollo/net/release/r377/{SetInterfaceTextEventEncoder.java => SetWidgetTextEventEncoder.java} (70%) create mode 100644 src/org/apollo/net/release/r377/SetWidgetVisibilityEventEncoder.java diff --git a/data/plugins/bootstrap.rb b/data/plugins/bootstrap.rb index b5cab1c5..d46f0817 100644 --- a/data/plugins/bootstrap.rb +++ b/data/plugins/bootstrap.rb @@ -129,7 +129,7 @@ def on_button(args, proc) id = args[0].to_i on :event, :button do |ctx, player, event| - if event.interface_id == id + if event.widget_id == id proc.call player end end diff --git a/src/org/apollo/game/command/CreditsCommandListener.java b/src/org/apollo/game/command/CreditsCommandListener.java index a18cad9c..3dc0e400 100644 --- a/src/org/apollo/game/command/CreditsCommandListener.java +++ b/src/org/apollo/game/command/CreditsCommandListener.java @@ -2,7 +2,7 @@ package org.apollo.game.command; import java.util.Iterator; -import org.apollo.game.event.impl.SetInterfaceTextEvent; +import org.apollo.game.event.impl.SetWidgetTextEvent; import org.apollo.game.model.Player; import org.apollo.game.model.World; import org.apollo.game.model.inter.quest.QuestConstants; @@ -30,33 +30,33 @@ public final class CreditsCommandListener implements CommandListener { Iterator it = mgr.createAuthorsIterator(); int pos = 0; - player.send(new SetInterfaceTextEvent(QuestConstants.QUEST_TEXT[pos++], "@dre@Apollo")); - player.send(new SetInterfaceTextEvent(QuestConstants.QUEST_TEXT[pos++], "@dre@Introduction")); - player.send(new SetInterfaceTextEvent(QuestConstants.QUEST_TEXT[pos++], "")); - player.send(new SetInterfaceTextEvent(QuestConstants.QUEST_TEXT[pos++], + player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], "@dre@Apollo")); + player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], "@dre@Introduction")); + player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], "")); + player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], "This server is based on Apollo, a lightweight, fast, secure")); - player.send(new SetInterfaceTextEvent(QuestConstants.QUEST_TEXT[pos++], + player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], "and open-source RuneScape emulator. For more")); - player.send(new SetInterfaceTextEvent(QuestConstants.QUEST_TEXT[pos++], + player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], "information about Apollo, visit the website at:")); - player.send(new SetInterfaceTextEvent(QuestConstants.QUEST_TEXT[pos++], + player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], "@dbl@https://github.com/apollo-rsps/apollo")); - player.send(new SetInterfaceTextEvent(QuestConstants.QUEST_TEXT[pos++], "")); - player.send(new SetInterfaceTextEvent(QuestConstants.QUEST_TEXT[pos++], + player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], "")); + player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], "Apollo is released under the terms of the ISC")); - player.send(new SetInterfaceTextEvent(QuestConstants.QUEST_TEXT[pos++], + player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], "license, details can be found in the root folder of the ")); - player.send(new SetInterfaceTextEvent(QuestConstants.QUEST_TEXT[pos++], "Apollo distribution.")); - player.send(new SetInterfaceTextEvent(QuestConstants.QUEST_TEXT[pos++], "")); - player.send(new SetInterfaceTextEvent(QuestConstants.QUEST_TEXT[pos++], "@dre@Credits")); - player.send(new SetInterfaceTextEvent(QuestConstants.QUEST_TEXT[pos++], "")); + player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], "Apollo distribution.")); + player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], "")); + player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], "@dre@Credits")); + player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], "")); for (; pos < QuestConstants.QUEST_TEXT.length; pos++) { String text = it.hasNext() ? it.next() : ""; - player.send(new SetInterfaceTextEvent(QuestConstants.QUEST_TEXT[pos], text)); + player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos], text)); } player.getInterfaceSet().openWindow(QuestConstants.QUEST_INTERFACE); } -} +} \ No newline at end of file diff --git a/src/org/apollo/game/event/handler/impl/WalkEventHandler.java b/src/org/apollo/game/event/handler/impl/WalkEventHandler.java index b1c09dfa..49710f3e 100644 --- a/src/org/apollo/game/event/handler/impl/WalkEventHandler.java +++ b/src/org/apollo/game/event/handler/impl/WalkEventHandler.java @@ -3,9 +3,9 @@ package org.apollo.game.event.handler.impl; import org.apollo.game.event.handler.EventHandler; import org.apollo.game.event.handler.EventHandlerContext; import org.apollo.game.event.impl.WalkEvent; -import org.apollo.game.model.Player; import org.apollo.game.model.Position; import org.apollo.game.model.WalkingQueue; +import org.apollo.game.model.Player; /** * A handler for the {@link WalkEvent}. @@ -30,12 +30,12 @@ public final class WalkEventHandler extends EventHandler { } } - queue.setRunningQueue(event.isRunning()); + queue.setRunningQueue(event.isRunning() || player.isRunning()); if (queue.size() > 0) { player.stopAction(); - player.getInterfaceSet().close(); // TODO: should this be done if size == 0? } + player.getInterfaceSet().close(); } -} +} \ No newline at end of file diff --git a/src/org/apollo/game/event/impl/SetWidgetItemModelEvent.java b/src/org/apollo/game/event/impl/SetWidgetItemModelEvent.java new file mode 100644 index 00000000..e05d5386 --- /dev/null +++ b/src/org/apollo/game/event/impl/SetWidgetItemModelEvent.java @@ -0,0 +1,67 @@ +package org.apollo.game.event.impl; + +import org.apollo.game.event.Event; + +/** + * An event sent to the client to change an interface's item model. + * + * @author Chris Fletcher + */ +public final class SetWidgetItemModelEvent extends Event { + + /** + * The interface's id. + */ + private final int interfaceId; + + /** + * The model's (item) id. + */ + private final int modelId; + + /** + * The zoom level. + */ + private final int zoom; + + /** + * Creates a new set interface item model event. + * + * @param interfaceId The interface's id. + * @param modelId The model's (item) id. + * @param zoom The zoom level. + */ + public SetWidgetItemModelEvent(int interfaceId, int modelId, int zoom) { + this.interfaceId = interfaceId; + this.modelId = modelId; + this.zoom = zoom; + } + + /** + * Gets the interface's id. + * + * @return The id. + */ + public int getInterfaceId() { + return interfaceId; + } + + /** + * Gets the model's (item) id. + * + * @return The id. + */ + public int getModelId() { + return modelId; + } + + /** + * Gets the zoom level. + * + * @return The zoom. + */ + public int getZoom() { + return zoom; + } + +} diff --git a/src/org/apollo/game/event/impl/SetWidgetModelAnimationEvent.java b/src/org/apollo/game/event/impl/SetWidgetModelAnimationEvent.java new file mode 100644 index 00000000..166e5048 --- /dev/null +++ b/src/org/apollo/game/event/impl/SetWidgetModelAnimationEvent.java @@ -0,0 +1,51 @@ +package org.apollo.game.event.impl; + +import org.apollo.game.event.Event; + +/** + * An event which is sent to the client to make a character model on an interface play a certain animation. + * + * @author Chris Fletcher + */ +public final class SetWidgetModelAnimationEvent extends Event { + + /** + * The model's mood id. + */ + private final int animation; + + /** + * The interface id. + */ + private final int interfaceId; + + /** + * Creates a new set interface npc model's animation event. + * + * @param interfaceId The interface id. + * @param animation The model's animation id. + */ + public SetWidgetModelAnimationEvent(int interfaceId, int animation) { + this.interfaceId = interfaceId; + this.animation = animation; + } + + /** + * Gets the model's mood id. + * + * @return The model's mood id. + */ + public int getAnimation() { + return animation; + } + + /** + * Gets the interface id. + * + * @return The interface id. + */ + public int getInterfaceId() { + return interfaceId; + } + +} \ No newline at end of file diff --git a/src/org/apollo/game/event/impl/SetWidgetNpcModelEvent.java b/src/org/apollo/game/event/impl/SetWidgetNpcModelEvent.java new file mode 100644 index 00000000..24f43fcd --- /dev/null +++ b/src/org/apollo/game/event/impl/SetWidgetNpcModelEvent.java @@ -0,0 +1,51 @@ +package org.apollo.game.event.impl; + +import org.apollo.game.event.Event; + +/** + * An event sent to the client to change an interface's NPC model. + * + * @author Chris Fletcher + */ +public final class SetWidgetNpcModelEvent extends Event { + + /** + * The interface's id. + */ + private final int interfaceId; + + /** + * The model's (NPC) id. + */ + private final int modelId; + + /** + * Creates a new set interface NPC model event. + * + * @param interfaceId The interface's id. + * @param modelId The model's (NPC) id. + */ + public SetWidgetNpcModelEvent(int interfaceId, int modelId) { + this.interfaceId = interfaceId; + this.modelId = modelId; + } + + /** + * Gets the interface's id. + * + * @return The id. + */ + public int getInterfaceId() { + return interfaceId; + } + + /** + * Gets the model's (NPC) id. + * + * @return The id. + */ + public int getModelId() { + return modelId; + } + +} diff --git a/src/org/apollo/game/event/impl/SetWidgetPlayerModelEvent.java b/src/org/apollo/game/event/impl/SetWidgetPlayerModelEvent.java new file mode 100644 index 00000000..620c1f64 --- /dev/null +++ b/src/org/apollo/game/event/impl/SetWidgetPlayerModelEvent.java @@ -0,0 +1,35 @@ +package org.apollo.game.event.impl; + +import org.apollo.game.event.Event; + +/** + * An event sent to the client to set an interface's player model. + * + * @author Chris Fletcher + */ +public final class SetWidgetPlayerModelEvent extends Event { + + /** + * The interface's id. + */ + private final int interfaceId; + + /** + * Creates a new set interface player model event. + * + * @param interfaceId The interface's id. + */ + public SetWidgetPlayerModelEvent(int interfaceId) { + this.interfaceId = interfaceId; + } + + /** + * Gets the interface's id. + * + * @return The id. + */ + public int getInterfaceId() { + return interfaceId; + } + +} diff --git a/src/org/apollo/game/event/impl/SetInterfaceTextEvent.java b/src/org/apollo/game/event/impl/SetWidgetTextEvent.java similarity index 86% rename from src/org/apollo/game/event/impl/SetInterfaceTextEvent.java rename to src/org/apollo/game/event/impl/SetWidgetTextEvent.java index 7e3c29b0..3064ffb8 100644 --- a/src/org/apollo/game/event/impl/SetInterfaceTextEvent.java +++ b/src/org/apollo/game/event/impl/SetWidgetTextEvent.java @@ -7,7 +7,7 @@ import org.apollo.game.event.Event; * * @author Graham */ -public final class SetInterfaceTextEvent extends Event { +public final class SetWidgetTextEvent extends Event { /** * The interface's id. @@ -25,7 +25,7 @@ public final class SetInterfaceTextEvent extends Event { * @param interfaceId The interface's id. * @param text The interface's text. */ - public SetInterfaceTextEvent(int interfaceId, String text) { + public SetWidgetTextEvent(int interfaceId, String text) { this.interfaceId = interfaceId; this.text = text; } diff --git a/src/org/apollo/game/event/impl/SetWidgetVisibilityEvent.java b/src/org/apollo/game/event/impl/SetWidgetVisibilityEvent.java new file mode 100644 index 00000000..fd90058a --- /dev/null +++ b/src/org/apollo/game/event/impl/SetWidgetVisibilityEvent.java @@ -0,0 +1,52 @@ +package org.apollo.game.event.impl; + +import org.apollo.game.event.Event; + +/** + * An event which changes the state of a hidden interface component (i.e./e.g. the special attack bar on the weapon + * tab). + * + * @author Chris Fletcher + */ +public final class SetWidgetVisibilityEvent extends Event { + + /** + * The component id. + */ + private final int component; + + /** + * Visible flag. + */ + private final boolean visible; + + /** + * Creates the interface component state event. + * + * @param component The compononent id. + * @param visible The flag for showing or hiding the component. + */ + public SetWidgetVisibilityEvent(int component, boolean visible) { + this.component = component; + this.visible = visible; + } + + /** + * Gets the id of the interface component. + * + * @return The component id. + */ + public int getWidgetId() { + return component; + } + + /** + * Gets the visible flag. + * + * @return {@code true} if the component has been set to visible, {@code false} if not. + */ + public boolean isVisible() { + return visible; + } + +} diff --git a/src/org/apollo/game/model/WalkingQueue.java b/src/org/apollo/game/model/WalkingQueue.java index eda82fb4..7dbcc039 100644 --- a/src/org/apollo/game/model/WalkingQueue.java +++ b/src/org/apollo/game/model/WalkingQueue.java @@ -43,7 +43,6 @@ public final class WalkingQueue { public String toString() { return Point.class.getName() + " [direction=" + direction + ", position=" + position + "]"; } - } /** @@ -54,17 +53,17 @@ public final class WalkingQueue { /** * The character whose walking queue this is. */ - private Character character; + private final Character character; /** * The old queue of directions. */ - private Deque oldPoints = new ArrayDeque(); + private final Deque oldPoints = new ArrayDeque(); /** * The queue of directions. */ - private Deque points = new ArrayDeque(); + private final Deque points = new ArrayDeque(); /** * Flag indicating if this queue (only) should be ran. @@ -253,4 +252,4 @@ public final class WalkingQueue { return points.size(); } -} +} \ No newline at end of file diff --git a/src/org/apollo/net/release/r317/Release317.java b/src/org/apollo/net/release/r317/Release317.java index 16f32732..ac66d2ee 100644 --- a/src/org/apollo/net/release/r317/Release317.java +++ b/src/org/apollo/net/release/r317/Release317.java @@ -10,7 +10,12 @@ import org.apollo.game.event.impl.OpenInterfaceSidebarEvent; import org.apollo.game.event.impl.PlayerSynchronizationEvent; import org.apollo.game.event.impl.RegionChangeEvent; import org.apollo.game.event.impl.ServerMessageEvent; -import org.apollo.game.event.impl.SetInterfaceTextEvent; +import org.apollo.game.event.impl.SetWidgetItemModelEvent; +import org.apollo.game.event.impl.SetWidgetModelAnimationEvent; +import org.apollo.game.event.impl.SetWidgetNpcModelEvent; +import org.apollo.game.event.impl.SetWidgetPlayerModelEvent; +import org.apollo.game.event.impl.SetWidgetTextEvent; +import org.apollo.game.event.impl.SetWidgetVisibilityEvent; import org.apollo.game.event.impl.SwitchTabInterfaceEvent; import org.apollo.game.event.impl.UpdateItemsEvent; import org.apollo.game.event.impl.UpdateSkillEvent; @@ -110,8 +115,13 @@ public final class Release317 extends Release { register(UpdateSkillEvent.class, new UpdateSkillEventEncoder()); register(OpenInterfaceSidebarEvent.class, new OpenInterfaceSidebarEventEncoder()); register(EnterAmountEvent.class, new EnterAmountEventEncoder()); - register(SetInterfaceTextEvent.class, new SetInterfaceTextEventEncoder()); + register(SetWidgetTextEvent.class, new SetWidgetTextEventEncoder()); register(NpcSynchronizationEvent.class, new NpcSynchronizationEventEncoder()); + register(SetWidgetVisibilityEvent.class, new SetWidgetVisibilityEventEncoder()); + register(SetWidgetItemModelEvent.class, new SetWidgetItemModelEventEncoder()); + register(SetWidgetNpcModelEvent.class, new SetWidgetNpcModelEventEncoder()); + register(SetWidgetPlayerModelEvent.class, new SetWidgetPlayerModelEventEncoder()); + register(SetWidgetModelAnimationEvent.class, new SetWidgetModelAnimationEventEncoder()); } } \ No newline at end of file diff --git a/src/org/apollo/net/release/r317/SetWidgetItemModelEventEncoder.java b/src/org/apollo/net/release/r317/SetWidgetItemModelEventEncoder.java new file mode 100644 index 00000000..338029b9 --- /dev/null +++ b/src/org/apollo/net/release/r317/SetWidgetItemModelEventEncoder.java @@ -0,0 +1,28 @@ +package org.apollo.net.release.r317; + +import org.apollo.game.event.impl.SetWidgetItemModelEvent; +import org.apollo.net.codec.game.DataOrder; +import org.apollo.net.codec.game.DataType; +import org.apollo.net.codec.game.GamePacket; +import org.apollo.net.codec.game.GamePacketBuilder; +import org.apollo.net.release.EventEncoder; + +/** + * An {@link EventEncoder} for the {@link SetWidgetItemModelEvent}. + * + * @author Chris Fletcher + */ +final class SetWidgetItemModelEventEncoder extends EventEncoder { + + @Override + public GamePacket encode(SetWidgetItemModelEvent event) { + GamePacketBuilder builder = new GamePacketBuilder(246); + + builder.put(DataType.SHORT, DataOrder.LITTLE, event.getInterfaceId()); + builder.put(DataType.SHORT, event.getZoom()); + builder.put(DataType.SHORT, event.getModelId()); + + return builder.toGamePacket(); + } + +} diff --git a/src/org/apollo/net/release/r317/SetWidgetModelAnimationEventEncoder.java b/src/org/apollo/net/release/r317/SetWidgetModelAnimationEventEncoder.java new file mode 100644 index 00000000..63432589 --- /dev/null +++ b/src/org/apollo/net/release/r317/SetWidgetModelAnimationEventEncoder.java @@ -0,0 +1,26 @@ +package org.apollo.net.release.r317; + +import org.apollo.game.event.impl.SetWidgetModelAnimationEvent; +import org.apollo.net.codec.game.DataType; +import org.apollo.net.codec.game.GamePacket; +import org.apollo.net.codec.game.GamePacketBuilder; +import org.apollo.net.release.EventEncoder; + +/** + * An {@link EventEncoder} for the {@link SetWidgetModelAnimationEvent}. + * + * @author Chris Fletcher + */ +final class SetWidgetModelAnimationEventEncoder extends EventEncoder { + + @Override + public GamePacket encode(SetWidgetModelAnimationEvent event) { + GamePacketBuilder builder = new GamePacketBuilder(200); + + builder.put(DataType.SHORT, event.getInterfaceId() & 0xFFFF); + builder.put(DataType.SHORT, event.getAnimation()); + + return builder.toGamePacket(); + } + +} \ No newline at end of file diff --git a/src/org/apollo/net/release/r317/SetWidgetNpcModelEventEncoder.java b/src/org/apollo/net/release/r317/SetWidgetNpcModelEventEncoder.java new file mode 100644 index 00000000..01d47a7d --- /dev/null +++ b/src/org/apollo/net/release/r317/SetWidgetNpcModelEventEncoder.java @@ -0,0 +1,28 @@ +package org.apollo.net.release.r317; + +import org.apollo.game.event.impl.SetWidgetNpcModelEvent; +import org.apollo.net.codec.game.DataOrder; +import org.apollo.net.codec.game.DataTransformation; +import org.apollo.net.codec.game.DataType; +import org.apollo.net.codec.game.GamePacket; +import org.apollo.net.codec.game.GamePacketBuilder; +import org.apollo.net.release.EventEncoder; + +/** + * An {@link EventEncoder} for the {@link SetWidgetNpcModelEvent}. + * + * @author Chris Fletcher + */ +final class SetWidgetNpcModelEventEncoder extends EventEncoder { + + @Override + public GamePacket encode(SetWidgetNpcModelEvent event) { + GamePacketBuilder builder = new GamePacketBuilder(75); + + builder.put(DataType.SHORT, DataOrder.LITTLE, DataTransformation.ADD, event.getModelId()); + builder.put(DataType.SHORT, DataOrder.LITTLE, DataTransformation.ADD, event.getInterfaceId()); + + return builder.toGamePacket(); + } + +} diff --git a/src/org/apollo/net/release/r317/SetWidgetPlayerModelEventEncoder.java b/src/org/apollo/net/release/r317/SetWidgetPlayerModelEventEncoder.java new file mode 100644 index 00000000..d66a781b --- /dev/null +++ b/src/org/apollo/net/release/r317/SetWidgetPlayerModelEventEncoder.java @@ -0,0 +1,25 @@ +package org.apollo.net.release.r317; + +import org.apollo.game.event.impl.SetWidgetPlayerModelEvent; +import org.apollo.net.codec.game.DataOrder; +import org.apollo.net.codec.game.DataTransformation; +import org.apollo.net.codec.game.DataType; +import org.apollo.net.codec.game.GamePacket; +import org.apollo.net.codec.game.GamePacketBuilder; +import org.apollo.net.release.EventEncoder; + +/** + * An {@link EventEncoder} for the {@link SetWidgetPlayerModelEvent}. + * + * @author Chris Fletcher + */ +final class SetWidgetPlayerModelEventEncoder extends EventEncoder { + + @Override + public GamePacket encode(SetWidgetPlayerModelEvent event) { + GamePacketBuilder builder = new GamePacketBuilder(185); + builder.put(DataType.SHORT, DataOrder.LITTLE, DataTransformation.ADD, event.getInterfaceId()); + return builder.toGamePacket(); + } + +} \ No newline at end of file diff --git a/src/org/apollo/net/release/r317/SetInterfaceTextEventEncoder.java b/src/org/apollo/net/release/r317/SetWidgetTextEventEncoder.java similarity index 68% rename from src/org/apollo/net/release/r317/SetInterfaceTextEventEncoder.java rename to src/org/apollo/net/release/r317/SetWidgetTextEventEncoder.java index 70183c65..63a65e77 100644 --- a/src/org/apollo/net/release/r317/SetInterfaceTextEventEncoder.java +++ b/src/org/apollo/net/release/r317/SetWidgetTextEventEncoder.java @@ -1,6 +1,6 @@ package org.apollo.net.release.r317; -import org.apollo.game.event.impl.SetInterfaceTextEvent; +import org.apollo.game.event.impl.SetWidgetTextEvent; import org.apollo.net.codec.game.DataTransformation; import org.apollo.net.codec.game.DataType; import org.apollo.net.codec.game.GamePacket; @@ -9,14 +9,14 @@ import org.apollo.net.meta.PacketType; import org.apollo.net.release.EventEncoder; /** - * An {@link EventEncoder} for the {@link SetInterfaceTextEvent}. + * An {@link EventEncoder} for the {@link SetWidgetTextEvent}. * * @author The Wanderer */ -public final class SetInterfaceTextEventEncoder extends EventEncoder { +public final class SetWidgetTextEventEncoder extends EventEncoder { @Override - public GamePacket encode(SetInterfaceTextEvent event) { + public GamePacket encode(SetWidgetTextEvent event) { GamePacketBuilder builder = new GamePacketBuilder(126, PacketType.VARIABLE_SHORT); builder.putString(event.getText()); builder.put(DataType.SHORT, DataTransformation.ADD, event.getInterfaceId()); diff --git a/src/org/apollo/net/release/r317/SetWidgetVisibilityEventEncoder.java b/src/org/apollo/net/release/r317/SetWidgetVisibilityEventEncoder.java new file mode 100644 index 00000000..f8644c96 --- /dev/null +++ b/src/org/apollo/net/release/r317/SetWidgetVisibilityEventEncoder.java @@ -0,0 +1,26 @@ +package org.apollo.net.release.r317; + +import org.apollo.game.event.impl.SetWidgetVisibilityEvent; +import org.apollo.net.codec.game.DataType; +import org.apollo.net.codec.game.GamePacket; +import org.apollo.net.codec.game.GamePacketBuilder; +import org.apollo.net.release.EventEncoder; + +/** + * An {@link EventEncoder} for the {@link SetWidgetVisibilityEvent}. + * + * @author Major + */ +final class SetWidgetVisibilityEventEncoder extends EventEncoder { + + @Override + public GamePacket encode(SetWidgetVisibilityEvent event) { + GamePacketBuilder builder = new GamePacketBuilder(171); + + builder.put(DataType.BYTE, event.isVisible() ? 0 : 1); + builder.put(DataType.SHORT, event.getWidgetId()); + + return builder.toGamePacket(); + } + +} \ No newline at end of file diff --git a/src/org/apollo/net/release/r377/Release377.java b/src/org/apollo/net/release/r377/Release377.java index 13066e5b..f65321a5 100644 --- a/src/org/apollo/net/release/r377/Release377.java +++ b/src/org/apollo/net/release/r377/Release377.java @@ -10,7 +10,12 @@ import org.apollo.game.event.impl.OpenInterfaceSidebarEvent; import org.apollo.game.event.impl.PlayerSynchronizationEvent; import org.apollo.game.event.impl.RegionChangeEvent; import org.apollo.game.event.impl.ServerMessageEvent; -import org.apollo.game.event.impl.SetInterfaceTextEvent; +import org.apollo.game.event.impl.SetWidgetItemModelEvent; +import org.apollo.game.event.impl.SetWidgetModelAnimationEvent; +import org.apollo.game.event.impl.SetWidgetNpcModelEvent; +import org.apollo.game.event.impl.SetWidgetPlayerModelEvent; +import org.apollo.game.event.impl.SetWidgetTextEvent; +import org.apollo.game.event.impl.SetWidgetVisibilityEvent; import org.apollo.game.event.impl.SwitchTabInterfaceEvent; import org.apollo.game.event.impl.UpdateItemsEvent; import org.apollo.game.event.impl.UpdateSkillEvent; @@ -95,7 +100,7 @@ public final class Release377 extends Release { register(110, new ClosedInterfaceEventDecoder()); register(75, new EnteredAmountEventDecoder()); register(1, new ItemOnItemEventDecoder()); - + // register encoders register(IdAssignmentEvent.class, new IdAssignmentEventEncoder()); register(RegionChangeEvent.class, new RegionChangeEventEncoder()); @@ -110,8 +115,13 @@ public final class Release377 extends Release { register(UpdateSkillEvent.class, new UpdateSkillEventEncoder()); register(OpenInterfaceSidebarEvent.class, new OpenInterfaceSidebarEventEncoder()); register(EnterAmountEvent.class, new EnterAmountEventEncoder()); - register(SetInterfaceTextEvent.class, new SetInterfaceTextEventEncoder()); + register(SetWidgetTextEvent.class, new SetWidgetTextEventEncoder()); register(NpcSynchronizationEvent.class, new NpcSynchronizationEventEncoder()); + register(SetWidgetVisibilityEvent.class, new SetWidgetVisibilityEventEncoder()); + register(SetWidgetItemModelEvent.class, new SetWidgetItemModelEventEncoder()); + register(SetWidgetNpcModelEvent.class, new SetWidgetNpcModelEventEncoder()); + register(SetWidgetPlayerModelEvent.class, new SetWidgetPlayerModelEventEncoder()); + register(SetWidgetModelAnimationEvent.class, new SetWidgetModelAnimationEventEncoder()); } -} +} \ No newline at end of file diff --git a/src/org/apollo/net/release/r377/SetWidgetItemModelEventEncoder.java b/src/org/apollo/net/release/r377/SetWidgetItemModelEventEncoder.java new file mode 100644 index 00000000..cfb4a6a6 --- /dev/null +++ b/src/org/apollo/net/release/r377/SetWidgetItemModelEventEncoder.java @@ -0,0 +1,29 @@ +package org.apollo.net.release.r377; + +import org.apollo.game.event.impl.SetWidgetItemModelEvent; +import org.apollo.net.codec.game.DataOrder; +import org.apollo.net.codec.game.DataTransformation; +import org.apollo.net.codec.game.DataType; +import org.apollo.net.codec.game.GamePacket; +import org.apollo.net.codec.game.GamePacketBuilder; +import org.apollo.net.release.EventEncoder; + +/** + * An {@link EventEncoder} for the {@link SetWidgetItemModelEvent}. + * + * @author Chris Fletcher + */ +final class SetWidgetItemModelEventEncoder extends EventEncoder { + + @Override + public GamePacket encode(SetWidgetItemModelEvent event) { + GamePacketBuilder builder = new GamePacketBuilder(21); + + builder.put(DataType.SHORT, event.getZoom()); + builder.put(DataType.SHORT, DataOrder.LITTLE, event.getModelId()); + builder.put(DataType.SHORT, DataOrder.LITTLE, DataTransformation.ADD, event.getInterfaceId()); + + return builder.toGamePacket(); + } + +} \ No newline at end of file diff --git a/src/org/apollo/net/release/r377/SetWidgetModelAnimationEventEncoder.java b/src/org/apollo/net/release/r377/SetWidgetModelAnimationEventEncoder.java new file mode 100644 index 00000000..4ce751b5 --- /dev/null +++ b/src/org/apollo/net/release/r377/SetWidgetModelAnimationEventEncoder.java @@ -0,0 +1,28 @@ +package org.apollo.net.release.r377; + +import org.apollo.game.event.impl.SetWidgetModelAnimationEvent; +import org.apollo.net.codec.game.DataOrder; +import org.apollo.net.codec.game.DataTransformation; +import org.apollo.net.codec.game.DataType; +import org.apollo.net.codec.game.GamePacket; +import org.apollo.net.codec.game.GamePacketBuilder; +import org.apollo.net.release.EventEncoder; + +/** + * An {@link EventEncoder} for the {@link SetWidgetModelAnimationEvent}. + * + * @author Chris Fletcher + */ +final class SetWidgetModelAnimationEventEncoder extends EventEncoder { + + @Override + public GamePacket encode(SetWidgetModelAnimationEvent event) { + GamePacketBuilder builder = new GamePacketBuilder(2); + + builder.put(DataType.SHORT, DataOrder.LITTLE, DataTransformation.ADD, event.getInterfaceId()); + builder.put(DataType.SHORT, DataTransformation.ADD, event.getAnimation() & 0xFFFF); + + return builder.toGamePacket(); + } + +} \ No newline at end of file diff --git a/src/org/apollo/net/release/r377/SetWidgetNpcModelEventEncoder.java b/src/org/apollo/net/release/r377/SetWidgetNpcModelEventEncoder.java new file mode 100644 index 00000000..cd65e9f0 --- /dev/null +++ b/src/org/apollo/net/release/r377/SetWidgetNpcModelEventEncoder.java @@ -0,0 +1,28 @@ +package org.apollo.net.release.r377; + +import org.apollo.game.event.impl.SetWidgetNpcModelEvent; +import org.apollo.net.codec.game.DataOrder; +import org.apollo.net.codec.game.DataTransformation; +import org.apollo.net.codec.game.DataType; +import org.apollo.net.codec.game.GamePacket; +import org.apollo.net.codec.game.GamePacketBuilder; +import org.apollo.net.release.EventEncoder; + +/** + * An {@link EventEncoder} for the {@link SetWidgetNpcModelEvent}. + * + * @author Chris Fletcher + */ +final class SetWidgetNpcModelEventEncoder extends EventEncoder { + + @Override + public GamePacket encode(SetWidgetNpcModelEvent event) { + GamePacketBuilder builder = new GamePacketBuilder(162); + + builder.put(DataType.SHORT, DataTransformation.ADD, event.getModelId()); + builder.put(DataType.SHORT, DataOrder.LITTLE, event.getInterfaceId()); + + return builder.toGamePacket(); + } + +} diff --git a/src/org/apollo/net/release/r377/SetWidgetPlayerModelEventEncoder.java b/src/org/apollo/net/release/r377/SetWidgetPlayerModelEventEncoder.java new file mode 100644 index 00000000..449d22f4 --- /dev/null +++ b/src/org/apollo/net/release/r377/SetWidgetPlayerModelEventEncoder.java @@ -0,0 +1,25 @@ +package org.apollo.net.release.r377; + +import org.apollo.game.event.impl.SetWidgetPlayerModelEvent; +import org.apollo.net.codec.game.DataOrder; +import org.apollo.net.codec.game.DataTransformation; +import org.apollo.net.codec.game.DataType; +import org.apollo.net.codec.game.GamePacket; +import org.apollo.net.codec.game.GamePacketBuilder; +import org.apollo.net.release.EventEncoder; + +/** + * An {@link EventEncoder} for the {@link SetWidgetPlayerModelEvent}. + * + * @author Chris Fletcher + */ +final class SetWidgetPlayerModelEventEncoder extends EventEncoder { + + @Override + public GamePacket encode(SetWidgetPlayerModelEvent event) { + GamePacketBuilder builder = new GamePacketBuilder(255); + builder.put(DataType.SHORT, DataOrder.LITTLE, DataTransformation.ADD, event.getInterfaceId()); + return builder.toGamePacket(); + } + +} \ No newline at end of file diff --git a/src/org/apollo/net/release/r377/SetInterfaceTextEventEncoder.java b/src/org/apollo/net/release/r377/SetWidgetTextEventEncoder.java similarity index 70% rename from src/org/apollo/net/release/r377/SetInterfaceTextEventEncoder.java rename to src/org/apollo/net/release/r377/SetWidgetTextEventEncoder.java index feab6a12..c2107777 100644 --- a/src/org/apollo/net/release/r377/SetInterfaceTextEventEncoder.java +++ b/src/org/apollo/net/release/r377/SetWidgetTextEventEncoder.java @@ -1,6 +1,6 @@ package org.apollo.net.release.r377; -import org.apollo.game.event.impl.SetInterfaceTextEvent; +import org.apollo.game.event.impl.SetWidgetTextEvent; import org.apollo.net.codec.game.DataOrder; import org.apollo.net.codec.game.DataTransformation; import org.apollo.net.codec.game.DataType; @@ -10,14 +10,14 @@ import org.apollo.net.meta.PacketType; import org.apollo.net.release.EventEncoder; /** - * An {@link EventEncoder} for the {@link SetInterfaceTextEvent}. + * An {@link EventEncoder} for the {@link SetWidgetTextEvent}. * * @author Graham */ -public final class SetInterfaceTextEventEncoder extends EventEncoder { +public final class SetWidgetTextEventEncoder extends EventEncoder { @Override - public GamePacket encode(SetInterfaceTextEvent event) { + public GamePacket encode(SetWidgetTextEvent event) { GamePacketBuilder builder = new GamePacketBuilder(232, PacketType.VARIABLE_SHORT); builder.put(DataType.SHORT, DataOrder.LITTLE, DataTransformation.ADD, event.getInterfaceId()); builder.putString(event.getText()); diff --git a/src/org/apollo/net/release/r377/SetWidgetVisibilityEventEncoder.java b/src/org/apollo/net/release/r377/SetWidgetVisibilityEventEncoder.java new file mode 100644 index 00000000..c1a998f4 --- /dev/null +++ b/src/org/apollo/net/release/r377/SetWidgetVisibilityEventEncoder.java @@ -0,0 +1,26 @@ +package org.apollo.net.release.r377; + +import org.apollo.game.event.impl.SetWidgetVisibilityEvent; +import org.apollo.net.codec.game.DataType; +import org.apollo.net.codec.game.GamePacket; +import org.apollo.net.codec.game.GamePacketBuilder; +import org.apollo.net.release.EventEncoder; + +/** + * An {@link EventEncoder} for the {@link SetWidgetComponentEvent}. + * + * @author Chris Fletcher + */ +final class SetWidgetVisibilityEventEncoder extends EventEncoder { + + @Override + public GamePacket encode(SetWidgetVisibilityEvent event) { + GamePacketBuilder builder = new GamePacketBuilder(82); + + builder.put(DataType.BYTE, event.isVisible() ? 0 : 1); + builder.put(DataType.SHORT, event.getWidgetId()); + + return builder.toGamePacket(); + } + +} \ No newline at end of file diff --git a/src/org/apollo/util/plugin/PluginManager.java b/src/org/apollo/util/plugin/PluginManager.java index e3eb8e56..225e537e 100644 --- a/src/org/apollo/util/plugin/PluginManager.java +++ b/src/org/apollo/util/plugin/PluginManager.java @@ -114,6 +114,8 @@ public final class PluginManager { // // Thank you! authors.add("Graham"); + authors.add("Major"); + authors.add("Chris Fletcher"); authors.add("Blake"); }