mirror of
https://github.com/2006-Scape/apollo.git
synced 2026-07-03 00:38:21 +00:00
Make MembershipStatus an enumeration.
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package org.apollo.game.message.impl;
|
||||
|
||||
import org.apollo.game.message.Message;
|
||||
import org.apollo.game.model.entity.setting.MembershipStatus;
|
||||
|
||||
/**
|
||||
* A {@link Message} sent to the client that specifies the local id and membership status of the current player.
|
||||
@@ -15,17 +16,17 @@ public final class IdAssignmentMessage extends Message {
|
||||
private final int id;
|
||||
|
||||
/**
|
||||
* The membership flag.
|
||||
* The MembershipStatus.
|
||||
*/
|
||||
private final boolean members;
|
||||
private final MembershipStatus members;
|
||||
|
||||
/**
|
||||
* Creates the local id message.
|
||||
*
|
||||
* @param id The id.
|
||||
* @param members The membership flag.
|
||||
* @param members The MembershipStatus.
|
||||
*/
|
||||
public IdAssignmentMessage(int id, boolean members) {
|
||||
public IdAssignmentMessage(int id, MembershipStatus members) {
|
||||
this.id = id;
|
||||
this.members = members;
|
||||
}
|
||||
@@ -40,12 +41,12 @@ public final class IdAssignmentMessage extends Message {
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the membership flag.
|
||||
* Gets whether or not the Player is a {@link MembershipStatus#PAID paying member}.
|
||||
*
|
||||
* @return The membership flag.
|
||||
* @return {@code true} if the Player is a paying member, {@code false} if not.
|
||||
*/
|
||||
public boolean isMembers() {
|
||||
return members;
|
||||
return members == MembershipStatus.PAID;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -19,6 +19,7 @@ import org.apollo.game.model.Appearance;
|
||||
import org.apollo.game.model.Position;
|
||||
import org.apollo.game.model.World;
|
||||
import org.apollo.game.model.area.Sector;
|
||||
import org.apollo.game.model.entity.setting.MembershipStatus;
|
||||
import org.apollo.game.model.entity.setting.PrivacyState;
|
||||
import org.apollo.game.model.entity.setting.PrivilegeLevel;
|
||||
import org.apollo.game.model.entity.setting.ScreenBrightness;
|
||||
@@ -131,9 +132,9 @@ public final class Player extends Mob {
|
||||
private transient Position lastKnownSector;
|
||||
|
||||
/**
|
||||
* The membership flag.
|
||||
* The MembershipStatus of this Player.
|
||||
*/
|
||||
private transient boolean members = false;
|
||||
private transient MembershipStatus members = MembershipStatus.FREE;
|
||||
|
||||
/**
|
||||
* A flag indicating if the player is new.
|
||||
@@ -558,6 +559,15 @@ public final class Player extends Mob {
|
||||
* @return {@code true} if so, {@code false} if not.
|
||||
*/
|
||||
public boolean isMembers() {
|
||||
return members == MembershipStatus.PAID;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the {@link MembershipStatus} of this Player.
|
||||
*
|
||||
* @return The MembershipStatus.
|
||||
*/
|
||||
public MembershipStatus getMembershipStatus() {
|
||||
return members;
|
||||
}
|
||||
|
||||
@@ -830,7 +840,7 @@ public final class Player extends Mob {
|
||||
*
|
||||
* @param members The new membership flag.
|
||||
*/
|
||||
public void setMembers(boolean members) {
|
||||
public void setMembers(MembershipStatus members) {
|
||||
this.members = members;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
package org.apollo.game.model.entity.setting;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* The membership status of a Player.
|
||||
*
|
||||
* @author Major
|
||||
*/
|
||||
public enum MembershipStatus {
|
||||
|
||||
/**
|
||||
* The free membership status.
|
||||
*/
|
||||
FREE(0),
|
||||
|
||||
/**
|
||||
* The paid membership status.
|
||||
*/
|
||||
PAID(1);
|
||||
|
||||
/**
|
||||
* Gets the MembershipStatus with the specified value.
|
||||
*
|
||||
* @param value The integer value of the MembershipStatus.
|
||||
* @return The MembershipStatus.
|
||||
* @throws IllegalArgumentException If no MembershipStatus with the specified the value exists.
|
||||
*/
|
||||
public static MembershipStatus valueOf(int value) {
|
||||
Optional<MembershipStatus> optional = Arrays.stream(values()).filter(status -> status.value == value).findAny();
|
||||
return optional.orElseThrow(() -> new IllegalArgumentException("Illegal membership status value."));
|
||||
}
|
||||
|
||||
/**
|
||||
* The integer value of this MembershipStatus.
|
||||
*/
|
||||
private final int value;
|
||||
|
||||
/**
|
||||
* Creates the MembershipStatus.
|
||||
*
|
||||
* @param value The integer value.
|
||||
*/
|
||||
private MembershipStatus(int value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the value of this MembershipStatus.
|
||||
*
|
||||
* @return The value.
|
||||
*/
|
||||
public int getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -21,6 +21,7 @@ import org.apollo.game.model.entity.attr.BooleanAttribute;
|
||||
import org.apollo.game.model.entity.attr.NumericalAttribute;
|
||||
import org.apollo.game.model.entity.attr.StringAttribute;
|
||||
import org.apollo.game.model.entity.setting.Gender;
|
||||
import org.apollo.game.model.entity.setting.MembershipStatus;
|
||||
import org.apollo.game.model.entity.setting.PrivacyState;
|
||||
import org.apollo.game.model.entity.setting.PrivilegeLevel;
|
||||
import org.apollo.game.model.entity.setting.ScreenBrightness;
|
||||
@@ -69,7 +70,7 @@ public final class BinaryPlayerLoader implements PlayerLoader {
|
||||
credentials.setPassword(pass);
|
||||
|
||||
PrivilegeLevel privilegeLevel = PrivilegeLevel.valueOf(in.readByte());
|
||||
boolean members = in.readBoolean();
|
||||
MembershipStatus members = MembershipStatus.valueOf(in.readByte());
|
||||
|
||||
// read settings
|
||||
PrivacyState chatPrivacy = PrivacyState.valueOf(in.readByte(), true);
|
||||
@@ -166,21 +167,21 @@ public final class BinaryPlayerLoader implements PlayerLoader {
|
||||
String name = StreamUtil.readString(in);
|
||||
AttributeType type = AttributeType.valueOf(in.read());
|
||||
switch (type) {
|
||||
case BOOLEAN:
|
||||
attribute = new BooleanAttribute(in.read() == 1);
|
||||
break;
|
||||
case DOUBLE:
|
||||
attribute = new NumericalAttribute(in.readDouble());
|
||||
break;
|
||||
case LONG:
|
||||
attribute = new NumericalAttribute(in.readLong());
|
||||
break;
|
||||
case STRING:
|
||||
case SYMBOL:
|
||||
attribute = new StringAttribute(StreamUtil.readString(in), type == AttributeType.SYMBOL);
|
||||
break;
|
||||
default:
|
||||
throw new IllegalArgumentException("Undefined attribute type: " + type + ".");
|
||||
case BOOLEAN:
|
||||
attribute = new BooleanAttribute(in.read() == 1);
|
||||
break;
|
||||
case DOUBLE:
|
||||
attribute = new NumericalAttribute(in.readDouble());
|
||||
break;
|
||||
case LONG:
|
||||
attribute = new NumericalAttribute(in.readLong());
|
||||
break;
|
||||
case STRING:
|
||||
case SYMBOL:
|
||||
attribute = new StringAttribute(StreamUtil.readString(in), type == AttributeType.SYMBOL);
|
||||
break;
|
||||
default:
|
||||
throw new IllegalArgumentException("Undefined attribute type: " + type + ".");
|
||||
}
|
||||
attributes.put(name, attribute);
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ public final class BinaryPlayerSaver implements PlayerSaver {
|
||||
StreamUtil.writeString(out, player.getUsername());
|
||||
StreamUtil.writeString(out, player.getCredentials().getPassword());
|
||||
out.writeByte(player.getPrivilegeLevel().toInteger());
|
||||
out.writeBoolean(player.isMembers());
|
||||
out.writeByte(player.getMembershipStatus().getValue());
|
||||
|
||||
// write settings
|
||||
out.writeByte(player.getChatPrivacy().toInteger(true));
|
||||
@@ -118,21 +118,21 @@ public final class BinaryPlayerSaver implements PlayerSaver {
|
||||
|
||||
out.writeByte(type.getValue());
|
||||
switch (type) {
|
||||
case BOOLEAN:
|
||||
out.writeByte((Boolean) attribute.getValue() ? 1 : 0);
|
||||
break;
|
||||
case DOUBLE:
|
||||
out.writeDouble((Double) attribute.getValue());
|
||||
break;
|
||||
case LONG:
|
||||
out.writeLong((Long) attribute.getValue());
|
||||
break;
|
||||
case STRING:
|
||||
case SYMBOL:
|
||||
StreamUtil.writeString(out, (String) attribute.getValue());
|
||||
break;
|
||||
default:
|
||||
throw new IllegalArgumentException("Undefined attribute type " + type + ".");
|
||||
case BOOLEAN:
|
||||
out.writeByte((Boolean) attribute.getValue() ? 1 : 0);
|
||||
break;
|
||||
case DOUBLE:
|
||||
out.writeDouble((Double) attribute.getValue());
|
||||
break;
|
||||
case LONG:
|
||||
out.writeLong((Long) attribute.getValue());
|
||||
break;
|
||||
case STRING:
|
||||
case SYMBOL:
|
||||
StreamUtil.writeString(out, (String) attribute.getValue());
|
||||
break;
|
||||
default:
|
||||
throw new IllegalArgumentException("Undefined attribute type " + type + ".");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ package org.apollo.io.player.impl;
|
||||
|
||||
import org.apollo.game.model.Position;
|
||||
import org.apollo.game.model.entity.Player;
|
||||
import org.apollo.game.model.entity.setting.MembershipStatus;
|
||||
import org.apollo.game.model.entity.setting.PrivilegeLevel;
|
||||
import org.apollo.io.player.PlayerLoader;
|
||||
import org.apollo.io.player.PlayerLoaderResponse;
|
||||
@@ -26,7 +27,7 @@ public final class DummyPlayerLoader implements PlayerLoader {
|
||||
|
||||
Player player = new Player(credentials, DEFAULT_POSITION);
|
||||
player.setPrivilegeLevel(PrivilegeLevel.ADMINISTRATOR);
|
||||
player.setMembers(true);
|
||||
player.setMembers(MembershipStatus.PAID);
|
||||
|
||||
return new PlayerLoaderResponse(status, player);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user