mirror of
https://github.com/2006-Scape/apollo.git
synced 2026-07-04 00:38:11 +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;
|
||||
|
||||
import org.apollo.game.event.impl.AddTileItemEvent;
|
||||
import org.apollo.game.event.impl.CloseInterfaceEvent;
|
||||
import org.apollo.game.event.impl.ConfigEvent;
|
||||
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.PrivacyOptionEvent;
|
||||
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.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.SetWidgetModelAnimationEvent;
|
||||
import org.apollo.game.event.impl.SetWidgetNpcModelEvent;
|
||||
@@ -115,6 +117,8 @@ public final class Release317 extends Release {
|
||||
register(185, new ButtonEventDecoder());
|
||||
register(130, new ClosedInterfaceEventDecoder());
|
||||
register(208, new EnteredAmountEventDecoder());
|
||||
register(40, new DialogueContinueEventDecoder());
|
||||
|
||||
register(53, new ItemOnItemEventDecoder());
|
||||
register(237, new MagicOnItemEventDecoder());
|
||||
|
||||
@@ -134,7 +138,6 @@ public final class Release317 extends Release {
|
||||
register(155, new SecondNpcActionEventDecoder());
|
||||
register(17, new ThirdNpcActionEventDecoder());
|
||||
register(236, new TakeTileItemEventDecoder());
|
||||
register(40, new DialogueContinueEventDecoder());
|
||||
|
||||
register(188, new AddFriendEventDecoder());
|
||||
register(133, new AddIgnoreEventDecoder());
|
||||
@@ -165,12 +168,15 @@ public final class Release317 extends Release {
|
||||
register(SetWidgetModelAnimationEvent.class, new SetWidgetModelAnimationEventEncoder());
|
||||
register(ConfigEvent.class, new ConfigEventEncoder());
|
||||
register(DisplayTabInterfaceEvent.class, new DisplayTabInterfaceEventEncoder());
|
||||
register(SetTileItemEvent.class, new SetTileItemEventEncoder());
|
||||
register(PositionEvent.class, new PositionEventEncoder());
|
||||
register(UpdateRunEnergyEvent.class, new UpdateRunEnergyEventEncoder());
|
||||
register(PrivacyOptionEvent.class, new PrivacyOptionEventEncoder());
|
||||
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(FriendServerStatusEvent.class, new FriendServerStatusEventEncoder());
|
||||
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 Major
|
||||
*/
|
||||
final class PositionEventEncoder extends EventEncoder<PositionEvent> {
|
||||
public final class PositionEventEncoder extends EventEncoder<PositionEvent> {
|
||||
|
||||
@Override
|
||||
public GamePacket encode(PositionEvent event) {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
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.ConfigEvent;
|
||||
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.PrivacyOptionEvent;
|
||||
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.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.SetWidgetModelAnimationEvent;
|
||||
import org.apollo.game.event.impl.SetWidgetNpcModelEvent;
|
||||
@@ -115,6 +117,8 @@ public final class Release377 extends Release {
|
||||
register(79, new ButtonEventDecoder());
|
||||
register(110, new ClosedInterfaceEventDecoder());
|
||||
register(75, new EnteredAmountEventDecoder());
|
||||
register(226, new DialogueContinueEventDecoder());
|
||||
|
||||
register(1, new ItemOnItemEventDecoder());
|
||||
register(36, new MagicOnItemEventDecoder());
|
||||
|
||||
@@ -131,7 +135,6 @@ public final class Release377 extends Release {
|
||||
register(112, new SecondNpcActionEventDecoder());
|
||||
register(13, new ThirdNpcActionEventDecoder());
|
||||
register(71, new TakeTileItemEventDecoder());
|
||||
register(226, new DialogueContinueEventDecoder());
|
||||
|
||||
register(120, new AddFriendEventDecoder());
|
||||
register(217, new AddIgnoreEventDecoder());
|
||||
@@ -162,12 +165,15 @@ public final class Release377 extends Release {
|
||||
register(SetWidgetModelAnimationEvent.class, new SetWidgetModelAnimationEventEncoder());
|
||||
register(ConfigEvent.class, new ConfigEventEncoder());
|
||||
register(DisplayTabInterfaceEvent.class, new DisplayTabInterfaceEventEncoder());
|
||||
register(SetTileItemEvent.class, new SetTileItemEventEncoder());
|
||||
register(PositionEvent.class, new PositionEventEncoder());
|
||||
register(UpdateRunEnergyEvent.class, new UpdateRunEnergyEventEncoder());
|
||||
register(PrivacyOptionEvent.class, new PrivacyOptionEventEncoder());
|
||||
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(FriendServerStatusEvent.class, new FriendServerStatusEventEncoder());
|
||||
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