diff --git a/src/org/apollo/game/message/impl/MagicOnMobMessage.java b/src/org/apollo/game/message/impl/MagicOnMobMessage.java new file mode 100644 index 00000000..eb30e23c --- /dev/null +++ b/src/org/apollo/game/message/impl/MagicOnMobMessage.java @@ -0,0 +1,66 @@ +package org.apollo.game.message.impl; + +import org.apollo.game.message.Message; +import org.apollo.game.model.entity.Entity; + +/** + * A {@link Message} sent by the client representing when a player uses any type of magic spell on a mob. + * + * @author Stuart + */ +public abstract class MagicOnMobMessage extends Message { + + /** + * The type of the mob + */ + private final Entity.EntityType type; + /** + * The index of the mob + */ + private final int index; + /** + * The spell if used + */ + private final int spellId; + + /** + * Creates a magic on mob message + * + * @param type The mob type + * @param index The mob index + * @param spellId The spell id + */ + public MagicOnMobMessage(Entity.EntityType type, int index, int spellId) { + this.type = type; + this.index = index; + this.spellId = spellId; + } + + /** + * Gets the type of the mob the spell is being used on + * + * @return The mob type + */ + public Entity.EntityType getType() { + return type; + } + + /** + * Gets the index of the mob the spell is being used on + * + * @return The mob index + */ + public int getIndex() { + return index; + } + + /** + * Gets the spell id that is being used + * + * @return The spell id + */ + public int getSpellId() { + return spellId; + } + +} \ No newline at end of file diff --git a/src/org/apollo/game/message/impl/MagicOnNpcMessage.java b/src/org/apollo/game/message/impl/MagicOnNpcMessage.java new file mode 100644 index 00000000..f6acb656 --- /dev/null +++ b/src/org/apollo/game/message/impl/MagicOnNpcMessage.java @@ -0,0 +1,23 @@ +package org.apollo.game.message.impl; + +import org.apollo.game.model.entity.Entity; +import org.apollo.game.model.entity.Npc; + +/** + * The magic on npc {@link org.apollo.game.message.impl.MagicOnNpcMessage} + * + * @author Stuart + */ +public final class MagicOnNpcMessage extends MagicOnMobMessage { + + /** + * Creates the magic on npc message + * + * @param index The npc index + * @param spellId The spell id used + */ + public MagicOnNpcMessage(int index, int spellId) { + super(Entity.EntityType.NPC, index, spellId); + } + +} diff --git a/src/org/apollo/game/message/impl/MagicOnPlayerMessage.java b/src/org/apollo/game/message/impl/MagicOnPlayerMessage.java new file mode 100644 index 00000000..d0517f1f --- /dev/null +++ b/src/org/apollo/game/message/impl/MagicOnPlayerMessage.java @@ -0,0 +1,22 @@ +package org.apollo.game.message.impl; + +import org.apollo.game.model.entity.Entity; + +/** + * The magic on player {@link org.apollo.game.message.impl.MagicOnMobMessage + * + * @author Stuart + */ +public final class MagicOnPlayerMessage extends MagicOnMobMessage { + + /** + * Creates the magic on player message + * + * @param index The player index + * @param spellId The spell id used + */ + public MagicOnPlayerMessage(int index, int spellId) { + super(Entity.EntityType.PLAYER, index, spellId); + } + +} \ No newline at end of file diff --git a/src/org/apollo/net/release/r317/MagicOnNpcMessageDecoder.java b/src/org/apollo/net/release/r317/MagicOnNpcMessageDecoder.java new file mode 100644 index 00000000..4d8babcb --- /dev/null +++ b/src/org/apollo/net/release/r317/MagicOnNpcMessageDecoder.java @@ -0,0 +1,24 @@ +package org.apollo.net.release.r317; + +import org.apollo.game.message.impl.MagicOnNpcMessage; +import org.apollo.net.codec.game.*; +import org.apollo.net.release.MessageDecoder; + +/** + * A {@link org.apollo.net.release.MessageDecoder} for the {@link org.apollo.game.message.impl.MagicOnNpcMessage} + * + * @author Stuart + */ +public final class MagicOnNpcMessageDecoder extends MessageDecoder { + + @Override + public MagicOnNpcMessage decode(GamePacket packet) { + GamePacketReader reader = new GamePacketReader(packet); + + int index = (int) reader.getSigned(DataType.SHORT, DataOrder.LITTLE, DataTransformation.ADD); + int spellId = (int) reader.getSigned(DataType.SHORT, DataTransformation.ADD); + + return new MagicOnNpcMessage(index, spellId); + } + +} \ No newline at end of file diff --git a/src/org/apollo/net/release/r317/MagicOnPlayerMessageDecoder.java b/src/org/apollo/net/release/r317/MagicOnPlayerMessageDecoder.java new file mode 100644 index 00000000..81311901 --- /dev/null +++ b/src/org/apollo/net/release/r317/MagicOnPlayerMessageDecoder.java @@ -0,0 +1,24 @@ +package org.apollo.net.release.r317; + +import org.apollo.game.message.impl.MagicOnPlayerMessage; +import org.apollo.net.codec.game.*; +import org.apollo.net.release.MessageDecoder; + +/** + * A {@link org.apollo.net.release.MessageDecoder} for the {@link org.apollo.game.message.impl.MagicOnPlayerMessage} + * + * @author Stuart + */ +public final class MagicOnPlayerMessageDecoder extends MessageDecoder { + + @Override + public MagicOnPlayerMessage decode(GamePacket packet) { + GamePacketReader reader = new GamePacketReader(packet); + + int index = (int) reader.getSigned(DataType.SHORT, DataTransformation.ADD); + int spellId = (int) reader.getSigned(DataType.SHORT, DataOrder.LITTLE); + + return new MagicOnPlayerMessage(index, spellId); + } + +} \ 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 fbeabca2..24312f09 100644 --- a/src/org/apollo/net/release/r317/Release317.java +++ b/src/org/apollo/net/release/r317/Release317.java @@ -126,6 +126,7 @@ public final class Release317 extends Release { register(53, new ItemOnItemMessageDecoder()); register(237, new MagicOnItemMessageDecoder()); + register(249, new MagicOnPlayerMessageDecoder()); register(3, new FocusUpdateMessageDecoder()); register(45, new FlaggedMouseEventMessageDecoder()); diff --git a/src/org/apollo/net/release/r377/MagicOnNpcMessageDecoder.java b/src/org/apollo/net/release/r377/MagicOnNpcMessageDecoder.java new file mode 100644 index 00000000..6ee99adb --- /dev/null +++ b/src/org/apollo/net/release/r377/MagicOnNpcMessageDecoder.java @@ -0,0 +1,24 @@ +package org.apollo.net.release.r377; + +import org.apollo.game.message.impl.MagicOnNpcMessage; +import org.apollo.net.codec.game.*; +import org.apollo.net.release.MessageDecoder; + +/** + * A {@link org.apollo.net.release.MessageDecoder} for the {@link org.apollo.game.message.impl.MagicOnNpcMessage} + * + * @author Stuart + */ +public final class MagicOnNpcMessageDecoder extends MessageDecoder { + + @Override + public MagicOnNpcMessage decode(GamePacket packet) { + GamePacketReader reader = new GamePacketReader(packet); + + int index = (int) reader.getSigned(DataType.SHORT, DataOrder.LITTLE, DataTransformation.ADD); + int spellId = (int) reader.getSigned(DataType.SHORT, DataTransformation.ADD); + + return new MagicOnNpcMessage(index, spellId); + } + +} \ No newline at end of file diff --git a/src/org/apollo/net/release/r377/MagicOnPlayerMessageDecoder.java b/src/org/apollo/net/release/r377/MagicOnPlayerMessageDecoder.java new file mode 100644 index 00000000..31999b11 --- /dev/null +++ b/src/org/apollo/net/release/r377/MagicOnPlayerMessageDecoder.java @@ -0,0 +1,24 @@ +package org.apollo.net.release.r377; + +import org.apollo.game.message.impl.MagicOnPlayerMessage; +import org.apollo.net.codec.game.*; +import org.apollo.net.release.MessageDecoder; + +/** + * A {@link org.apollo.net.release.MessageDecoder} for the {@link org.apollo.game.message.impl.MagicOnPlayerMessage} + * + * @author Stuart + */ +public final class MagicOnPlayerMessageDecoder extends MessageDecoder { + + @Override + public MagicOnPlayerMessage decode(GamePacket packet) { + GamePacketReader reader = new GamePacketReader(packet); + + int index = (int) reader.getSigned(DataType.SHORT, DataTransformation.ADD); + int spellId = (int) reader.getSigned(DataType.SHORT, DataOrder.LITTLE); + + return new MagicOnPlayerMessage(index, spellId); + } + +} \ 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 2cbdf829..0681f56f 100644 --- a/src/org/apollo/net/release/r377/Release377.java +++ b/src/org/apollo/net/release/r377/Release377.java @@ -126,6 +126,8 @@ public final class Release377 extends Release { register(1, new ItemOnItemMessageDecoder()); register(36, new MagicOnItemMessageDecoder()); + register(31, new MagicOnPlayerMessageDecoder()); + register(104, new MagicOnNpcMessageDecoder()); register(187, new FocusUpdateMessageDecoder()); register(19, new MouseClickedMessageDecoder());