mirror of
https://github.com/2006-Scape/apollo.git
synced 2026-07-06 16:51:37 +00:00
Merge pull request #332 from Major-/report
Add support for decoding Report Abuse messages
This commit is contained in:
@@ -0,0 +1,67 @@
|
|||||||
|
package org.apollo.game.message.impl;
|
||||||
|
|
||||||
|
import org.apollo.net.message.Message;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A {@link Message} sent by the client when a player reports another player.
|
||||||
|
*
|
||||||
|
* @author Lmctruck30
|
||||||
|
*/
|
||||||
|
public final class ReportAbuseMessage extends Message {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The username of the player who was reported.
|
||||||
|
*/
|
||||||
|
private final String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The id of the rule that was broken.
|
||||||
|
*/
|
||||||
|
private final int rule; // TODO enum for this?
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether or not a mute was requested.
|
||||||
|
*/
|
||||||
|
private final boolean mute;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates the ReportAbuseMessage.
|
||||||
|
*
|
||||||
|
* @param name The username of the reported player.
|
||||||
|
* @param rule The id of the rule that was broken.
|
||||||
|
* @param mute The mute flag.
|
||||||
|
*/
|
||||||
|
public ReportAbuseMessage(String name, int rule, boolean mute) {
|
||||||
|
this.name = name;
|
||||||
|
this.rule = rule;
|
||||||
|
this.mute = mute;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the username of the reported player.
|
||||||
|
*
|
||||||
|
* @return The reported.
|
||||||
|
*/
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the id of rule that was broken.
|
||||||
|
*
|
||||||
|
* @return The rule.
|
||||||
|
*/
|
||||||
|
public int getRule() {
|
||||||
|
return rule;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets whether or not a mute was requested.
|
||||||
|
*
|
||||||
|
* @return {@code true} iff a mute was requested.
|
||||||
|
*/
|
||||||
|
public boolean getMute() {
|
||||||
|
return mute;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -177,6 +177,8 @@ public final class Release317 extends Release {
|
|||||||
register(74, new RemoveIgnoreMessageDecoder());
|
register(74, new RemoveIgnoreMessageDecoder());
|
||||||
register(126, new PrivateChatMessageDecoder());
|
register(126, new PrivateChatMessageDecoder());
|
||||||
|
|
||||||
|
register(218, new ReportAbuseMessageDecoder());
|
||||||
|
|
||||||
// register encoders
|
// register encoders
|
||||||
register(IdAssignmentMessage.class, new IdAssignmentMessageEncoder());
|
register(IdAssignmentMessage.class, new IdAssignmentMessageEncoder());
|
||||||
register(RegionChangeMessage.class, new RegionChangeMessageEncoder());
|
register(RegionChangeMessage.class, new RegionChangeMessageEncoder());
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package org.apollo.game.release.r317;
|
||||||
|
|
||||||
|
import org.apollo.game.message.impl.ReportAbuseMessage;
|
||||||
|
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.MessageDecoder;
|
||||||
|
import org.apollo.util.NameUtil;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A {@link MessageDecoder} for the {@link ReportAbuseMessage}.
|
||||||
|
*
|
||||||
|
* @author Lmctruck30
|
||||||
|
*/
|
||||||
|
public final class ReportAbuseMessageDecoder extends MessageDecoder<ReportAbuseMessage> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ReportAbuseMessage decode(GamePacket packet) {
|
||||||
|
GamePacketReader reader = new GamePacketReader(packet);
|
||||||
|
|
||||||
|
String name = NameUtil.decodeBase37(reader.getSigned(DataType.LONG));
|
||||||
|
int rule = (int) reader.getUnsigned(DataType.BYTE);
|
||||||
|
boolean mute = reader.getUnsigned(DataType.BYTE) == 1;
|
||||||
|
|
||||||
|
return new ReportAbuseMessage(name, rule, mute);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -171,6 +171,8 @@ public final class Release377 extends Release {
|
|||||||
register(160, new RemoveIgnoreMessageDecoder());
|
register(160, new RemoveIgnoreMessageDecoder());
|
||||||
register(227, new PrivateChatMessageDecoder());
|
register(227, new PrivateChatMessageDecoder());
|
||||||
|
|
||||||
|
register(184, new ReportAbuseMessageDecoder());
|
||||||
|
|
||||||
register(IdAssignmentMessage.class, new IdAssignmentMessageEncoder());
|
register(IdAssignmentMessage.class, new IdAssignmentMessageEncoder());
|
||||||
register(RegionChangeMessage.class, new RegionChangeMessageEncoder());
|
register(RegionChangeMessage.class, new RegionChangeMessageEncoder());
|
||||||
register(ServerChatMessage.class, new ServerMessageMessageEncoder());
|
register(ServerChatMessage.class, new ServerMessageMessageEncoder());
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package org.apollo.game.release.r377;
|
||||||
|
|
||||||
|
import org.apollo.game.message.impl.ReportAbuseMessage;
|
||||||
|
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.MessageDecoder;
|
||||||
|
import org.apollo.util.NameUtil;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A {@link MessageDecoder} for the {@link ReportAbuseMessage}.
|
||||||
|
*
|
||||||
|
* @author Major
|
||||||
|
*/
|
||||||
|
public final class ReportAbuseMessageDecoder extends MessageDecoder<ReportAbuseMessage> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ReportAbuseMessage decode(GamePacket packet) {
|
||||||
|
GamePacketReader reader = new GamePacketReader(packet);
|
||||||
|
|
||||||
|
String name = NameUtil.decodeBase37(reader.getSigned(DataType.LONG));
|
||||||
|
int rule = (int) reader.getUnsigned(DataType.BYTE);
|
||||||
|
boolean mute = reader.getUnsigned(DataType.BYTE) == 1;
|
||||||
|
|
||||||
|
return new ReportAbuseMessage(name, rule, mute);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user