mirror of
https://github.com/2006-Scape/apollo.git
synced 2026-07-03 00:38:21 +00:00
Add config events.
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
package org.apollo.game.event.impl;
|
||||
|
||||
import org.apollo.game.event.Event;
|
||||
|
||||
/**
|
||||
* An event sent to the client to adjust a certain config or attribute setting.
|
||||
*
|
||||
* @author Chris Fletcher
|
||||
*/
|
||||
public final class ConfigEvent extends Event {
|
||||
|
||||
/**
|
||||
* The identifier.
|
||||
*/
|
||||
private final int id;
|
||||
|
||||
/**
|
||||
* The value.
|
||||
*/
|
||||
private final int value;
|
||||
|
||||
/**
|
||||
* Creates a new config event.
|
||||
*
|
||||
* @param id The config's identifier.
|
||||
* @param value The value.
|
||||
*/
|
||||
public ConfigEvent(int id, int value) {
|
||||
this.id = id;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the config's identifier.
|
||||
*
|
||||
* @return The config id.
|
||||
*/
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the config's value.
|
||||
*
|
||||
* @return The config value.
|
||||
*/
|
||||
public int getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package org.apollo.net.release.r317;
|
||||
|
||||
import org.apollo.game.event.impl.ConfigEvent;
|
||||
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.GamePacketBuilder;
|
||||
import org.apollo.net.release.EventEncoder;
|
||||
|
||||
/**
|
||||
* An {@link EventEncoder} for the {@link ConfigEvent}.
|
||||
*
|
||||
* @author Chris Fletcher
|
||||
* @author Major
|
||||
*/
|
||||
final class ConfigEventEncoder extends EventEncoder<ConfigEvent> {
|
||||
|
||||
@Override
|
||||
public GamePacket encode(ConfigEvent event) {
|
||||
GamePacketBuilder builder;
|
||||
int value = event.getValue();
|
||||
|
||||
if (value > Byte.MIN_VALUE && value < Byte.MAX_VALUE) {
|
||||
builder = new GamePacketBuilder(36);
|
||||
|
||||
builder.put(DataType.SHORT, DataOrder.LITTLE, event.getId());
|
||||
builder.put(DataType.BYTE, value & 0xFF);
|
||||
} else {
|
||||
builder = new GamePacketBuilder(87);
|
||||
|
||||
builder.put(DataType.SHORT, DataOrder.LITTLE, event.getId());
|
||||
builder.put(DataType.INT, DataOrder.MIDDLE, value);
|
||||
}
|
||||
|
||||
return builder.toGamePacket();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,6 +1,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.EnterAmountEvent;
|
||||
import org.apollo.game.event.impl.IdAssignmentEvent;
|
||||
import org.apollo.game.event.impl.LogoutEvent;
|
||||
@@ -122,6 +123,7 @@ public final class Release317 extends Release {
|
||||
register(SetWidgetNpcModelEvent.class, new SetWidgetNpcModelEventEncoder());
|
||||
register(SetWidgetPlayerModelEvent.class, new SetWidgetPlayerModelEventEncoder());
|
||||
register(SetWidgetModelAnimationEvent.class, new SetWidgetModelAnimationEventEncoder());
|
||||
register(ConfigEvent.class, new ConfigEventEncoder());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package org.apollo.net.release.r377;
|
||||
|
||||
import org.apollo.game.event.impl.ConfigEvent;
|
||||
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 ConfigEvent}.
|
||||
*
|
||||
* @author Chris Fletcher
|
||||
* @author Major
|
||||
*/
|
||||
final class ConfigEventEncoder extends EventEncoder<ConfigEvent> {
|
||||
|
||||
@Override
|
||||
public GamePacket encode(ConfigEvent event) {
|
||||
GamePacketBuilder builder;
|
||||
int value = event.getValue();
|
||||
|
||||
if (value > Byte.MIN_VALUE && value < Byte.MAX_VALUE) {
|
||||
builder = new GamePacketBuilder(182);
|
||||
|
||||
builder.put(DataType.SHORT, DataTransformation.ADD, event.getId());
|
||||
builder.put(DataType.BYTE, DataTransformation.SUBTRACT, value & 0xFF);
|
||||
} else {
|
||||
builder = new GamePacketBuilder(115);
|
||||
|
||||
builder.put(DataType.INT, DataOrder.INVERSED_MIDDLE, value);
|
||||
builder.put(DataType.SHORT, DataOrder.LITTLE, event.getId());
|
||||
}
|
||||
|
||||
return builder.toGamePacket();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,6 +1,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.EnterAmountEvent;
|
||||
import org.apollo.game.event.impl.IdAssignmentEvent;
|
||||
import org.apollo.game.event.impl.LogoutEvent;
|
||||
@@ -122,6 +123,7 @@ public final class Release377 extends Release {
|
||||
register(SetWidgetNpcModelEvent.class, new SetWidgetNpcModelEventEncoder());
|
||||
register(SetWidgetPlayerModelEvent.class, new SetWidgetPlayerModelEventEncoder());
|
||||
register(SetWidgetModelAnimationEvent.class, new SetWidgetModelAnimationEventEncoder());
|
||||
register(ConfigEvent.class, new ConfigEventEncoder());
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user