mirror of
https://github.com/2006-Scape/apollo.git
synced 2026-07-03 08:39:11 +00:00
Support the item on object event.
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
package org.apollo.game.event.impl;
|
||||
|
||||
import org.apollo.game.event.Event;
|
||||
|
||||
/**
|
||||
* An {@link Event} sent by the client when an item is used on an object.
|
||||
*
|
||||
* @author Major
|
||||
*/
|
||||
public final class ItemOnObjectEvent extends InventoryItemEvent {
|
||||
|
||||
/**
|
||||
* The object id the item was used on.
|
||||
*/
|
||||
private final int objectId;
|
||||
|
||||
/**
|
||||
* The x coordinate of the object.
|
||||
*/
|
||||
private final int x;
|
||||
|
||||
/**
|
||||
* The y coordinate of the object.
|
||||
*/
|
||||
private final int y;
|
||||
|
||||
/**
|
||||
* Creates an item on object event.
|
||||
*
|
||||
* @param interfaceId The interface id.
|
||||
* @param id The item id.
|
||||
* @param slot The slot the item is in.
|
||||
* @param objectId The object id.
|
||||
* @param x The x coordinate.
|
||||
* @param y The y coordinate.
|
||||
*/
|
||||
public ItemOnObjectEvent(int interfaceId, int id, int slot, int objectId, int x, int y) {
|
||||
super(0, interfaceId, id, slot);
|
||||
this.objectId = objectId;
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the object id.
|
||||
*
|
||||
* @return The object id.
|
||||
*/
|
||||
public int getObjectId() {
|
||||
return objectId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the x coordinate of the object.
|
||||
*
|
||||
* @return The x coordinate.
|
||||
*/
|
||||
public int getX() {
|
||||
return x;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the y coordinate of the object.
|
||||
*
|
||||
* @return The y coordinate.
|
||||
*/
|
||||
public int getY() {
|
||||
return y;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package org.apollo.net.release.r317;
|
||||
|
||||
import org.apollo.game.event.impl.ItemOnObjectEvent;
|
||||
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 ItemOnObjectEvent}.
|
||||
*
|
||||
* @author Major
|
||||
*/
|
||||
public final class ItemOnObjectEventDecoder extends EventDecoder<ItemOnObjectEvent> {
|
||||
|
||||
@Override
|
||||
public ItemOnObjectEvent decode(GamePacket packet) {
|
||||
GamePacketReader reader = new GamePacketReader(packet);
|
||||
|
||||
int interfaceId = (int) reader.getUnsigned(DataType.SHORT);
|
||||
int objectId = (int) reader.getUnsigned(DataType.SHORT, DataOrder.LITTLE);
|
||||
int y = (int) reader.getUnsigned(DataType.SHORT, DataOrder.LITTLE, DataTransformation.ADD);
|
||||
int slot = (int) reader.getUnsigned(DataType.SHORT, DataOrder.LITTLE);
|
||||
int x = (int) reader.getUnsigned(DataType.SHORT, DataOrder.LITTLE, DataTransformation.ADD);
|
||||
int itemId = (int) reader.getUnsigned(DataType.SHORT);
|
||||
|
||||
return new ItemOnObjectEvent(interfaceId, itemId, slot, objectId, x, y);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -39,6 +39,7 @@ import org.apollo.game.event.impl.UpdateSlottedItemsEvent;
|
||||
import org.apollo.game.event.impl.UpdateWeightEvent;
|
||||
import org.apollo.net.meta.PacketMetaDataGroup;
|
||||
import org.apollo.net.release.Release;
|
||||
import org.apollo.net.release.r377.ItemOnObjectEventDecoder;
|
||||
|
||||
/**
|
||||
* A {@link Release} implementation for the 317 protocol.
|
||||
@@ -142,6 +143,7 @@ public final class Release317 extends Release {
|
||||
register(155, new SecondNpcActionEventDecoder());
|
||||
register(17, new ThirdNpcActionEventDecoder());
|
||||
register(236, new TakeTileItemEventDecoder());
|
||||
register(192, new ItemOnObjectEventDecoder());
|
||||
|
||||
register(188, new AddFriendEventDecoder());
|
||||
register(133, new AddIgnoreEventDecoder());
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
package org.apollo.net.release.r377;
|
||||
|
||||
import org.apollo.game.event.impl.ItemOnObjectEvent;
|
||||
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 ItemOnObjectEvent}.
|
||||
*
|
||||
* @author Major
|
||||
*/
|
||||
public final class ItemOnObjectEventDecoder extends EventDecoder<ItemOnObjectEvent> {
|
||||
|
||||
@Override
|
||||
public ItemOnObjectEvent decode(GamePacket packet) {
|
||||
GamePacketReader reader = new GamePacketReader(packet);
|
||||
|
||||
int objectId = (int) reader.getUnsigned(DataType.SHORT, DataOrder.LITTLE);
|
||||
int interfaceId = (int) reader.getUnsigned(DataType.SHORT, DataOrder.LITTLE);
|
||||
int itemId = (int) reader.getUnsigned(DataType.SHORT, DataOrder.LITTLE);
|
||||
int y = (int) reader.getUnsigned(DataType.SHORT, DataOrder.LITTLE);
|
||||
int slot = (int) reader.getUnsigned(DataType.SHORT);
|
||||
int x = (int) reader.getUnsigned(DataType.SHORT, DataOrder.LITTLE, DataTransformation.ADD);
|
||||
|
||||
return new ItemOnObjectEvent(interfaceId, itemId, slot, objectId, x, y);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -139,6 +139,7 @@ public final class Release377 extends Release {
|
||||
register(112, new SecondNpcActionEventDecoder());
|
||||
register(13, new ThirdNpcActionEventDecoder());
|
||||
register(71, new TakeTileItemEventDecoder());
|
||||
register(152, new ItemOnObjectEventDecoder());
|
||||
|
||||
register(120, new AddFriendEventDecoder());
|
||||
register(217, new AddIgnoreEventDecoder());
|
||||
|
||||
Reference in New Issue
Block a user