mirror of
https://github.com/2006-Scape/apollo.git
synced 2026-07-07 08:39:17 +00:00
Split SetTileItemEvent into three separate events.
This commit is contained in:
@@ -0,0 +1,70 @@
|
|||||||
|
package org.apollo.game.event.impl;
|
||||||
|
|
||||||
|
import org.apollo.game.event.Event;
|
||||||
|
import org.apollo.game.model.Item;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An {@link Event} sent to the client that adds an item to a tile.
|
||||||
|
*
|
||||||
|
* @author Major
|
||||||
|
*/
|
||||||
|
public final class AddTileItemEvent extends Event {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The item to add to the tile.
|
||||||
|
*/
|
||||||
|
private final Item item;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The position offset
|
||||||
|
*/
|
||||||
|
private final int positionOffset;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates am add tile item event.
|
||||||
|
*
|
||||||
|
* @param item The item to add to the tile.
|
||||||
|
*/
|
||||||
|
public AddTileItemEvent(Item item) {
|
||||||
|
this(item, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates am add tile item event.
|
||||||
|
*
|
||||||
|
* @param item The item to add to the tile.
|
||||||
|
* @param positionOffset The offset from the 'base' position.
|
||||||
|
*/
|
||||||
|
public AddTileItemEvent(Item item, int positionOffset) {
|
||||||
|
this.item = item;
|
||||||
|
this.positionOffset = positionOffset;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the id of the item.
|
||||||
|
*
|
||||||
|
* @return The id.
|
||||||
|
*/
|
||||||
|
public int getId() {
|
||||||
|
return item.getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the amount of the item.
|
||||||
|
*
|
||||||
|
* @return The amount.
|
||||||
|
*/
|
||||||
|
public int getAmount() {
|
||||||
|
return item.getAmount();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the offset from the 'base' position.
|
||||||
|
*
|
||||||
|
* @return The offset.
|
||||||
|
*/
|
||||||
|
public int getPositionOffset() {
|
||||||
|
return positionOffset;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
package org.apollo.game.event.impl;
|
||||||
|
|
||||||
|
import org.apollo.game.event.Event;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An {@link Event} sent to the client to instruct it to remove an item from a tile.
|
||||||
|
*
|
||||||
|
* @author Major
|
||||||
|
*/
|
||||||
|
public final class RemoveTileItemEvent extends Event {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The item.
|
||||||
|
*/
|
||||||
|
private final int id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The offset from the client's base position.
|
||||||
|
*/
|
||||||
|
private final int positionOffset;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a remove tile item event.
|
||||||
|
*
|
||||||
|
* @param id The id of the item to remove.
|
||||||
|
*/
|
||||||
|
public RemoveTileItemEvent(int id) {
|
||||||
|
this(id, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a remove tile item event.
|
||||||
|
*
|
||||||
|
* @param id The id of the item to remove.
|
||||||
|
* @param positionOffset The offset from the 'base' position.
|
||||||
|
*/
|
||||||
|
public RemoveTileItemEvent(int id, int positionOffset) {
|
||||||
|
this.id = id;
|
||||||
|
this.positionOffset = positionOffset;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the id of the item to remove.
|
||||||
|
*
|
||||||
|
* @return The id.
|
||||||
|
*/
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the offset from the 'base' position.
|
||||||
|
*
|
||||||
|
* @return The offset.
|
||||||
|
*/
|
||||||
|
public int getPositionOffset() {
|
||||||
|
return positionOffset;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,145 +0,0 @@
|
|||||||
package org.apollo.game.event.impl;
|
|
||||||
|
|
||||||
import org.apollo.game.event.Event;
|
|
||||||
import org.apollo.game.model.Item;
|
|
||||||
import org.apollo.game.model.def.ItemDefinition;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* An {@link Event} sent to tell the client to display an item on a tile.
|
|
||||||
*
|
|
||||||
* @author Major
|
|
||||||
*/
|
|
||||||
public final class SetTileItemEvent extends Event {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The {@link Item}.
|
|
||||||
*/
|
|
||||||
private final Item item;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The offset from the client's base position.
|
|
||||||
*/
|
|
||||||
private final int positionOffset;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The previous amount of the item (if it is being updated).
|
|
||||||
*/
|
|
||||||
private final int previousAmount;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Indicates whether the item is stackable.
|
|
||||||
*/
|
|
||||||
private final boolean stackable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Indicates whether an existing item is being updated.
|
|
||||||
*/
|
|
||||||
private final boolean updating;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates a new event that will remove the item with the specified id from the tile.
|
|
||||||
*
|
|
||||||
* @param id The id of the item.
|
|
||||||
*/
|
|
||||||
public SetTileItemEvent(int id) {
|
|
||||||
this(id, 0, ItemDefinition.lookup(id).isStackable(), false, 0, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates a new event that will add an item with the specified id and amount to the tile.
|
|
||||||
*
|
|
||||||
* @param id The id of the item.
|
|
||||||
* @param amount The amount of the item.
|
|
||||||
*/
|
|
||||||
public SetTileItemEvent(int id, int amount) {
|
|
||||||
this(id, amount, ItemDefinition.lookup(id).isStackable(), false, 0, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates a new event that updates the previous amount of the item.
|
|
||||||
*
|
|
||||||
* @param id The id of the item.
|
|
||||||
* @param amount The amount of the item.
|
|
||||||
* @param previousAmount The previous amount of the item.
|
|
||||||
*/
|
|
||||||
public SetTileItemEvent(int id, int amount, int previousAmount) {
|
|
||||||
this(id, amount, true, true, previousAmount, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates a new set tile item event.
|
|
||||||
*
|
|
||||||
* @param id The id of the item.
|
|
||||||
* @param amount The new amount of the item.
|
|
||||||
* @param stackable Whether the item is stackable or not.
|
|
||||||
* @param positionOffset The offset from the client's base position.
|
|
||||||
* @param updating If the item is being updated or not.
|
|
||||||
* @param previousAmount The previous amount of the item.
|
|
||||||
*/
|
|
||||||
public SetTileItemEvent(int id, int amount, boolean stackable, boolean updating, int previousAmount,
|
|
||||||
int positionOffset) {
|
|
||||||
if (id < 0 || amount < 0 || previousAmount < 0) {
|
|
||||||
throw new IllegalArgumentException("The id, amount, and previous amount must be 0 or greater.");
|
|
||||||
}
|
|
||||||
this.item = new Item(id, amount);
|
|
||||||
this.stackable = stackable;
|
|
||||||
this.updating = updating;
|
|
||||||
this.previousAmount = previousAmount;
|
|
||||||
this.positionOffset = positionOffset;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the amount of the item.
|
|
||||||
*
|
|
||||||
* @return The amount.
|
|
||||||
*/
|
|
||||||
public int getAmount() {
|
|
||||||
return item.getAmount();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the id of the item.
|
|
||||||
*
|
|
||||||
* @return The item.
|
|
||||||
*/
|
|
||||||
public int getId() {
|
|
||||||
return item.getId();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the offset from the client's base position.
|
|
||||||
*
|
|
||||||
* @return The offset.
|
|
||||||
*/
|
|
||||||
public int getPositionOffset() {
|
|
||||||
return positionOffset;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the previous amount of the item.
|
|
||||||
*
|
|
||||||
* @return The previous amount.
|
|
||||||
*/
|
|
||||||
public int getPreviousAmount() {
|
|
||||||
return previousAmount;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Indicates whether this item is stackable or not.
|
|
||||||
*
|
|
||||||
* @return {@code true} if the item is stackable, otherwise {@code false}.
|
|
||||||
*/
|
|
||||||
public boolean isStackable() {
|
|
||||||
return stackable;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Indicates whether this item is being updated or not.
|
|
||||||
*
|
|
||||||
* @return {@code true} if the item is being updated, otherwise {@code false}.
|
|
||||||
*/
|
|
||||||
public boolean isUpdating() {
|
|
||||||
return updating;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,91 @@
|
|||||||
|
package org.apollo.game.event.impl;
|
||||||
|
|
||||||
|
import org.apollo.game.event.Event;
|
||||||
|
import org.apollo.game.model.Item;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An {@link Event} sent to tell the client to update the amount of an item display on a tile.
|
||||||
|
*
|
||||||
|
* @author Major
|
||||||
|
*/
|
||||||
|
public final class UpdateTileItemEvent extends Event {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The {@link Item}.
|
||||||
|
*/
|
||||||
|
private final Item item;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The offset from the client's base position.
|
||||||
|
*/
|
||||||
|
private final int positionOffset;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The previous amount of the item (if it is being updated).
|
||||||
|
*/
|
||||||
|
private final int previousAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new event that updates the previous amount of the item.
|
||||||
|
*
|
||||||
|
* @param id The id of the item.
|
||||||
|
* @param amount The amount of the item.
|
||||||
|
* @param previousAmount The previous amount of the item.
|
||||||
|
*/
|
||||||
|
public UpdateTileItemEvent(Item item, int previousAmount) {
|
||||||
|
this(item, previousAmount, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new set tile item event.
|
||||||
|
*
|
||||||
|
* @param id The id of the item.
|
||||||
|
* @param amount The new amount of the item.
|
||||||
|
* @param stackable Whether the item is stackable or not.
|
||||||
|
* @param positionOffset The offset from the client's base position.
|
||||||
|
* @param updating If the item is being updated or not.
|
||||||
|
* @param previousAmount The previous amount of the item.
|
||||||
|
*/
|
||||||
|
public UpdateTileItemEvent(Item item, int previousAmount, int positionOffset) {
|
||||||
|
this.item = item;
|
||||||
|
this.previousAmount = previousAmount;
|
||||||
|
this.positionOffset = positionOffset;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the amount of the item.
|
||||||
|
*
|
||||||
|
* @return The amount.
|
||||||
|
*/
|
||||||
|
public int getAmount() {
|
||||||
|
return item.getAmount();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the id of the item.
|
||||||
|
*
|
||||||
|
* @return The item.
|
||||||
|
*/
|
||||||
|
public int getId() {
|
||||||
|
return item.getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the offset from the client's base position.
|
||||||
|
*
|
||||||
|
* @return The offset.
|
||||||
|
*/
|
||||||
|
public int getPositionOffset() {
|
||||||
|
return positionOffset;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the previous amount of the item.
|
||||||
|
*
|
||||||
|
* @return The previous amount.
|
||||||
|
*/
|
||||||
|
public int getPreviousAmount() {
|
||||||
|
return previousAmount;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package org.apollo.net.release.r317;
|
||||||
|
|
||||||
|
import org.apollo.game.event.impl.AddTileItemEvent;
|
||||||
|
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.GamePacketBuilder;
|
||||||
|
import org.apollo.net.release.EventEncoder;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An {@link EventEncoder} for the {@link AddTileItemEvent}.
|
||||||
|
*
|
||||||
|
* @author Major
|
||||||
|
*/
|
||||||
|
public final class AddTileItemEventEncoder extends EventEncoder<AddTileItemEvent> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public GamePacket encode(AddTileItemEvent event) {
|
||||||
|
GamePacketBuilder builder = new GamePacketBuilder(44);
|
||||||
|
builder.put(DataType.SHORT, DataOrder.LITTLE, DataTransformation.ADD, event.getId());
|
||||||
|
builder.put(DataType.SHORT, event.getAmount());
|
||||||
|
builder.put(DataType.BYTE, event.getPositionOffset());
|
||||||
|
return builder.toGamePacket();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package org.apollo.net.release.r317;
|
package org.apollo.net.release.r317;
|
||||||
|
|
||||||
|
import org.apollo.game.event.impl.AddTileItemEvent;
|
||||||
import org.apollo.game.event.impl.CloseInterfaceEvent;
|
import org.apollo.game.event.impl.CloseInterfaceEvent;
|
||||||
import org.apollo.game.event.impl.ConfigEvent;
|
import org.apollo.game.event.impl.ConfigEvent;
|
||||||
import org.apollo.game.event.impl.DisplayTabInterfaceEvent;
|
import org.apollo.game.event.impl.DisplayTabInterfaceEvent;
|
||||||
@@ -17,9 +18,10 @@ import org.apollo.game.event.impl.PlayerSynchronizationEvent;
|
|||||||
import org.apollo.game.event.impl.PositionEvent;
|
import org.apollo.game.event.impl.PositionEvent;
|
||||||
import org.apollo.game.event.impl.PrivacyOptionEvent;
|
import org.apollo.game.event.impl.PrivacyOptionEvent;
|
||||||
import org.apollo.game.event.impl.RegionChangeEvent;
|
import org.apollo.game.event.impl.RegionChangeEvent;
|
||||||
|
import org.apollo.game.event.impl.RemoveTileItemEvent;
|
||||||
import org.apollo.game.event.impl.SendFriendEvent;
|
import org.apollo.game.event.impl.SendFriendEvent;
|
||||||
import org.apollo.game.event.impl.ServerMessageEvent;
|
import org.apollo.game.event.impl.ServerMessageEvent;
|
||||||
import org.apollo.game.event.impl.SetTileItemEvent;
|
import org.apollo.game.event.impl.UpdateTileItemEvent;
|
||||||
import org.apollo.game.event.impl.SetWidgetItemModelEvent;
|
import org.apollo.game.event.impl.SetWidgetItemModelEvent;
|
||||||
import org.apollo.game.event.impl.SetWidgetModelAnimationEvent;
|
import org.apollo.game.event.impl.SetWidgetModelAnimationEvent;
|
||||||
import org.apollo.game.event.impl.SetWidgetNpcModelEvent;
|
import org.apollo.game.event.impl.SetWidgetNpcModelEvent;
|
||||||
@@ -115,6 +117,8 @@ public final class Release317 extends Release {
|
|||||||
register(185, new ButtonEventDecoder());
|
register(185, new ButtonEventDecoder());
|
||||||
register(130, new ClosedInterfaceEventDecoder());
|
register(130, new ClosedInterfaceEventDecoder());
|
||||||
register(208, new EnteredAmountEventDecoder());
|
register(208, new EnteredAmountEventDecoder());
|
||||||
|
register(40, new DialogueContinueEventDecoder());
|
||||||
|
|
||||||
register(53, new ItemOnItemEventDecoder());
|
register(53, new ItemOnItemEventDecoder());
|
||||||
register(237, new MagicOnItemEventDecoder());
|
register(237, new MagicOnItemEventDecoder());
|
||||||
|
|
||||||
@@ -134,7 +138,6 @@ public final class Release317 extends Release {
|
|||||||
register(155, new SecondNpcActionEventDecoder());
|
register(155, new SecondNpcActionEventDecoder());
|
||||||
register(17, new ThirdNpcActionEventDecoder());
|
register(17, new ThirdNpcActionEventDecoder());
|
||||||
register(236, new TakeTileItemEventDecoder());
|
register(236, new TakeTileItemEventDecoder());
|
||||||
register(40, new DialogueContinueEventDecoder());
|
|
||||||
|
|
||||||
register(188, new AddFriendEventDecoder());
|
register(188, new AddFriendEventDecoder());
|
||||||
register(133, new AddIgnoreEventDecoder());
|
register(133, new AddIgnoreEventDecoder());
|
||||||
@@ -165,12 +168,15 @@ public final class Release317 extends Release {
|
|||||||
register(SetWidgetModelAnimationEvent.class, new SetWidgetModelAnimationEventEncoder());
|
register(SetWidgetModelAnimationEvent.class, new SetWidgetModelAnimationEventEncoder());
|
||||||
register(ConfigEvent.class, new ConfigEventEncoder());
|
register(ConfigEvent.class, new ConfigEventEncoder());
|
||||||
register(DisplayTabInterfaceEvent.class, new DisplayTabInterfaceEventEncoder());
|
register(DisplayTabInterfaceEvent.class, new DisplayTabInterfaceEventEncoder());
|
||||||
register(SetTileItemEvent.class, new SetTileItemEventEncoder());
|
|
||||||
register(PositionEvent.class, new PositionEventEncoder());
|
register(PositionEvent.class, new PositionEventEncoder());
|
||||||
register(UpdateRunEnergyEvent.class, new UpdateRunEnergyEventEncoder());
|
register(UpdateRunEnergyEvent.class, new UpdateRunEnergyEventEncoder());
|
||||||
register(PrivacyOptionEvent.class, new PrivacyOptionEventEncoder());
|
register(PrivacyOptionEvent.class, new PrivacyOptionEventEncoder());
|
||||||
register(OpenDialogueInterfaceEvent.class, new OpenDialogueInterfaceEventEncoder());
|
register(OpenDialogueInterfaceEvent.class, new OpenDialogueInterfaceEventEncoder());
|
||||||
|
|
||||||
|
register(AddTileItemEvent.class, new AddTileItemEventEncoder());
|
||||||
|
register(UpdateTileItemEvent.class, new UpdateTileItemEventEncoder());
|
||||||
|
register(RemoveTileItemEvent.class, new RemoveTileItemEventEncoder());
|
||||||
|
|
||||||
register(ForwardPrivateMessageEvent.class, new ForwardPrivateMessageEventEncoder());
|
register(ForwardPrivateMessageEvent.class, new ForwardPrivateMessageEventEncoder());
|
||||||
register(FriendServerStatusEvent.class, new FriendServerStatusEventEncoder());
|
register(FriendServerStatusEvent.class, new FriendServerStatusEventEncoder());
|
||||||
register(IgnoreListEvent.class, new IgnoreListEventEncoder());
|
register(IgnoreListEvent.class, new IgnoreListEventEncoder());
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
package org.apollo.net.release.r317;
|
||||||
|
|
||||||
|
import org.apollo.game.event.impl.RemoveTileItemEvent;
|
||||||
|
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 RemoveTileItemEvent}.
|
||||||
|
*
|
||||||
|
* @author Major
|
||||||
|
*/
|
||||||
|
public final class RemoveTileItemEventEncoder extends EventEncoder<RemoveTileItemEvent> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public GamePacket encode(RemoveTileItemEvent event) {
|
||||||
|
GamePacketBuilder builder = new GamePacketBuilder(156);
|
||||||
|
builder.put(DataType.BYTE, DataTransformation.ADD, event.getPositionOffset());
|
||||||
|
builder.put(DataType.SHORT, event.getId());
|
||||||
|
return builder.toGamePacket();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
package org.apollo.net.release.r317;
|
|
||||||
|
|
||||||
import org.apollo.game.event.impl.SetTileItemEvent;
|
|
||||||
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.GamePacketBuilder;
|
|
||||||
import org.apollo.net.release.EventEncoder;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* An {@link EventEncoder} for the {@link SetTileItemEvent}.
|
|
||||||
*
|
|
||||||
* @author Major
|
|
||||||
*/
|
|
||||||
public class SetTileItemEventEncoder extends EventEncoder<SetTileItemEvent> {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public GamePacket encode(SetTileItemEvent event) {
|
|
||||||
GamePacketBuilder builder = null;
|
|
||||||
if (event.getAmount() == 0) { // remove the item.
|
|
||||||
builder = new GamePacketBuilder(156);
|
|
||||||
|
|
||||||
builder.put(DataType.BYTE, DataTransformation.ADD, event.getPositionOffset());
|
|
||||||
builder.put(DataType.SHORT, event.getId());
|
|
||||||
} else if (!event.isUpdating()) { // sending a new item
|
|
||||||
builder = new GamePacketBuilder(44);
|
|
||||||
|
|
||||||
builder.put(DataType.SHORT, DataOrder.LITTLE, DataTransformation.ADD, event.getId());
|
|
||||||
builder.put(DataType.SHORT, event.getAmount());
|
|
||||||
builder.put(DataType.BYTE, event.getPositionOffset());
|
|
||||||
} else { // updating an already displayed item
|
|
||||||
builder = new GamePacketBuilder(84);
|
|
||||||
|
|
||||||
builder.put(DataType.BYTE, event.getPositionOffset());
|
|
||||||
builder.put(DataType.SHORT, event.getId());
|
|
||||||
builder.put(DataType.SHORT, event.getPreviousAmount());
|
|
||||||
builder.put(DataType.SHORT, event.getAmount());
|
|
||||||
}
|
|
||||||
return builder.toGamePacket();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
package org.apollo.net.release.r317;
|
||||||
|
|
||||||
|
import org.apollo.game.event.impl.UpdateTileItemEvent;
|
||||||
|
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 UpdateTileItemEvent}.
|
||||||
|
*
|
||||||
|
* @author Major
|
||||||
|
*/
|
||||||
|
public final class UpdateTileItemEventEncoder extends EventEncoder<UpdateTileItemEvent> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public GamePacket encode(UpdateTileItemEvent event) {
|
||||||
|
GamePacketBuilder builder = new GamePacketBuilder(84);
|
||||||
|
builder.put(DataType.BYTE, event.getPositionOffset());
|
||||||
|
builder.put(DataType.SHORT, event.getId());
|
||||||
|
builder.put(DataType.SHORT, event.getPreviousAmount());
|
||||||
|
builder.put(DataType.SHORT, event.getAmount());
|
||||||
|
return builder.toGamePacket();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
package org.apollo.net.release.r377;
|
||||||
|
|
||||||
|
import org.apollo.game.event.impl.AddTileItemEvent;
|
||||||
|
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 AddTileItemEvent}.
|
||||||
|
*
|
||||||
|
* @author Major
|
||||||
|
*/
|
||||||
|
public final class AddTileItemEventEncoder extends EventEncoder<AddTileItemEvent> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public GamePacket encode(AddTileItemEvent event) {
|
||||||
|
GamePacketBuilder builder = new GamePacketBuilder(107);
|
||||||
|
builder.put(DataType.SHORT, event.getId());
|
||||||
|
builder.put(DataType.BYTE, DataTransformation.NEGATE, event.getPositionOffset());
|
||||||
|
builder.put(DataType.SHORT, DataTransformation.ADD, event.getAmount());
|
||||||
|
return builder.toGamePacket();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -14,7 +14,7 @@ import org.apollo.net.release.EventEncoder;
|
|||||||
* @author Chris Fletcher
|
* @author Chris Fletcher
|
||||||
* @author Major
|
* @author Major
|
||||||
*/
|
*/
|
||||||
final class PositionEventEncoder extends EventEncoder<PositionEvent> {
|
public final class PositionEventEncoder extends EventEncoder<PositionEvent> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GamePacket encode(PositionEvent event) {
|
public GamePacket encode(PositionEvent event) {
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package org.apollo.net.release.r377;
|
package org.apollo.net.release.r377;
|
||||||
|
|
||||||
|
import org.apollo.game.event.impl.AddTileItemEvent;
|
||||||
import org.apollo.game.event.impl.CloseInterfaceEvent;
|
import org.apollo.game.event.impl.CloseInterfaceEvent;
|
||||||
import org.apollo.game.event.impl.ConfigEvent;
|
import org.apollo.game.event.impl.ConfigEvent;
|
||||||
import org.apollo.game.event.impl.DisplayTabInterfaceEvent;
|
import org.apollo.game.event.impl.DisplayTabInterfaceEvent;
|
||||||
@@ -17,9 +18,10 @@ import org.apollo.game.event.impl.PlayerSynchronizationEvent;
|
|||||||
import org.apollo.game.event.impl.PositionEvent;
|
import org.apollo.game.event.impl.PositionEvent;
|
||||||
import org.apollo.game.event.impl.PrivacyOptionEvent;
|
import org.apollo.game.event.impl.PrivacyOptionEvent;
|
||||||
import org.apollo.game.event.impl.RegionChangeEvent;
|
import org.apollo.game.event.impl.RegionChangeEvent;
|
||||||
|
import org.apollo.game.event.impl.RemoveTileItemEvent;
|
||||||
import org.apollo.game.event.impl.SendFriendEvent;
|
import org.apollo.game.event.impl.SendFriendEvent;
|
||||||
import org.apollo.game.event.impl.ServerMessageEvent;
|
import org.apollo.game.event.impl.ServerMessageEvent;
|
||||||
import org.apollo.game.event.impl.SetTileItemEvent;
|
import org.apollo.game.event.impl.UpdateTileItemEvent;
|
||||||
import org.apollo.game.event.impl.SetWidgetItemModelEvent;
|
import org.apollo.game.event.impl.SetWidgetItemModelEvent;
|
||||||
import org.apollo.game.event.impl.SetWidgetModelAnimationEvent;
|
import org.apollo.game.event.impl.SetWidgetModelAnimationEvent;
|
||||||
import org.apollo.game.event.impl.SetWidgetNpcModelEvent;
|
import org.apollo.game.event.impl.SetWidgetNpcModelEvent;
|
||||||
@@ -115,6 +117,8 @@ public final class Release377 extends Release {
|
|||||||
register(79, new ButtonEventDecoder());
|
register(79, new ButtonEventDecoder());
|
||||||
register(110, new ClosedInterfaceEventDecoder());
|
register(110, new ClosedInterfaceEventDecoder());
|
||||||
register(75, new EnteredAmountEventDecoder());
|
register(75, new EnteredAmountEventDecoder());
|
||||||
|
register(226, new DialogueContinueEventDecoder());
|
||||||
|
|
||||||
register(1, new ItemOnItemEventDecoder());
|
register(1, new ItemOnItemEventDecoder());
|
||||||
register(36, new MagicOnItemEventDecoder());
|
register(36, new MagicOnItemEventDecoder());
|
||||||
|
|
||||||
@@ -131,7 +135,6 @@ public final class Release377 extends Release {
|
|||||||
register(112, new SecondNpcActionEventDecoder());
|
register(112, new SecondNpcActionEventDecoder());
|
||||||
register(13, new ThirdNpcActionEventDecoder());
|
register(13, new ThirdNpcActionEventDecoder());
|
||||||
register(71, new TakeTileItemEventDecoder());
|
register(71, new TakeTileItemEventDecoder());
|
||||||
register(226, new DialogueContinueEventDecoder());
|
|
||||||
|
|
||||||
register(120, new AddFriendEventDecoder());
|
register(120, new AddFriendEventDecoder());
|
||||||
register(217, new AddIgnoreEventDecoder());
|
register(217, new AddIgnoreEventDecoder());
|
||||||
@@ -162,12 +165,15 @@ public final class Release377 extends Release {
|
|||||||
register(SetWidgetModelAnimationEvent.class, new SetWidgetModelAnimationEventEncoder());
|
register(SetWidgetModelAnimationEvent.class, new SetWidgetModelAnimationEventEncoder());
|
||||||
register(ConfigEvent.class, new ConfigEventEncoder());
|
register(ConfigEvent.class, new ConfigEventEncoder());
|
||||||
register(DisplayTabInterfaceEvent.class, new DisplayTabInterfaceEventEncoder());
|
register(DisplayTabInterfaceEvent.class, new DisplayTabInterfaceEventEncoder());
|
||||||
register(SetTileItemEvent.class, new SetTileItemEventEncoder());
|
|
||||||
register(PositionEvent.class, new PositionEventEncoder());
|
register(PositionEvent.class, new PositionEventEncoder());
|
||||||
register(UpdateRunEnergyEvent.class, new UpdateRunEnergyEventEncoder());
|
register(UpdateRunEnergyEvent.class, new UpdateRunEnergyEventEncoder());
|
||||||
register(PrivacyOptionEvent.class, new PrivacyOptionEventEncoder());
|
register(PrivacyOptionEvent.class, new PrivacyOptionEventEncoder());
|
||||||
register(OpenDialogueInterfaceEvent.class, new OpenDialogueInterfaceEventEncoder());
|
register(OpenDialogueInterfaceEvent.class, new OpenDialogueInterfaceEventEncoder());
|
||||||
|
|
||||||
|
register(AddTileItemEvent.class, new AddTileItemEventEncoder());
|
||||||
|
register(UpdateTileItemEvent.class, new UpdateTileItemEventEncoder());
|
||||||
|
register(RemoveTileItemEvent.class, new RemoveTileItemEventEncoder());
|
||||||
|
|
||||||
register(ForwardPrivateMessageEvent.class, new ForwardPrivateMessageEventEncoder());
|
register(ForwardPrivateMessageEvent.class, new ForwardPrivateMessageEventEncoder());
|
||||||
register(FriendServerStatusEvent.class, new FriendServerStatusEventEncoder());
|
register(FriendServerStatusEvent.class, new FriendServerStatusEventEncoder());
|
||||||
register(IgnoreListEvent.class, new IgnoreListEventEncoder());
|
register(IgnoreListEvent.class, new IgnoreListEventEncoder());
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
package org.apollo.net.release.r377;
|
||||||
|
|
||||||
|
import org.apollo.game.event.impl.RemoveTileItemEvent;
|
||||||
|
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 RemoveTileItemEvent}.
|
||||||
|
*
|
||||||
|
* @author Major
|
||||||
|
*/
|
||||||
|
public final class RemoveTileItemEventEncoder extends EventEncoder<RemoveTileItemEvent> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public GamePacket encode(RemoveTileItemEvent event) {
|
||||||
|
GamePacketBuilder builder = new GamePacketBuilder(208);
|
||||||
|
builder.put(DataType.SHORT, DataTransformation.ADD, event.getId());
|
||||||
|
builder.put(DataType.BYTE, DataTransformation.ADD, event.getPositionOffset());
|
||||||
|
return builder.toGamePacket();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
package org.apollo.net.release.r377;
|
|
||||||
|
|
||||||
import org.apollo.game.event.impl.SetTileItemEvent;
|
|
||||||
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 SetTileItemEvent}.
|
|
||||||
*
|
|
||||||
* @author Major
|
|
||||||
*/
|
|
||||||
public class SetTileItemEventEncoder extends EventEncoder<SetTileItemEvent> {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public GamePacket encode(SetTileItemEvent event) {
|
|
||||||
GamePacketBuilder builder = null;
|
|
||||||
if (event.getAmount() == 0) { // remove the item.
|
|
||||||
builder = new GamePacketBuilder(208);
|
|
||||||
|
|
||||||
builder.put(DataType.SHORT, DataTransformation.ADD, event.getId());
|
|
||||||
builder.put(DataType.BYTE, DataTransformation.ADD, event.getPositionOffset());
|
|
||||||
} else if (!event.isUpdating()) { // sending a new item
|
|
||||||
builder = new GamePacketBuilder(107);
|
|
||||||
|
|
||||||
builder.put(DataType.SHORT, event.getId());
|
|
||||||
builder.put(DataType.BYTE, DataTransformation.NEGATE, event.getPositionOffset());
|
|
||||||
builder.put(DataType.SHORT, DataTransformation.ADD, event.getAmount());
|
|
||||||
} else { // updating an already displayed item
|
|
||||||
builder = new GamePacketBuilder(121);
|
|
||||||
|
|
||||||
builder.put(DataType.BYTE, event.getPositionOffset());
|
|
||||||
builder.put(DataType.SHORT, event.getId());
|
|
||||||
builder.put(DataType.SHORT, event.getPreviousAmount());
|
|
||||||
builder.put(DataType.SHORT, event.getAmount());
|
|
||||||
}
|
|
||||||
return builder.toGamePacket();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
package org.apollo.net.release.r377;
|
||||||
|
|
||||||
|
import org.apollo.game.event.impl.UpdateTileItemEvent;
|
||||||
|
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 UpdateTileItemEvent}.
|
||||||
|
*
|
||||||
|
* @author Major
|
||||||
|
*/
|
||||||
|
public final class UpdateTileItemEventEncoder extends EventEncoder<UpdateTileItemEvent> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public GamePacket encode(UpdateTileItemEvent event) {
|
||||||
|
GamePacketBuilder builder = new GamePacketBuilder(121);
|
||||||
|
builder.put(DataType.BYTE, event.getPositionOffset());
|
||||||
|
builder.put(DataType.SHORT, event.getId());
|
||||||
|
builder.put(DataType.SHORT, event.getPreviousAmount());
|
||||||
|
builder.put(DataType.SHORT, event.getAmount());
|
||||||
|
return builder.toGamePacket();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user