mirror of
https://github.com/2006-Scape/apollo.git
synced 2026-07-04 16:49:11 +00:00
Add magic plugin, more decoders and commands.
This commit is contained in:
@@ -67,93 +67,90 @@ public final class ItemDefinitionDecoder {
|
||||
private ItemDefinition decode(int id, ByteBuffer buffer) {
|
||||
ItemDefinition definition = new ItemDefinition(id);
|
||||
while (true) {
|
||||
int code = buffer.get() & 0xFF;
|
||||
int opcode = buffer.get() & 0xFF;
|
||||
|
||||
if (code == 0) {
|
||||
if (opcode == 0) {
|
||||
return definition;
|
||||
} else if (code == 1) {
|
||||
} else if (opcode == 1) {
|
||||
buffer.getShort();// & 0xFFFF; // model Id
|
||||
} else if (code == 2) {
|
||||
} else if (opcode == 2) {
|
||||
definition.setName(ByteBufferUtil.readString(buffer));
|
||||
} else if (code == 3) {
|
||||
} else if (opcode == 3) {
|
||||
definition.setDescription(ByteBufferUtil.readString(buffer));
|
||||
} else if (code == 4) {
|
||||
} else if (opcode == 4) {
|
||||
buffer.getShort();// & 0xFFFF; // sprite scale
|
||||
} else if (code == 5) {
|
||||
} else if (opcode == 5) {
|
||||
buffer.getShort();// & 0xFFFF; // sprite pitch
|
||||
} else if (code == 6) {
|
||||
} else if (opcode == 6) {
|
||||
buffer.getShort();// & 0xFFFF; //sprite camera roll
|
||||
} else if (code == 7) {
|
||||
} else if (opcode == 7) {
|
||||
buffer.getShort(); // sprite dX
|
||||
} else if (code == 8) {
|
||||
} else if (opcode == 8) {
|
||||
buffer.getShort(); // sprite dY
|
||||
} else if (code == 10) {
|
||||
} else if (opcode == 10) {
|
||||
buffer.getShort();
|
||||
} else if (code == 11) {
|
||||
} else if (opcode == 11) {
|
||||
definition.setStackable(true);
|
||||
} else if (code == 12) {
|
||||
buffer.getInt(); // model height
|
||||
} else if (code == 16) {
|
||||
} else if (opcode == 12) {
|
||||
definition.setValue(buffer.getInt());
|
||||
} else if (opcode == 16) {
|
||||
definition.setMembersOnly(true);
|
||||
} else if (code == 23) {
|
||||
} else if (opcode == 23) {
|
||||
buffer.getShort(); // & 0xFFFF; //primaryMaleEquipModelId
|
||||
buffer.get(); // maleEquipYTranslation
|
||||
} else if (code == 24) {
|
||||
} else if (opcode == 24) {
|
||||
buffer.getShort(); // & 0xFFFF; // secondaryMaleEquipModelId
|
||||
} else if (code == 25) {
|
||||
} else if (opcode == 25) {
|
||||
buffer.getShort(); // & 0xFFFF; // primaryFemaleEquipModelId
|
||||
buffer.get(); // femaleEquipYTranslation
|
||||
} else if (code == 26) {
|
||||
} else if (opcode == 26) {
|
||||
buffer.getShort(); // & 0xFFFF; // secondaryFemaleEquipModelId
|
||||
} else if (code >= 30 && code < 35) {
|
||||
} else if (opcode >= 30 && opcode < 35) {
|
||||
String str = ByteBufferUtil.readString(buffer);
|
||||
if (str.equalsIgnoreCase("hidden")) {
|
||||
str = null;
|
||||
}
|
||||
definition.setGroundAction(code - 30, str);
|
||||
} else if (code >= 35 && code < 40) {
|
||||
String str = ByteBufferUtil.readString(buffer);
|
||||
definition.setInventoryAction(code - 35, str);
|
||||
} else if (code == 40) {
|
||||
definition.setGroundAction(opcode - 30, str);
|
||||
} else if (opcode >= 35 && opcode < 40) {
|
||||
definition.setInventoryAction(opcode - 35, ByteBufferUtil.readString(buffer));
|
||||
} else if (opcode == 40) {
|
||||
int colourCount = buffer.get() & 0xFF;
|
||||
for (int i = 0; i < colourCount; i++) {
|
||||
buffer.getShort(); // & 0xFFFF; // original colour
|
||||
buffer.getShort(); // & 0xFFFF; // replacement colour
|
||||
}
|
||||
} else if (code == 78) {
|
||||
} else if (opcode == 78) {
|
||||
buffer.getShort(); // & 0xFFFF; // tertiaryMaleEquipModelId
|
||||
} else if (code == 79) {
|
||||
} else if (opcode == 79) {
|
||||
buffer.getShort(); // & 0xFFFF; // tertiaryFemaleEquipModelId
|
||||
} else if (code == 90) {
|
||||
} else if (opcode == 90) {
|
||||
buffer.getShort(); // & 0xFFFF; // primaryMaleHeadPiece
|
||||
} else if (code == 91) {
|
||||
} else if (opcode == 91) {
|
||||
buffer.getShort(); // & 0xFFFF; // primaryFemaleHeadPiece
|
||||
} else if (code == 92) {
|
||||
} else if (opcode == 92) {
|
||||
buffer.getShort(); // & 0xFFFF; // secondaryMaleHeadPiece
|
||||
} else if (code == 93) {
|
||||
} else if (opcode == 93) {
|
||||
buffer.getShort(); // & 0xFFFF; // secondaryFemaleHeadPiece
|
||||
} else if (code == 95) {
|
||||
} else if (opcode == 95) {
|
||||
buffer.getShort(); // & 0xFFFF; // spriteCameraYaw
|
||||
} else if (code == 97) {
|
||||
int noteInfoId = buffer.getShort() & 0xFFFF;
|
||||
definition.setNoteInfoId(noteInfoId);
|
||||
} else if (code == 98) {
|
||||
int noteGraphicId = buffer.getShort() & 0xFFFF;
|
||||
definition.setNoteGraphicId(noteGraphicId);
|
||||
} else if (code >= 100 && code < 110) {
|
||||
} else if (opcode == 97) {
|
||||
definition.setNoteInfoId(buffer.getShort() & 0xFFFF);
|
||||
} else if (opcode == 98) {
|
||||
definition.setNoteGraphicId(buffer.getShort() & 0xFFFF);
|
||||
} else if (opcode >= 100 && opcode < 110) {
|
||||
buffer.getShort(); // & 0xFFFF; // stack id
|
||||
buffer.getShort(); // & 0xFFFF; // stack size
|
||||
} else if (code == 110) {
|
||||
} else if (opcode == 110) {
|
||||
buffer.getShort(); // & 0xFFFF; // groundScaleX
|
||||
} else if (code == 111) {
|
||||
} else if (opcode == 111) {
|
||||
buffer.getShort(); // & 0xFFFF; // groundScaleY
|
||||
} else if (code == 112) {
|
||||
} else if (opcode == 112) {
|
||||
buffer.getShort(); // & 0xFFFF; // groundScaleZ
|
||||
} else if (code == 113) {
|
||||
} else if (opcode == 113) {
|
||||
buffer.get(); // light ambiance
|
||||
} else if (code == 114) {
|
||||
} else if (opcode == 114) {
|
||||
buffer.getShort(); // * 5; // light diffusion
|
||||
} else if (code == 115) {
|
||||
} else if (opcode == 115) {
|
||||
definition.setTeam(buffer.get() & 0xFF);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
package org.apollo.game.event.impl;
|
||||
|
||||
import org.apollo.game.event.Event;
|
||||
|
||||
/**
|
||||
* An {@link Event} sent by the client when the user has pressed an arrow key.
|
||||
*
|
||||
* @author Major
|
||||
*/
|
||||
public final class ArrowKeyEvent extends Event {
|
||||
|
||||
/**
|
||||
* The camera roll.
|
||||
*/
|
||||
private final int roll;
|
||||
|
||||
/**
|
||||
* The camera yaw.
|
||||
*/
|
||||
private final int yaw;
|
||||
|
||||
/**
|
||||
* Creates a new arrow key event.
|
||||
*/
|
||||
public ArrowKeyEvent(int roll, int yaw) {
|
||||
this.roll = roll;
|
||||
this.yaw = yaw;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the roll of the camera.
|
||||
*
|
||||
* @return The roll.
|
||||
*/
|
||||
public int getRoll() {
|
||||
return roll;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the yaw of the camera.
|
||||
*
|
||||
* @return The yaw.
|
||||
*/
|
||||
public int getYaw() {
|
||||
return yaw;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
package org.apollo.game.event.impl;
|
||||
|
||||
import org.apollo.game.event.Event;
|
||||
|
||||
/**
|
||||
* An event sent when the user moves the camera.
|
||||
*
|
||||
* @author Toby
|
||||
*/
|
||||
public class CameraMovementEvent extends Event {
|
||||
|
||||
/**
|
||||
* The camera x.
|
||||
*/
|
||||
private final int cameraX;
|
||||
|
||||
/**
|
||||
* The camera y.
|
||||
*/
|
||||
private final int cameraY;
|
||||
|
||||
/**
|
||||
* Creates a new camera movement event.
|
||||
*
|
||||
* @param cameraX The camera x.
|
||||
* @param cameraY The camera y.
|
||||
*/
|
||||
public CameraMovementEvent(int cameraX, int cameraY) {
|
||||
this.cameraX = cameraX;
|
||||
this.cameraY = cameraY;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the camera x.
|
||||
*
|
||||
* @return The camera x.
|
||||
*/
|
||||
public int getCameraX() {
|
||||
return cameraX;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the camera y.
|
||||
*
|
||||
* @return The camera y.
|
||||
*/
|
||||
public int getCameraY() {
|
||||
return cameraY;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package org.apollo.game.event.impl;
|
||||
|
||||
import org.apollo.game.event.Event;
|
||||
|
||||
/**
|
||||
* An outgoing event sent to reset the animations of every character.
|
||||
*
|
||||
* @author Major
|
||||
*/
|
||||
public class CharacterAnimationResetEvent extends Event {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package org.apollo.game.event.impl;
|
||||
|
||||
import org.apollo.game.event.Event;
|
||||
|
||||
/**
|
||||
* An event which is sent to the client to switch the currently displayed tab interface.
|
||||
*
|
||||
* @author Chris Fletcher
|
||||
*/
|
||||
public final class DisplayTabInterfaceEvent extends Event {
|
||||
|
||||
/**
|
||||
* The tab index.
|
||||
*/
|
||||
private final int tab;
|
||||
|
||||
/**
|
||||
* Creates a new display tab interface event.
|
||||
*
|
||||
* @param tab The index of the tab to display.
|
||||
*/
|
||||
public DisplayTabInterfaceEvent(int tab) {
|
||||
this.tab = tab;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the index of the tab to display.
|
||||
*
|
||||
* @return The tab index.
|
||||
*/
|
||||
public int getTab() {
|
||||
return tab;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package org.apollo.game.event.impl;
|
||||
|
||||
/**
|
||||
* The first {@link NpcActionEvent}.
|
||||
*
|
||||
* @author Major
|
||||
*/
|
||||
public class FirstNpcActionEvent extends NpcActionEvent {
|
||||
|
||||
/**
|
||||
* Creates a new first npc action event.
|
||||
*
|
||||
* @param npcIndex The index of the npc.
|
||||
*/
|
||||
public FirstNpcActionEvent(int npcIndex) {
|
||||
super(1, npcIndex);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package org.apollo.game.event.impl;
|
||||
|
||||
import org.apollo.game.event.Event;
|
||||
|
||||
/**
|
||||
* Represents a change in the client's focus (if it is the active window).
|
||||
*
|
||||
* @author Major
|
||||
*/
|
||||
public class FocusUpdateEvent extends Event {
|
||||
|
||||
/**
|
||||
* Dictates whether the client is focused or not.
|
||||
*/
|
||||
private final boolean focused;
|
||||
|
||||
/**
|
||||
* Creates a new focus update event.
|
||||
*
|
||||
* @param update The data received.
|
||||
*/
|
||||
public FocusUpdateEvent(boolean focused) {
|
||||
this.focused = focused;
|
||||
}
|
||||
|
||||
/**
|
||||
* Indicates whether or not the client is focused.
|
||||
*
|
||||
* @return {@code true} if the client is focused, otherwise {@code false}.
|
||||
*/
|
||||
public boolean isFocused() {
|
||||
return focused;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package org.apollo.game.event.impl;
|
||||
|
||||
/**
|
||||
* An event sent by the client when a player casts a spell on an inventory item.
|
||||
*
|
||||
* @author Chris Fletcher
|
||||
*/
|
||||
public final class MagicOnItemEvent extends InventoryItemEvent {
|
||||
|
||||
/**
|
||||
* The spell id.
|
||||
*/
|
||||
private final int spell;
|
||||
|
||||
/**
|
||||
* Creates a new magic on item event.
|
||||
*
|
||||
* @param interfaceId The interface id.
|
||||
* @param id The item id.
|
||||
* @param slot The item slot.
|
||||
* @param spell The spell id.
|
||||
*/
|
||||
public MagicOnItemEvent(int interfaceId, int id, int slot, int spell) {
|
||||
super(0, interfaceId, id, slot);
|
||||
this.spell = spell;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the spell id.
|
||||
*
|
||||
* @return The spell id.
|
||||
*/
|
||||
public int getSpellId() {
|
||||
return spell;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package org.apollo.game.event.impl;
|
||||
|
||||
import org.apollo.game.event.Event;
|
||||
|
||||
/**
|
||||
* An{@link Event} sent when the player has clicked on something. TODO
|
||||
*
|
||||
* @author Major
|
||||
*/
|
||||
public class MouseClickEvent extends Event {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
package org.apollo.game.event.impl;
|
||||
|
||||
import org.apollo.game.event.Event;
|
||||
|
||||
/**
|
||||
* An {@link Event} representing the clicking of an npc menu action.
|
||||
*
|
||||
* @author Major
|
||||
*/
|
||||
public class NpcActionEvent extends Event {
|
||||
|
||||
/**
|
||||
* The action number .
|
||||
*/
|
||||
private final int action;
|
||||
|
||||
/**
|
||||
* The npc index.
|
||||
*/
|
||||
private final int npcIndex;
|
||||
|
||||
/**
|
||||
* Creates a new npc action event.
|
||||
*
|
||||
* @param action The action number.
|
||||
* @param npcIndex The index of the npc.
|
||||
*/
|
||||
public NpcActionEvent(int action, int npcIndex) {
|
||||
this.action = action;
|
||||
this.npcIndex = npcIndex;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the menu action number clicked.
|
||||
*
|
||||
* @return The action number.
|
||||
*/
|
||||
public int getAction() {
|
||||
return action;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the index of the npc clicked.
|
||||
*
|
||||
* @return The npc index.
|
||||
*/
|
||||
public int getNpcIndex() {
|
||||
return npcIndex;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package org.apollo.game.event.impl;
|
||||
|
||||
/**
|
||||
* The second {@link NpcActionEvent}.
|
||||
*
|
||||
* @author Major
|
||||
*/
|
||||
public class SecondNpcActionEvent extends NpcActionEvent {
|
||||
|
||||
/**
|
||||
* Creates a new second npc action event.
|
||||
*
|
||||
* @param npcIndex The index of the npc.
|
||||
*/
|
||||
public SecondNpcActionEvent(int npcIndex) {
|
||||
super(2, npcIndex);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package org.apollo.game.event.impl;
|
||||
|
||||
import org.apollo.game.event.Event;
|
||||
|
||||
/**
|
||||
* A message sent after a short period of time containing random data.
|
||||
*
|
||||
* @author Major
|
||||
*/
|
||||
public class SpamPacketEvent extends Event {
|
||||
|
||||
/**
|
||||
* Data sent by the spam packet.
|
||||
*/
|
||||
private final byte[] data;
|
||||
|
||||
/**
|
||||
* Creates a new spam packet event.
|
||||
*
|
||||
* @param data The data sent.
|
||||
*/
|
||||
public SpamPacketEvent(byte[] data) {
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the data sent.
|
||||
*
|
||||
* @return The data.
|
||||
*/
|
||||
public byte[] getData() {
|
||||
return data;
|
||||
}
|
||||
// 0
|
||||
// random * 256
|
||||
// 101
|
||||
// 233
|
||||
// 45092 (short)
|
||||
// 35784 if random * 2= 0
|
||||
// random * 256
|
||||
// 64
|
||||
// 38
|
||||
// Math.random() * 65536
|
||||
// Math.random() * 65536
|
||||
// offset - start offset (exc. the first 0 sent) - size byte.
|
||||
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package org.apollo.game.event.impl;
|
||||
|
||||
/**
|
||||
* The third {@link NpcActionEvent}.
|
||||
*
|
||||
* @author Major
|
||||
*/
|
||||
public class ThirdNpcActionEvent extends NpcActionEvent {
|
||||
|
||||
/**
|
||||
* Creates a new third npc action event.
|
||||
*
|
||||
* @param npcIndex The index of the npc.
|
||||
*/
|
||||
public ThirdNpcActionEvent(int npcIndex) {
|
||||
super(3, npcIndex);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -47,4 +47,10 @@ public class InterfaceConstants {
|
||||
12201, 12202, 12203, 12204, 12205, 12206, 12207, 12208, 12209, 12210, 12211, 12212, 12213, 12214, 12215,
|
||||
12216, 12217, 12218, 12219, 12220, 12221, 12222, 12223 };
|
||||
|
||||
/**
|
||||
* Prevent instantiation.
|
||||
*/
|
||||
private InterfaceConstants() {
|
||||
}
|
||||
|
||||
}
|
||||
@@ -325,9 +325,8 @@ public final class Inventory implements Cloneable {
|
||||
return true;
|
||||
} else if (mode == StackMode.STACK_STACKABLE_ITEMS) {
|
||||
return def.isStackable();
|
||||
} else { // will be STACK_NEVER
|
||||
return false;
|
||||
}
|
||||
return false; // will be STACK_NEVER
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -36,6 +36,15 @@ public final class ItemDefinition {
|
||||
return definitions.length;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the array of item definitions.
|
||||
*
|
||||
* @return The definitions.
|
||||
*/
|
||||
public static ItemDefinition[] getDefinitions() {
|
||||
return definitions;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialises the class with the specified set of definitions.
|
||||
*
|
||||
@@ -121,7 +130,7 @@ public final class ItemDefinition {
|
||||
/**
|
||||
* A flag indicating if this item is members only.
|
||||
*/
|
||||
private boolean members;
|
||||
private boolean members = false;
|
||||
|
||||
/**
|
||||
* The name of the item.
|
||||
@@ -149,9 +158,9 @@ public final class ItemDefinition {
|
||||
private int team;
|
||||
|
||||
/**
|
||||
* The value of the item.
|
||||
* The item's floor value.
|
||||
*/
|
||||
private int value;
|
||||
private int value = 1;
|
||||
|
||||
/**
|
||||
* Creates an item definition with the default values.
|
||||
@@ -186,9 +195,9 @@ public final class ItemDefinition {
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the item's id.
|
||||
* Gets this item's id.
|
||||
*
|
||||
* @return The item's id.
|
||||
* @return The id.
|
||||
*/
|
||||
public int getId() {
|
||||
return id;
|
||||
@@ -209,16 +218,16 @@ public final class ItemDefinition {
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the name of this item.
|
||||
* Gets this item's name.
|
||||
*
|
||||
* @return The name of this item, or {@code null} if it has no name.
|
||||
* @return The name.
|
||||
*/
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the note graphic id.
|
||||
* Gets this item's note graphic id.
|
||||
*
|
||||
* @return The note graphic id.
|
||||
*/
|
||||
@@ -227,7 +236,7 @@ public final class ItemDefinition {
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the note info id.
|
||||
* Gets this item's note info id.
|
||||
*
|
||||
* @return The note info id.
|
||||
*/
|
||||
@@ -245,9 +254,9 @@ public final class ItemDefinition {
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the value of this item.
|
||||
* Gets this item's value.
|
||||
*
|
||||
* @return The value of this item.
|
||||
* @return The value.
|
||||
*/
|
||||
public int getValue() {
|
||||
return value;
|
||||
@@ -281,9 +290,9 @@ public final class ItemDefinition {
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the description of this item.
|
||||
* Sets this item's description.
|
||||
*
|
||||
* @param description The item's description.
|
||||
* @param description The description.
|
||||
*/
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
@@ -318,25 +327,25 @@ public final class ItemDefinition {
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the members only flag.
|
||||
* Sets this item's members only flag.
|
||||
*
|
||||
* @param members The members only flag.
|
||||
* @param members The flag.
|
||||
*/
|
||||
public void setMembersOnly(boolean members) {
|
||||
this.members = members;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the name of this item.
|
||||
* Sets this item's name.
|
||||
*
|
||||
* @param name The item's name.
|
||||
* @param name The name.
|
||||
*/
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the note graphic id.
|
||||
* Sets this item's note graphic id.
|
||||
*
|
||||
* @param noteGraphicId The note graphic id.
|
||||
*/
|
||||
@@ -345,7 +354,7 @@ public final class ItemDefinition {
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the note info id.
|
||||
* Sets this item's note info id.
|
||||
*
|
||||
* @param noteInfoId The note info id.
|
||||
*/
|
||||
@@ -354,7 +363,7 @@ public final class ItemDefinition {
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the stackable flag.
|
||||
* Sets this item's stackable flag.
|
||||
*
|
||||
* @param stackable The stackable flag.
|
||||
*/
|
||||
@@ -363,7 +372,7 @@ public final class ItemDefinition {
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets this items team.
|
||||
* Sets this item's team.
|
||||
*
|
||||
* @param team The team.
|
||||
*/
|
||||
@@ -372,9 +381,9 @@ public final class ItemDefinition {
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the value of this item.
|
||||
* sets this item's value.
|
||||
*
|
||||
* @param value The value of this item.
|
||||
* @param value The value.
|
||||
*/
|
||||
public void setValue(int value) {
|
||||
this.value = value;
|
||||
@@ -394,7 +403,6 @@ public final class ItemDefinition {
|
||||
ItemDefinition infoDef = lookup(noteInfoId);
|
||||
name = infoDef.name;
|
||||
members = infoDef.members;
|
||||
value = infoDef.value;
|
||||
|
||||
String prefix = "a";
|
||||
char firstChar = name == null ? 'n' : name.charAt(0);
|
||||
|
||||
@@ -23,6 +23,15 @@ public final class NpcDefinition {
|
||||
return definitions.length;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the array of npc definitions.
|
||||
*
|
||||
* @return The definitions.
|
||||
*/
|
||||
public static NpcDefinition[] getDefinitions() {
|
||||
return definitions;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialises the class with the specified set of definitions.
|
||||
*
|
||||
|
||||
@@ -36,9 +36,10 @@ public final class GameEventDecoder extends OneToOneDecoder {
|
||||
if (decoder != null) {
|
||||
return decoder.decode(packet);
|
||||
}
|
||||
System.out.println("Unidentified packet received - opcode: " + packet.getOpcode() + ".");
|
||||
return null;
|
||||
}
|
||||
return msg;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -64,4 +64,4 @@ public final class GamePacketEncoder extends OneToOneEncoder {
|
||||
return buffer;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -111,4 +111,4 @@ public abstract class Release {
|
||||
decoders[opcode] = decoder;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package org.apollo.net.release.r317;
|
||||
|
||||
import org.apollo.game.event.impl.ArrowKeyEvent;
|
||||
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 ArrowKeyEvent}.
|
||||
*
|
||||
* @author Major
|
||||
*/
|
||||
public class ArrowKeyEventDecoder extends EventDecoder<ArrowKeyEvent> {
|
||||
|
||||
@Override
|
||||
public ArrowKeyEvent decode(GamePacket packet) {
|
||||
GamePacketReader reader = new GamePacketReader(packet);
|
||||
int roll = (int) reader.getUnsigned(DataType.SHORT, DataOrder.LITTLE);
|
||||
int yaw = (int) reader.getUnsigned(DataType.SHORT, DataOrder.LITTLE);
|
||||
return new ArrowKeyEvent(roll, yaw);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package org.apollo.net.release.r317;
|
||||
|
||||
import org.apollo.game.event.impl.CameraMovementEvent;
|
||||
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 CameraMovementEvent}.
|
||||
*
|
||||
* @author Toby
|
||||
*/
|
||||
public class CameraMovementEventDecoder extends EventDecoder<CameraMovementEvent> {
|
||||
|
||||
@Override
|
||||
public CameraMovementEvent decode(GamePacket packet) {
|
||||
GamePacketReader reader = new GamePacketReader(packet);
|
||||
int cameraY = (int) reader.getUnsigned(DataType.SHORT);
|
||||
int cameraX = (int) reader.getUnsigned(DataType.SHORT, DataTransformation.ADD);
|
||||
return new CameraMovementEvent(cameraX, cameraY);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package org.apollo.net.release.r317;
|
||||
|
||||
import org.apollo.game.event.impl.CharacterAnimationResetEvent;
|
||||
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 CharacterAnimationResetEvent}.
|
||||
*
|
||||
* @author Major
|
||||
*/
|
||||
public class CharacterAnimationResetEventEncoder extends EventEncoder<CharacterAnimationResetEvent> {
|
||||
|
||||
@Override
|
||||
public GamePacket encode(CharacterAnimationResetEvent event) {
|
||||
return new GamePacketBuilder(1).toGamePacket();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package org.apollo.net.release.r317;
|
||||
|
||||
import org.apollo.game.event.impl.DisplayTabInterfaceEvent;
|
||||
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 DisplayTabInterfaceEvent}.
|
||||
*
|
||||
* @author Chris Fletcher
|
||||
*/
|
||||
final class DisplayTabInterfaceEventEncoder extends EventEncoder<DisplayTabInterfaceEvent> {
|
||||
|
||||
@Override
|
||||
public GamePacket encode(DisplayTabInterfaceEvent event) {
|
||||
GamePacketBuilder builder = new GamePacketBuilder(106);
|
||||
builder.put(DataType.BYTE, DataTransformation.NEGATE, event.getTab());
|
||||
return builder.toGamePacket();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package org.apollo.net.release.r317;
|
||||
|
||||
import org.apollo.game.event.impl.FocusUpdateEvent;
|
||||
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 FocusUpdateEvent}.
|
||||
*
|
||||
* @author Major
|
||||
*/
|
||||
public class FocusUpdateEventDecoder extends EventDecoder<FocusUpdateEvent> {
|
||||
|
||||
@Override
|
||||
public FocusUpdateEvent decode(GamePacket packet) {
|
||||
GamePacketReader reader = new GamePacketReader(packet);
|
||||
boolean focused = (byte) reader.getUnsigned(DataType.BYTE) == 1;
|
||||
return new FocusUpdateEvent(focused);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package org.apollo.net.release.r317;
|
||||
|
||||
import org.apollo.game.event.impl.MagicOnItemEvent;
|
||||
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 MagicOnItemEvent}.
|
||||
*
|
||||
* @author Chris Fletcher
|
||||
*/
|
||||
final class MagicOnItemEventDecoder extends EventDecoder<MagicOnItemEvent> {
|
||||
|
||||
@Override
|
||||
public MagicOnItemEvent decode(GamePacket packet) {
|
||||
GamePacketReader reader = new GamePacketReader(packet);
|
||||
|
||||
int slot = (int) reader.getUnsigned(DataType.SHORT);
|
||||
int id = (int) reader.getUnsigned(DataType.SHORT, DataTransformation.ADD);
|
||||
int interfaceId = (int) reader.getUnsigned(DataType.SHORT);
|
||||
int spell = (int) reader.getUnsigned(DataType.SHORT, DataTransformation.ADD);
|
||||
|
||||
return new MagicOnItemEvent(interfaceId, id, slot, spell);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package org.apollo.net.release.r317;
|
||||
|
||||
import org.apollo.game.event.impl.MouseClickEvent;
|
||||
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 MouseClickEvent}.
|
||||
*
|
||||
* @author Major
|
||||
*/
|
||||
public class MouseClickEventDecoder extends EventDecoder<MouseClickEvent> {
|
||||
|
||||
@Override
|
||||
public MouseClickEvent decode(GamePacket packet) {
|
||||
GamePacketReader reader = new GamePacketReader(packet);
|
||||
reader.getUnsigned(DataType.INT);
|
||||
return new MouseClickEvent();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2,6 +2,7 @@ package org.apollo.net.release.r317;
|
||||
|
||||
import org.apollo.game.event.impl.CloseInterfaceEvent;
|
||||
import org.apollo.game.event.impl.ConfigEvent;
|
||||
import org.apollo.game.event.impl.DisplayTabInterfaceEvent;
|
||||
import org.apollo.game.event.impl.EnterAmountEvent;
|
||||
import org.apollo.game.event.impl.IdAssignmentEvent;
|
||||
import org.apollo.game.event.impl.LogoutEvent;
|
||||
@@ -23,6 +24,9 @@ import org.apollo.game.event.impl.UpdateSkillEvent;
|
||||
import org.apollo.game.event.impl.UpdateSlottedItemsEvent;
|
||||
import org.apollo.net.meta.PacketMetaDataGroup;
|
||||
import org.apollo.net.release.Release;
|
||||
import org.apollo.net.release.r377.FirstNpcActionEventDecoder;
|
||||
import org.apollo.net.release.r377.SecondNpcActionEventDecoder;
|
||||
import org.apollo.net.release.r377.ThirdNpcActionEventDecoder;
|
||||
|
||||
/**
|
||||
* An implementation of {@link Release} for the 317 protocol.
|
||||
@@ -106,6 +110,17 @@ public final class Release317 extends Release {
|
||||
register(130, new ClosedInterfaceEventDecoder());
|
||||
register(208, new EnteredAmountEventDecoder());
|
||||
register(53, new ItemOnItemEventDecoder());
|
||||
register(237, new MagicOnItemEventDecoder());
|
||||
|
||||
register(3, new FocusUpdateEventDecoder());
|
||||
register(241, new MouseClickEventDecoder());
|
||||
register(86, new ArrowKeyEventDecoder());
|
||||
SpamPacketEventDecoder spamEventDecoder = new SpamPacketEventDecoder();
|
||||
register(77, spamEventDecoder);
|
||||
|
||||
register(72, new FirstNpcActionEventDecoder());
|
||||
register(155, new SecondNpcActionEventDecoder());
|
||||
register(17, new ThirdNpcActionEventDecoder());
|
||||
|
||||
// register encoders
|
||||
register(IdAssignmentEvent.class, new IdAssignmentEventEncoder());
|
||||
@@ -129,6 +144,7 @@ public final class Release317 extends Release {
|
||||
register(SetWidgetPlayerModelEvent.class, new SetWidgetPlayerModelEventEncoder());
|
||||
register(SetWidgetModelAnimationEvent.class, new SetWidgetModelAnimationEventEncoder());
|
||||
register(ConfigEvent.class, new ConfigEventEncoder());
|
||||
register(DisplayTabInterfaceEvent.class, new DisplayTabInterfaceEventEncoder());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package org.apollo.net.release.r317;
|
||||
|
||||
import org.apollo.game.event.impl.SpamPacketEvent;
|
||||
import org.apollo.net.codec.game.GamePacket;
|
||||
import org.apollo.net.release.EventDecoder;
|
||||
|
||||
/**
|
||||
* An {@link EventDecoder} for the {@link SpamPacketEvent}.
|
||||
*
|
||||
* @author Major
|
||||
*/
|
||||
public class SpamPacketEventDecoder extends EventDecoder<SpamPacketEvent> {
|
||||
|
||||
@Override
|
||||
public SpamPacketEvent decode(GamePacket packet) {
|
||||
return new SpamPacketEvent(packet.getPayload().array());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package org.apollo.net.release.r377;
|
||||
|
||||
import org.apollo.game.event.impl.ArrowKeyEvent;
|
||||
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 ArrowKeyEvent}.
|
||||
*
|
||||
* @author Major
|
||||
*/
|
||||
public class ArrowKeyEventDecoder extends EventDecoder<ArrowKeyEvent> {
|
||||
|
||||
@Override
|
||||
public ArrowKeyEvent decode(GamePacket packet) {
|
||||
GamePacketReader reader = new GamePacketReader(packet);
|
||||
int roll = (int) reader.getUnsigned(DataType.SHORT, DataOrder.LITTLE);
|
||||
int yaw = (int) reader.getUnsigned(DataType.SHORT, DataOrder.LITTLE);
|
||||
return new ArrowKeyEvent(roll, yaw);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package org.apollo.net.release.r377;
|
||||
|
||||
import org.apollo.game.event.impl.CharacterAnimationResetEvent;
|
||||
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 CharacterAnimationResetEvent}.
|
||||
*
|
||||
* @author Major
|
||||
*/
|
||||
public class CharacterAnimationResetEventEncoder extends EventEncoder<CharacterAnimationResetEvent> {
|
||||
|
||||
@Override
|
||||
public GamePacket encode(CharacterAnimationResetEvent event) {
|
||||
return new GamePacketBuilder(13).toGamePacket();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package org.apollo.net.release.r377;
|
||||
|
||||
import org.apollo.game.event.impl.DisplayTabInterfaceEvent;
|
||||
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 DisplayTabInterfaceEvent}.
|
||||
*
|
||||
* @author Chris Fletcher
|
||||
*/
|
||||
final class DisplayTabInterfaceEventEncoder extends EventEncoder<DisplayTabInterfaceEvent> {
|
||||
|
||||
@Override
|
||||
public GamePacket encode(DisplayTabInterfaceEvent event) {
|
||||
GamePacketBuilder builder = new GamePacketBuilder(252);
|
||||
builder.put(DataType.BYTE, DataTransformation.NEGATE, event.getTab());
|
||||
return builder.toGamePacket();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package org.apollo.net.release.r377;
|
||||
|
||||
import org.apollo.game.event.impl.FirstNpcActionEvent;
|
||||
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;
|
||||
|
||||
/**
|
||||
* The {@link EventDecoder} for the {@link FirstNpcActionEvent}.
|
||||
*
|
||||
* @author Major
|
||||
*/
|
||||
public class FirstNpcActionEventDecoder extends EventDecoder<FirstNpcActionEvent> {
|
||||
|
||||
@Override
|
||||
public FirstNpcActionEvent decode(GamePacket packet) {
|
||||
GamePacketReader reader = new GamePacketReader(packet);
|
||||
int index = (int) reader.getUnsigned(DataType.SHORT, DataTransformation.ADD);
|
||||
return new FirstNpcActionEvent(index);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package org.apollo.net.release.r377;
|
||||
|
||||
import org.apollo.game.event.impl.FocusUpdateEvent;
|
||||
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 FocusUpdateEvent}.
|
||||
*
|
||||
* @author Major
|
||||
*/
|
||||
public class FocusUpdateEventDecoder extends EventDecoder<FocusUpdateEvent> {
|
||||
|
||||
@Override
|
||||
public FocusUpdateEvent decode(GamePacket packet) {
|
||||
GamePacketReader decoder = new GamePacketReader(packet);
|
||||
return new FocusUpdateEvent(decoder.getUnsigned(DataType.BYTE) == 1);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package org.apollo.net.release.r377;
|
||||
|
||||
import org.apollo.game.event.impl.MagicOnItemEvent;
|
||||
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 MagicOnItemEvent}.
|
||||
*
|
||||
* @author Chris Fletcher
|
||||
*/
|
||||
final class MagicOnItemEventDecoder extends EventDecoder<MagicOnItemEvent> {
|
||||
|
||||
@Override
|
||||
public MagicOnItemEvent decode(GamePacket packet) {
|
||||
GamePacketReader reader = new GamePacketReader(packet);
|
||||
|
||||
int spell = (int) reader.getUnsigned(DataType.SHORT);
|
||||
int interfaceId = (int) reader.getUnsigned(DataType.SHORT, DataTransformation.ADD);
|
||||
int slot = (int) reader.getUnsigned(DataType.SHORT, DataTransformation.ADD);
|
||||
int id = (int) reader.getUnsigned(DataType.SHORT, DataTransformation.ADD);
|
||||
|
||||
return new MagicOnItemEvent(interfaceId, id, slot, spell);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package org.apollo.net.release.r377;
|
||||
|
||||
import org.apollo.game.event.impl.MouseClickEvent;
|
||||
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 MouseClickEvent}.
|
||||
*
|
||||
* @author Major
|
||||
*/
|
||||
public class MouseClickEventDecoder extends EventDecoder<MouseClickEvent> {
|
||||
|
||||
@Override
|
||||
public MouseClickEvent decode(GamePacket packet) {
|
||||
GamePacketReader reader = new GamePacketReader(packet);
|
||||
reader.getUnsigned(DataType.INT);
|
||||
return new MouseClickEvent();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2,6 +2,7 @@ package org.apollo.net.release.r377;
|
||||
|
||||
import org.apollo.game.event.impl.CloseInterfaceEvent;
|
||||
import org.apollo.game.event.impl.ConfigEvent;
|
||||
import org.apollo.game.event.impl.DisplayTabInterfaceEvent;
|
||||
import org.apollo.game.event.impl.EnterAmountEvent;
|
||||
import org.apollo.game.event.impl.IdAssignmentEvent;
|
||||
import org.apollo.game.event.impl.LogoutEvent;
|
||||
@@ -106,6 +107,19 @@ public final class Release377 extends Release {
|
||||
register(110, new ClosedInterfaceEventDecoder());
|
||||
register(75, new EnteredAmountEventDecoder());
|
||||
register(1, new ItemOnItemEventDecoder());
|
||||
register(36, new MagicOnItemEventDecoder());
|
||||
|
||||
register(187, new FocusUpdateEventDecoder());
|
||||
register(19, new MouseClickEventDecoder());
|
||||
register(140, new ArrowKeyEventDecoder());
|
||||
|
||||
SpamPacketEventDecoder spamEventDecoder = new SpamPacketEventDecoder();
|
||||
register(40, spamEventDecoder);
|
||||
register(244, spamEventDecoder);
|
||||
|
||||
register(67, new FirstNpcActionEventDecoder());
|
||||
register(112, new SecondNpcActionEventDecoder());
|
||||
register(13, new ThirdNpcActionEventDecoder());
|
||||
|
||||
// register encoders
|
||||
register(IdAssignmentEvent.class, new IdAssignmentEventEncoder());
|
||||
@@ -129,6 +143,7 @@ public final class Release377 extends Release {
|
||||
register(SetWidgetPlayerModelEvent.class, new SetWidgetPlayerModelEventEncoder());
|
||||
register(SetWidgetModelAnimationEvent.class, new SetWidgetModelAnimationEventEncoder());
|
||||
register(ConfigEvent.class, new ConfigEventEncoder());
|
||||
register(DisplayTabInterfaceEvent.class, new DisplayTabInterfaceEventEncoder());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package org.apollo.net.release.r377;
|
||||
|
||||
import org.apollo.game.event.impl.SecondNpcActionEvent;
|
||||
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;
|
||||
|
||||
/**
|
||||
* The {@link EventDecoder} for the {@link SecondNpcActionEvent}.
|
||||
*
|
||||
* @author Major
|
||||
*/
|
||||
public class SecondNpcActionEventDecoder extends EventDecoder<SecondNpcActionEvent> {
|
||||
|
||||
@Override
|
||||
public SecondNpcActionEvent decode(GamePacket packet) {
|
||||
GamePacketReader reader = new GamePacketReader(packet);
|
||||
int index = (int) reader.getUnsigned(DataType.SHORT, DataOrder.LITTLE);
|
||||
return new SecondNpcActionEvent(index);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package org.apollo.net.release.r377;
|
||||
|
||||
import org.apollo.game.event.impl.SpamPacketEvent;
|
||||
import org.apollo.net.codec.game.GamePacket;
|
||||
import org.apollo.net.release.EventDecoder;
|
||||
|
||||
/**
|
||||
* An {@link EventDecoder} for the {@link SpamPacketEvent}.
|
||||
*
|
||||
* @author Major
|
||||
*/
|
||||
public class SpamPacketEventDecoder extends EventDecoder<SpamPacketEvent> {
|
||||
|
||||
@Override
|
||||
public SpamPacketEvent decode(GamePacket packet) {
|
||||
return new SpamPacketEvent(packet.getPayload().array());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package org.apollo.net.release.r377;
|
||||
|
||||
import org.apollo.game.event.impl.ThirdNpcActionEvent;
|
||||
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;
|
||||
|
||||
/**
|
||||
* The {@link EventDecoder} for the {@link ThirdNpcActionEvent}.
|
||||
*
|
||||
* @author Major
|
||||
*/
|
||||
public class ThirdNpcActionEventDecoder extends EventDecoder<ThirdNpcActionEvent> {
|
||||
|
||||
@Override
|
||||
public ThirdNpcActionEvent decode(GamePacket packet) {
|
||||
GamePacketReader reader = new GamePacketReader(packet);
|
||||
int index = (int) reader.getUnsigned(DataType.SHORT, DataOrder.LITTLE, DataTransformation.ADD);
|
||||
return new ThirdNpcActionEvent(index);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -167,10 +167,10 @@ public final class PluginManager {
|
||||
String[] scripts = plugin.getScripts();
|
||||
|
||||
for (String script : scripts) {
|
||||
File f = new File("./data/plugins/" + plugin.getId() + "/" + script); // TODO get from metadata obj?
|
||||
File f = new File("./data/plugins/" + plugin.getId() + "/" + script);
|
||||
InputStream is = new FileInputStream(f);
|
||||
env.parse(is, f.getAbsolutePath());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user