From ca1f9cb5fb3bf90dbd24c67657ab4b8026e1f3a7 Mon Sep 17 00:00:00 2001 From: Major- Date: Sun, 9 Mar 2014 22:51:25 +0000 Subject: [PATCH] Add player menu action events and decoders. --- .../event/impl/FifthPlayerActionEvent.java | 19 +++++++ .../event/impl/FirstPlayerActionEvent.java | 19 +++++++ .../event/impl/FourthPlayerActionEvent.java | 19 +++++++ .../game/event/impl/PlayerActionEvent.java | 53 +++++++++++++++++++ .../event/impl/SecondPlayerActionEvent.java | 19 +++++++ .../event/impl/ThirdPlayerActionEvent.java | 19 +++++++ .../r317/FifthPlayerActionEventDecoder.java | 24 +++++++++ .../r317/FirstPlayerActionEventDecoder.java | 23 ++++++++ .../r317/FourthPlayerActionEventDecoder.java | 24 +++++++++ .../apollo/net/release/r317/Release317.java | 7 +++ .../r317/SecondPlayerActionEventDecoder.java | 24 +++++++++ .../r317/ThirdPlayerActionEventDecoder.java | 24 +++++++++ .../r377/FifthPlayerActionEventDecoder.java | 24 +++++++++ .../r377/FirstPlayerActionEventDecoder.java | 25 +++++++++ .../r377/FourthPlayerActionEventDecoder.java | 24 +++++++++ .../apollo/net/release/r377/Release377.java | 6 +++ .../r377/SecondPlayerActionEventDecoder.java | 24 +++++++++ .../r377/ThirdPlayerActionEventDecoder.java | 24 +++++++++ 18 files changed, 401 insertions(+) create mode 100644 src/org/apollo/game/event/impl/FifthPlayerActionEvent.java create mode 100644 src/org/apollo/game/event/impl/FirstPlayerActionEvent.java create mode 100644 src/org/apollo/game/event/impl/FourthPlayerActionEvent.java create mode 100644 src/org/apollo/game/event/impl/PlayerActionEvent.java create mode 100644 src/org/apollo/game/event/impl/SecondPlayerActionEvent.java create mode 100644 src/org/apollo/game/event/impl/ThirdPlayerActionEvent.java create mode 100644 src/org/apollo/net/release/r317/FifthPlayerActionEventDecoder.java create mode 100644 src/org/apollo/net/release/r317/FirstPlayerActionEventDecoder.java create mode 100644 src/org/apollo/net/release/r317/FourthPlayerActionEventDecoder.java create mode 100644 src/org/apollo/net/release/r317/SecondPlayerActionEventDecoder.java create mode 100644 src/org/apollo/net/release/r317/ThirdPlayerActionEventDecoder.java create mode 100644 src/org/apollo/net/release/r377/FifthPlayerActionEventDecoder.java create mode 100644 src/org/apollo/net/release/r377/FirstPlayerActionEventDecoder.java create mode 100644 src/org/apollo/net/release/r377/FourthPlayerActionEventDecoder.java create mode 100644 src/org/apollo/net/release/r377/SecondPlayerActionEventDecoder.java create mode 100644 src/org/apollo/net/release/r377/ThirdPlayerActionEventDecoder.java diff --git a/src/org/apollo/game/event/impl/FifthPlayerActionEvent.java b/src/org/apollo/game/event/impl/FifthPlayerActionEvent.java new file mode 100644 index 00000000..55a512c4 --- /dev/null +++ b/src/org/apollo/game/event/impl/FifthPlayerActionEvent.java @@ -0,0 +1,19 @@ +package org.apollo.game.event.impl; + +/** + * The fifth {@link PlayerActionEvent}. + * + * @author Major + */ +public final class FifthPlayerActionEvent extends PlayerActionEvent { + + /** + * Creates a fifth player action event. + * + * @param playerIndex The index of the clicked player. + */ + public FifthPlayerActionEvent(int playerIndex) { + super(5, playerIndex); + } + +} \ No newline at end of file diff --git a/src/org/apollo/game/event/impl/FirstPlayerActionEvent.java b/src/org/apollo/game/event/impl/FirstPlayerActionEvent.java new file mode 100644 index 00000000..e920192e --- /dev/null +++ b/src/org/apollo/game/event/impl/FirstPlayerActionEvent.java @@ -0,0 +1,19 @@ +package org.apollo.game.event.impl; + +/** + * The first {@link PlayerActionEvent}. + * + * @author Major + */ +public final class FirstPlayerActionEvent extends PlayerActionEvent { + + /** + * Creates a first player action event. + * + * @param playerIndex The index of the clicked player. + */ + public FirstPlayerActionEvent(int playerIndex) { + super(1, playerIndex); + } + +} \ No newline at end of file diff --git a/src/org/apollo/game/event/impl/FourthPlayerActionEvent.java b/src/org/apollo/game/event/impl/FourthPlayerActionEvent.java new file mode 100644 index 00000000..5267c8a0 --- /dev/null +++ b/src/org/apollo/game/event/impl/FourthPlayerActionEvent.java @@ -0,0 +1,19 @@ +package org.apollo.game.event.impl; + +/** + * The fourth {@link PlayerActionEvent}. + * + * @author Major + */ +public final class FourthPlayerActionEvent extends PlayerActionEvent { + + /** + * Creates a fourth player action event. + * + * @param playerIndex The index of the clicked player. + */ + public FourthPlayerActionEvent(int playerIndex) { + super(4, playerIndex); + } + +} \ No newline at end of file diff --git a/src/org/apollo/game/event/impl/PlayerActionEvent.java b/src/org/apollo/game/event/impl/PlayerActionEvent.java new file mode 100644 index 00000000..54ca3567 --- /dev/null +++ b/src/org/apollo/game/event/impl/PlayerActionEvent.java @@ -0,0 +1,53 @@ +package org.apollo.game.event.impl; + +import org.apollo.game.event.Event; + +/** + * An {@link Event} sent by the client representing the clicking of a player menu action. Note that the actual event + * sent by the client is one of the five player action events, but this is the event that should be intercepted (and the + * option verified). + * + * @author Major + */ +public abstract class PlayerActionEvent extends Event { + + /** + * The option number. + */ + private final int option; + + /** + * The index of the clicked player. + */ + private final int index; + + /** + * Creates a player action event. + * + * @param option The option number. + * @param playerIndex The index of the player. + */ + public PlayerActionEvent(int option, int playerIndex) { + this.option = option; + this.index = playerIndex; + } + + /** + * Gets the menu action number (i.e. the action event 'option') clicked. + * + * @return The option number. + */ + public int getOption() { + return option; + } + + /** + * Gets the index of the clicked player. + * + * @return The index. + */ + public int getIndex() { + return index; + } + +} \ No newline at end of file diff --git a/src/org/apollo/game/event/impl/SecondPlayerActionEvent.java b/src/org/apollo/game/event/impl/SecondPlayerActionEvent.java new file mode 100644 index 00000000..2f481544 --- /dev/null +++ b/src/org/apollo/game/event/impl/SecondPlayerActionEvent.java @@ -0,0 +1,19 @@ +package org.apollo.game.event.impl; + +/** + * The second {@link PlayerActionEvent}. + * + * @author Major + */ +public final class SecondPlayerActionEvent extends PlayerActionEvent { + + /** + * Creates a second player action event. + * + * @param playerIndex The index of the clicked player. + */ + public SecondPlayerActionEvent(int playerIndex) { + super(2, playerIndex); + } + +} \ No newline at end of file diff --git a/src/org/apollo/game/event/impl/ThirdPlayerActionEvent.java b/src/org/apollo/game/event/impl/ThirdPlayerActionEvent.java new file mode 100644 index 00000000..b68ace5e --- /dev/null +++ b/src/org/apollo/game/event/impl/ThirdPlayerActionEvent.java @@ -0,0 +1,19 @@ +package org.apollo.game.event.impl; + +/** + * The third {@link PlayerActionEvent}. + * + * @author Major + */ +public final class ThirdPlayerActionEvent extends PlayerActionEvent { + + /** + * Creates a third player action event. + * + * @param playerIndex The index of the clicked player. + */ + public ThirdPlayerActionEvent(int playerIndex) { + super(3, playerIndex); + } + +} \ No newline at end of file diff --git a/src/org/apollo/net/release/r317/FifthPlayerActionEventDecoder.java b/src/org/apollo/net/release/r317/FifthPlayerActionEventDecoder.java new file mode 100644 index 00000000..ac7942a7 --- /dev/null +++ b/src/org/apollo/net/release/r317/FifthPlayerActionEventDecoder.java @@ -0,0 +1,24 @@ +package org.apollo.net.release.r317; + +import org.apollo.game.event.impl.FifthPlayerActionEvent; +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.GamePacketReader; +import org.apollo.net.release.EventDecoder; + +/** + * An {@link EventDecoder} for the {@link FifthPlayerActionEvent}. + * + * @author Major + */ +public final class FifthPlayerActionEventDecoder extends EventDecoder { + + @Override + public FifthPlayerActionEvent decode(GamePacket packet) { + GamePacketReader reader = new GamePacketReader(packet); + int index = (int) reader.getUnsigned(DataType.SHORT, DataOrder.LITTLE); + return new FifthPlayerActionEvent(index); + } + +} \ No newline at end of file diff --git a/src/org/apollo/net/release/r317/FirstPlayerActionEventDecoder.java b/src/org/apollo/net/release/r317/FirstPlayerActionEventDecoder.java new file mode 100644 index 00000000..6a70e584 --- /dev/null +++ b/src/org/apollo/net/release/r317/FirstPlayerActionEventDecoder.java @@ -0,0 +1,23 @@ +package org.apollo.net.release.r317; + +import org.apollo.game.event.impl.FirstPlayerActionEvent; +import org.apollo.net.codec.game.DataType; +import org.apollo.net.codec.game.GamePacket; +import org.apollo.net.codec.game.GamePacketReader; +import org.apollo.net.release.EventDecoder; + +/** + * An {@link EventDecoder} for the {@link FirstPlayerActionEvent}. + * + * @author Major + */ +public final class FirstPlayerActionEventDecoder extends EventDecoder { + + @Override + public FirstPlayerActionEvent decode(GamePacket packet) { + GamePacketReader reader = new GamePacketReader(packet); + int index = (int) reader.getUnsigned(DataType.SHORT); + return new FirstPlayerActionEvent(index); + } + +} \ No newline at end of file diff --git a/src/org/apollo/net/release/r317/FourthPlayerActionEventDecoder.java b/src/org/apollo/net/release/r317/FourthPlayerActionEventDecoder.java new file mode 100644 index 00000000..e0b52aa6 --- /dev/null +++ b/src/org/apollo/net/release/r317/FourthPlayerActionEventDecoder.java @@ -0,0 +1,24 @@ +package org.apollo.net.release.r317; + +import org.apollo.game.event.impl.FourthPlayerActionEvent; +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.GamePacketReader; +import org.apollo.net.release.EventDecoder; + +/** + * An {@link EventDecoder} for the {@link FourthPlayerActionEvent}. + * + * @author Major + */ +public final class FourthPlayerActionEventDecoder extends EventDecoder { + + @Override + public FourthPlayerActionEvent decode(GamePacket packet) { + GamePacketReader reader = new GamePacketReader(packet); + int index = (int) reader.getUnsigned(DataType.SHORT, DataOrder.LITTLE); + return new FourthPlayerActionEvent(index); + } + +} \ 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 687954bc..c017541b 100644 --- a/src/org/apollo/net/release/r317/Release317.java +++ b/src/org/apollo/net/release/r317/Release317.java @@ -136,6 +136,7 @@ public final class Release317 extends Release { register(78, spamEventDecoder); register(165, spamEventDecoder); register(189, spamEventDecoder); + register(210, spamEventDecoder); register(226, spamEventDecoder); register(72, new FirstNpcActionEventDecoder()); @@ -144,6 +145,12 @@ public final class Release317 extends Release { register(236, new TakeTileItemEventDecoder()); register(192, new ItemOnObjectEventDecoder()); + register(128, new FirstPlayerActionEventDecoder()); + register(153, new SecondPlayerActionEventDecoder()); + register(73, new ThirdPlayerActionEventDecoder()); + register(139, new FourthPlayerActionEventDecoder()); + register(39, new FifthPlayerActionEventDecoder()); + register(188, new AddFriendEventDecoder()); register(133, new AddIgnoreEventDecoder()); register(215, new RemoveFriendEventDecoder()); diff --git a/src/org/apollo/net/release/r317/SecondPlayerActionEventDecoder.java b/src/org/apollo/net/release/r317/SecondPlayerActionEventDecoder.java new file mode 100644 index 00000000..00269a3f --- /dev/null +++ b/src/org/apollo/net/release/r317/SecondPlayerActionEventDecoder.java @@ -0,0 +1,24 @@ +package org.apollo.net.release.r317; + +import org.apollo.game.event.impl.SecondPlayerActionEvent; +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.GamePacketReader; +import org.apollo.net.release.EventDecoder; + +/** + * An {@link EventDecoder} for the {@link SecondPlayerActionEvent}. + * + * @author Major + */ +public final class SecondPlayerActionEventDecoder extends EventDecoder { + + @Override + public SecondPlayerActionEvent decode(GamePacket packet) { + GamePacketReader reader = new GamePacketReader(packet); + int index = (int) reader.getUnsigned(DataType.SHORT, DataOrder.LITTLE); + return new SecondPlayerActionEvent(index); + } + +} \ No newline at end of file diff --git a/src/org/apollo/net/release/r317/ThirdPlayerActionEventDecoder.java b/src/org/apollo/net/release/r317/ThirdPlayerActionEventDecoder.java new file mode 100644 index 00000000..6797c45e --- /dev/null +++ b/src/org/apollo/net/release/r317/ThirdPlayerActionEventDecoder.java @@ -0,0 +1,24 @@ +package org.apollo.net.release.r317; + +import org.apollo.game.event.impl.ThirdPlayerActionEvent; +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.GamePacketReader; +import org.apollo.net.release.EventDecoder; + +/** + * An {@link EventDecoder} for the {@link ThirdPlayerActionEvent}. + * + * @author Major + */ +public final class ThirdPlayerActionEventDecoder extends EventDecoder { + + @Override + public ThirdPlayerActionEvent decode(GamePacket packet) { + GamePacketReader reader = new GamePacketReader(packet); + int index = (int) reader.getUnsigned(DataType.SHORT, DataOrder.LITTLE); + return new ThirdPlayerActionEvent(index); + } + +} \ No newline at end of file diff --git a/src/org/apollo/net/release/r377/FifthPlayerActionEventDecoder.java b/src/org/apollo/net/release/r377/FifthPlayerActionEventDecoder.java new file mode 100644 index 00000000..24a54060 --- /dev/null +++ b/src/org/apollo/net/release/r377/FifthPlayerActionEventDecoder.java @@ -0,0 +1,24 @@ +package org.apollo.net.release.r377; + +import org.apollo.game.event.impl.FifthPlayerActionEvent; +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.GamePacketReader; +import org.apollo.net.release.EventDecoder; + +/** + * An {@link EventDecoder} for the {@link FifthPlayerActionEvent}. + * + * @author Major + */ +public final class FifthPlayerActionEventDecoder extends EventDecoder { + + @Override + public FifthPlayerActionEvent decode(GamePacket packet) { + GamePacketReader reader = new GamePacketReader(packet); + int index = (int) reader.getUnsigned(DataType.SHORT, DataTransformation.ADD); + return new FifthPlayerActionEvent(index); + } + +} \ No newline at end of file diff --git a/src/org/apollo/net/release/r377/FirstPlayerActionEventDecoder.java b/src/org/apollo/net/release/r377/FirstPlayerActionEventDecoder.java new file mode 100644 index 00000000..5531b7e0 --- /dev/null +++ b/src/org/apollo/net/release/r377/FirstPlayerActionEventDecoder.java @@ -0,0 +1,25 @@ +package org.apollo.net.release.r377; + +import org.apollo.game.event.impl.FirstPlayerActionEvent; +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.GamePacketReader; +import org.apollo.net.release.EventDecoder; + +/** + * An {@link EventDecoder} for the {@link FirstPlayerActionEvent}. + * + * @author Major + */ +public final class FirstPlayerActionEventDecoder extends EventDecoder { + + @Override + public FirstPlayerActionEvent decode(GamePacket packet) { + GamePacketReader reader = new GamePacketReader(packet); + int index = (int) reader.getUnsigned(DataType.SHORT, DataOrder.LITTLE, DataTransformation.ADD); + return new FirstPlayerActionEvent(index); + } + +} \ No newline at end of file diff --git a/src/org/apollo/net/release/r377/FourthPlayerActionEventDecoder.java b/src/org/apollo/net/release/r377/FourthPlayerActionEventDecoder.java new file mode 100644 index 00000000..f650a533 --- /dev/null +++ b/src/org/apollo/net/release/r377/FourthPlayerActionEventDecoder.java @@ -0,0 +1,24 @@ +package org.apollo.net.release.r377; + +import org.apollo.game.event.impl.FourthPlayerActionEvent; +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.GamePacketReader; +import org.apollo.net.release.EventDecoder; + +/** + * An {@link EventDecoder} for the {@link FourthPlayerActionEvent}. + * + * @author Major + */ +public final class FourthPlayerActionEventDecoder extends EventDecoder { + + @Override + public FourthPlayerActionEvent decode(GamePacket packet) { + GamePacketReader reader = new GamePacketReader(packet); + int index = (int) reader.getUnsigned(DataType.SHORT, DataOrder.LITTLE); + return new FourthPlayerActionEvent(index); + } + +} \ 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 b9e068a4..a6dd4392 100644 --- a/src/org/apollo/net/release/r377/Release377.java +++ b/src/org/apollo/net/release/r377/Release377.java @@ -141,6 +141,12 @@ public final class Release377 extends Release { register(71, new TakeTileItemEventDecoder()); register(152, new ItemOnObjectEventDecoder()); + register(245, new FirstPlayerActionEventDecoder()); + register(233, new SecondPlayerActionEventDecoder()); + register(194, new ThirdPlayerActionEventDecoder()); + register(116, new FourthPlayerActionEventDecoder()); + register(45, new FifthPlayerActionEventDecoder()); + register(120, new AddFriendEventDecoder()); register(217, new AddIgnoreEventDecoder()); register(141, new RemoveFriendEventDecoder()); diff --git a/src/org/apollo/net/release/r377/SecondPlayerActionEventDecoder.java b/src/org/apollo/net/release/r377/SecondPlayerActionEventDecoder.java new file mode 100644 index 00000000..11160fcf --- /dev/null +++ b/src/org/apollo/net/release/r377/SecondPlayerActionEventDecoder.java @@ -0,0 +1,24 @@ +package org.apollo.net.release.r377; + +import org.apollo.game.event.impl.SecondPlayerActionEvent; +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.GamePacketReader; +import org.apollo.net.release.EventDecoder; + +/** + * An {@link EventDecoder} for the {@link SecondPlayerActionEvent}. + * + * @author Major + */ +public final class SecondPlayerActionEventDecoder extends EventDecoder { + + @Override + public SecondPlayerActionEvent decode(GamePacket packet) { + GamePacketReader reader = new GamePacketReader(packet); + int index = (int) reader.getUnsigned(DataType.SHORT, DataTransformation.ADD); + return new SecondPlayerActionEvent(index); + } + +} \ No newline at end of file diff --git a/src/org/apollo/net/release/r377/ThirdPlayerActionEventDecoder.java b/src/org/apollo/net/release/r377/ThirdPlayerActionEventDecoder.java new file mode 100644 index 00000000..f5d5bb93 --- /dev/null +++ b/src/org/apollo/net/release/r377/ThirdPlayerActionEventDecoder.java @@ -0,0 +1,24 @@ +package org.apollo.net.release.r377; + +import org.apollo.game.event.impl.ThirdPlayerActionEvent; +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.GamePacketReader; +import org.apollo.net.release.EventDecoder; + +/** + * An {@link EventDecoder} for the {@link ThirdPlayerActionEvent}. + * + * @author Major + */ +public final class ThirdPlayerActionEventDecoder extends EventDecoder { + + @Override + public ThirdPlayerActionEvent decode(GamePacket packet) { + GamePacketReader reader = new GamePacketReader(packet); + int index = (int) reader.getUnsigned(DataType.SHORT, DataOrder.LITTLE); + return new ThirdPlayerActionEvent(index); + } + +} \ No newline at end of file