diff --git a/src/org/apollo/game/event/impl/DisplayCrossbonesEvent.java b/src/org/apollo/game/event/impl/DisplayCrossbonesEvent.java new file mode 100644 index 00000000..a9344fe9 --- /dev/null +++ b/src/org/apollo/game/event/impl/DisplayCrossbonesEvent.java @@ -0,0 +1,35 @@ +package org.apollo.game.event.impl; + +import org.apollo.game.event.Event; + +/** + * An {@link Event} sent to the client to display crossbones when the player enters a multi-combat zone. + * + * @author Major + */ +public final class DisplayCrossbonesEvent extends Event { + + /** + * Whether or not the crossbones should be displayed. + */ + private final boolean display; + + /** + * Creates a display crossbones event. + * + * @param display Whether or not the crossbones should be displayed. + */ + public DisplayCrossbonesEvent(boolean display) { + this.display = display; + } + + /** + * Indicates whether the crossbones will be displayed. + * + * @return {@code true} if the crossbones will be displayed, otherwise {@code false}. + */ + public boolean isDisplayed() { + return display; + } + +} \ No newline at end of file diff --git a/src/org/apollo/net/release/r317/DisplayCrossbonesEventEncoder.java b/src/org/apollo/net/release/r317/DisplayCrossbonesEventEncoder.java new file mode 100644 index 00000000..8797fb0d --- /dev/null +++ b/src/org/apollo/net/release/r317/DisplayCrossbonesEventEncoder.java @@ -0,0 +1,23 @@ +package org.apollo.net.release.r317; + +import org.apollo.game.event.impl.DisplayCrossbonesEvent; +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 DisplayCrossbonesEvent}. + * + * @author Major + */ +public final class DisplayCrossbonesEventEncoder extends EventEncoder { + + @Override + public GamePacket encode(DisplayCrossbonesEvent event) { + GamePacketBuilder builder = new GamePacketBuilder(61); + builder.put(DataType.BYTE, event.isDisplayed() ? 1 : 0); + return builder.toGamePacket(); + } + +} \ No newline at end of file diff --git a/src/org/apollo/net/release/r317/Release317.java b/src/org/apollo/net/release/r317/Release317.java index 6741fd92..adcea45d 100644 --- a/src/org/apollo/net/release/r317/Release317.java +++ b/src/org/apollo/net/release/r317/Release317.java @@ -4,6 +4,7 @@ import org.apollo.game.event.impl.AddGlobalTileItemEvent; 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.DisplayCrossbonesEvent; import org.apollo.game.event.impl.DisplayTabInterfaceEvent; import org.apollo.game.event.impl.EnterAmountEvent; import org.apollo.game.event.impl.ForwardPrivateMessageEvent; @@ -177,6 +178,7 @@ public final class Release317 extends Release { register(OpenDialogueInterfaceEvent.class, new OpenDialogueInterfaceEventEncoder()); register(UpdateWeightEvent.class, new UpdateWeightEventEncoder()); register(SetPlayerActionEvent.class, new SetPlayerActionEventEncoder()); + register(DisplayCrossbonesEvent.class, new DisplayCrossbonesEventEncoder()); register(AddGlobalTileItemEvent.class, new AddGlobalTileItemEventEncoder()); register(AddTileItemEvent.class, new AddTileItemEventEncoder()); diff --git a/src/org/apollo/net/release/r377/DisplayCrossbonesEventEncoder.java b/src/org/apollo/net/release/r377/DisplayCrossbonesEventEncoder.java new file mode 100644 index 00000000..31b29b96 --- /dev/null +++ b/src/org/apollo/net/release/r377/DisplayCrossbonesEventEncoder.java @@ -0,0 +1,23 @@ +package org.apollo.net.release.r377; + +import org.apollo.game.event.impl.DisplayCrossbonesEvent; +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 DisplayCrossbonesEvent}. + * + * @author Major + */ +public final class DisplayCrossbonesEventEncoder extends EventEncoder { + + @Override + public GamePacket encode(DisplayCrossbonesEvent event) { + GamePacketBuilder builder = new GamePacketBuilder(233); + builder.put(DataType.BYTE, event.isDisplayed() ? 1 : 0); + return builder.toGamePacket(); + } + +} \ No newline at end of file diff --git a/src/org/apollo/net/release/r377/Release377.java b/src/org/apollo/net/release/r377/Release377.java index a118baa9..a6043d24 100644 --- a/src/org/apollo/net/release/r377/Release377.java +++ b/src/org/apollo/net/release/r377/Release377.java @@ -4,6 +4,7 @@ import org.apollo.game.event.impl.AddGlobalTileItemEvent; 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.DisplayCrossbonesEvent; import org.apollo.game.event.impl.DisplayTabInterfaceEvent; import org.apollo.game.event.impl.EnterAmountEvent; import org.apollo.game.event.impl.ForwardPrivateMessageEvent; @@ -174,6 +175,7 @@ public final class Release377 extends Release { register(OpenDialogueInterfaceEvent.class, new OpenDialogueInterfaceEventEncoder()); register(UpdateWeightEvent.class, new UpdateWeightEventEncoder()); register(SetPlayerActionEvent.class, new SetPlayerActionEventEncoder()); + register(DisplayCrossbonesEvent.class, new DisplayCrossbonesEventEncoder()); register(AddGlobalTileItemEvent.class, new AddGlobalTileItemEventEncoder()); register(AddTileItemEvent.class, new AddTileItemEventEncoder());