Add support for the MagicOnPlayer and MagicOnNpc frames.

This commit is contained in:
thispixel
2015-02-17 16:01:34 +00:00
parent 33663e5760
commit 4bcb7914a2
9 changed files with 210 additions and 0 deletions
@@ -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;
}
}
@@ -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);
}
}
@@ -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);
}
}
@@ -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<MagicOnNpcMessage> {
@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);
}
}
@@ -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<MagicOnPlayerMessage> {
@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);
}
}
@@ -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());
@@ -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<MagicOnNpcMessage> {
@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);
}
}
@@ -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<MagicOnPlayerMessage> {
@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);
}
}
@@ -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());