mirror of
https://github.com/2006-Scape/apollo.git
synced 2026-07-06 00:38:18 +00:00
Merge branch 'master' of git@bitbucket.org:Major-/apollo.git.
This commit is contained in:
@@ -148,14 +148,21 @@ public final class GameService extends Service {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Registers a player (may block!).
|
* Registers a {@link Player} (may block!).
|
||||||
*
|
*
|
||||||
* @param player The player.
|
* @param player The Player.
|
||||||
|
* @param session The {@link GameSession} of the Player.
|
||||||
|
* @param reconnecting The reconnecting flag.
|
||||||
* @return A {@link RegistrationStatus}.
|
* @return A {@link RegistrationStatus}.
|
||||||
*/
|
*/
|
||||||
public RegistrationStatus registerPlayer(Player player) {
|
public RegistrationStatus registerPlayer(Player player, GameSession session, boolean reconnecting) {
|
||||||
synchronized (this) {
|
synchronized (this) {
|
||||||
return World.getWorld().register(player);
|
RegistrationStatus status = World.getWorld().register(player);
|
||||||
|
if (status == RegistrationStatus.OK) {
|
||||||
|
player.setSession(session, reconnecting);
|
||||||
|
}
|
||||||
|
|
||||||
|
return status;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+12
-12
@@ -3,11 +3,11 @@ package org.apollo.game.message.impl;
|
|||||||
import org.apollo.game.message.Message;
|
import org.apollo.game.message.Message;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A {@link Message} sent to the client to open an interface and temporary sidebar overlay.
|
* A {@link Message} sent to the client to open an interface and temporary overlay.
|
||||||
*
|
*
|
||||||
* @author Graham
|
* @author Graham
|
||||||
*/
|
*/
|
||||||
public final class OpenInterfaceSidebarMessage extends Message {
|
public final class OpenInterfaceOverlayMessage extends Message {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The interface id.
|
* The interface id.
|
||||||
@@ -15,19 +15,19 @@ public final class OpenInterfaceSidebarMessage extends Message {
|
|||||||
private final int interfaceId;
|
private final int interfaceId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The sidebar id.
|
* The overlay id.
|
||||||
*/
|
*/
|
||||||
private final int sidebarId;
|
private final int overlayId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates the open interface sidebar message.
|
* Creates the open interface overlay message.
|
||||||
*
|
*
|
||||||
* @param interfaceId The interface id.
|
* @param interfaceId The interface id.
|
||||||
* @param sidebarId The sidebar id.
|
* @param overlayId The overlay id.
|
||||||
*/
|
*/
|
||||||
public OpenInterfaceSidebarMessage(int interfaceId, int sidebarId) {
|
public OpenInterfaceOverlayMessage(int interfaceId, int overlayId) {
|
||||||
this.interfaceId = interfaceId;
|
this.interfaceId = interfaceId;
|
||||||
this.sidebarId = sidebarId;
|
this.overlayId = overlayId;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -40,12 +40,12 @@ public final class OpenInterfaceSidebarMessage extends Message {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the sidebar id.
|
* Gets the overlay id.
|
||||||
*
|
*
|
||||||
* @return The sidebar id.
|
* @return The overlay id.
|
||||||
*/
|
*/
|
||||||
public int getSidebarId() {
|
public int getOverlayId() {
|
||||||
return sidebarId;
|
return overlayId;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
package org.apollo.game.message.impl;
|
||||||
|
|
||||||
|
import org.apollo.game.message.Message;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A {@link Message} sent to the client to open an overlay interface.
|
||||||
|
*
|
||||||
|
* @author Major
|
||||||
|
*/
|
||||||
|
public final class OpenOverlayMessage extends Message {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The overlay id.
|
||||||
|
*/
|
||||||
|
private final int overlayId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates the open interface overlay message.
|
||||||
|
*
|
||||||
|
* @param overlayId The overlay id.
|
||||||
|
*/
|
||||||
|
public OpenOverlayMessage(int overlayId) {
|
||||||
|
this.overlayId = overlayId;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the overlay id.
|
||||||
|
*
|
||||||
|
* @return The overlay id.
|
||||||
|
*/
|
||||||
|
public int getOverlayId() {
|
||||||
|
return overlayId;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -8,9 +8,11 @@ import org.apollo.game.message.impl.CloseInterfaceMessage;
|
|||||||
import org.apollo.game.message.impl.EnterAmountMessage;
|
import org.apollo.game.message.impl.EnterAmountMessage;
|
||||||
import org.apollo.game.message.impl.OpenDialogueInterfaceMessage;
|
import org.apollo.game.message.impl.OpenDialogueInterfaceMessage;
|
||||||
import org.apollo.game.message.impl.OpenInterfaceMessage;
|
import org.apollo.game.message.impl.OpenInterfaceMessage;
|
||||||
import org.apollo.game.message.impl.OpenInterfaceSidebarMessage;
|
import org.apollo.game.message.impl.OpenInterfaceOverlayMessage;
|
||||||
|
import org.apollo.game.message.impl.OpenOverlayMessage;
|
||||||
import org.apollo.game.model.entity.Player;
|
import org.apollo.game.model.entity.Player;
|
||||||
import org.apollo.game.model.inter.dialogue.DialogueListener;
|
import org.apollo.game.model.inter.dialogue.DialogueListener;
|
||||||
|
import org.apollo.game.model.inv.InventoryListener;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents the set of interfaces the player has open.
|
* Represents the set of interfaces the player has open.
|
||||||
@@ -217,7 +219,33 @@ public final class InterfaceSet {
|
|||||||
interfaces.put(InterfaceType.WINDOW, windowId);
|
interfaces.put(InterfaceType.WINDOW, windowId);
|
||||||
interfaces.put(InterfaceType.SIDEBAR, sidebarId);
|
interfaces.put(InterfaceType.SIDEBAR, sidebarId);
|
||||||
|
|
||||||
player.send(new OpenInterfaceSidebarMessage(windowId, sidebarId));
|
player.send(new OpenInterfaceOverlayMessage(windowId, sidebarId));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Opens an overlay interface.
|
||||||
|
*
|
||||||
|
* @param overlay The overlay id.
|
||||||
|
*/
|
||||||
|
public void openOverlay(int overlay) {
|
||||||
|
closeAndNotify();
|
||||||
|
interfaces.put(InterfaceType.OVERLAY, overlay);
|
||||||
|
|
||||||
|
player.send(new OpenOverlayMessage(overlay));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Opens an overlay interface with the specified {@link InventoryListener}.
|
||||||
|
*
|
||||||
|
* @param listener The listener.
|
||||||
|
* @param overlay The overlay id.
|
||||||
|
*/
|
||||||
|
public void openOverlay(InterfaceListener listener, int overlay) {
|
||||||
|
closeAndNotify();
|
||||||
|
this.listener = Optional.ofNullable(listener);
|
||||||
|
interfaces.put(InterfaceType.OVERLAY, overlay);
|
||||||
|
|
||||||
|
player.send(new OpenOverlayMessage(overlay));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+5
-5
@@ -1,6 +1,6 @@
|
|||||||
package org.apollo.net.release.r317;
|
package org.apollo.net.release.r317;
|
||||||
|
|
||||||
import org.apollo.game.message.impl.OpenInterfaceSidebarMessage;
|
import org.apollo.game.message.impl.OpenInterfaceOverlayMessage;
|
||||||
import org.apollo.net.codec.game.DataTransformation;
|
import org.apollo.net.codec.game.DataTransformation;
|
||||||
import org.apollo.net.codec.game.DataType;
|
import org.apollo.net.codec.game.DataType;
|
||||||
import org.apollo.net.codec.game.GamePacket;
|
import org.apollo.net.codec.game.GamePacket;
|
||||||
@@ -8,17 +8,17 @@ import org.apollo.net.codec.game.GamePacketBuilder;
|
|||||||
import org.apollo.net.release.MessageEncoder;
|
import org.apollo.net.release.MessageEncoder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A {@link MessageEncoder} for the {@link OpenInterfaceSidebarMessage}.
|
* A {@link MessageEncoder} for the {@link OpenInterfaceOverlayMessage}.
|
||||||
*
|
*
|
||||||
* @author Graham
|
* @author Graham
|
||||||
*/
|
*/
|
||||||
public final class OpenInterfaceSidebarMessageEncoder extends MessageEncoder<OpenInterfaceSidebarMessage> {
|
public final class OpenInterfaceOverlayMessageEncoder extends MessageEncoder<OpenInterfaceOverlayMessage> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GamePacket encode(OpenInterfaceSidebarMessage message) {
|
public GamePacket encode(OpenInterfaceOverlayMessage message) {
|
||||||
GamePacketBuilder builder = new GamePacketBuilder(248);
|
GamePacketBuilder builder = new GamePacketBuilder(248);
|
||||||
builder.put(DataType.SHORT, DataTransformation.ADD, message.getInterfaceId());
|
builder.put(DataType.SHORT, DataTransformation.ADD, message.getInterfaceId());
|
||||||
builder.put(DataType.SHORT, message.getSidebarId());
|
builder.put(DataType.SHORT, message.getOverlayId());
|
||||||
return builder.toGamePacket();
|
return builder.toGamePacket();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
package org.apollo.net.release.r317;
|
||||||
|
|
||||||
|
import org.apollo.game.message.impl.OpenOverlayMessage;
|
||||||
|
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.MessageEncoder;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A {@link MessageEncoder} for the {@link OpenOverlayMessage}.
|
||||||
|
*
|
||||||
|
* @author Major
|
||||||
|
*/
|
||||||
|
public final class OpenOverlayMessageEncoder extends MessageEncoder<OpenOverlayMessage> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public GamePacket encode(OpenOverlayMessage message) {
|
||||||
|
GamePacketBuilder builder = new GamePacketBuilder(142);
|
||||||
|
builder.put(DataType.SHORT, DataOrder.LITTLE, message.getOverlayId());
|
||||||
|
return builder.toGamePacket();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -17,7 +17,8 @@ import org.apollo.game.message.impl.LogoutMessage;
|
|||||||
import org.apollo.game.message.impl.NpcSynchronizationMessage;
|
import org.apollo.game.message.impl.NpcSynchronizationMessage;
|
||||||
import org.apollo.game.message.impl.OpenDialogueInterfaceMessage;
|
import org.apollo.game.message.impl.OpenDialogueInterfaceMessage;
|
||||||
import org.apollo.game.message.impl.OpenInterfaceMessage;
|
import org.apollo.game.message.impl.OpenInterfaceMessage;
|
||||||
import org.apollo.game.message.impl.OpenInterfaceSidebarMessage;
|
import org.apollo.game.message.impl.OpenInterfaceOverlayMessage;
|
||||||
|
import org.apollo.game.message.impl.OpenOverlayMessage;
|
||||||
import org.apollo.game.message.impl.PlayerSynchronizationMessage;
|
import org.apollo.game.message.impl.PlayerSynchronizationMessage;
|
||||||
import org.apollo.game.message.impl.PositionMessage;
|
import org.apollo.game.message.impl.PositionMessage;
|
||||||
import org.apollo.game.message.impl.PrivacyOptionMessage;
|
import org.apollo.game.message.impl.PrivacyOptionMessage;
|
||||||
@@ -178,7 +179,7 @@ public final class Release317 extends Release {
|
|||||||
register(UpdateItemsMessage.class, new UpdateItemsMessageEncoder());
|
register(UpdateItemsMessage.class, new UpdateItemsMessageEncoder());
|
||||||
register(UpdateSlottedItemsMessage.class, new UpdateSlottedItemsMessageEncoder());
|
register(UpdateSlottedItemsMessage.class, new UpdateSlottedItemsMessageEncoder());
|
||||||
register(UpdateSkillMessage.class, new UpdateSkillMessageEncoder());
|
register(UpdateSkillMessage.class, new UpdateSkillMessageEncoder());
|
||||||
register(OpenInterfaceSidebarMessage.class, new OpenInterfaceSidebarMessageEncoder());
|
register(OpenInterfaceOverlayMessage.class, new OpenInterfaceOverlayMessageEncoder());
|
||||||
register(EnterAmountMessage.class, new EnterAmountMessageEncoder());
|
register(EnterAmountMessage.class, new EnterAmountMessageEncoder());
|
||||||
register(SetWidgetTextMessage.class, new SetWidgetTextMessageEncoder());
|
register(SetWidgetTextMessage.class, new SetWidgetTextMessageEncoder());
|
||||||
register(NpcSynchronizationMessage.class, new NpcSynchronizationMessageEncoder());
|
register(NpcSynchronizationMessage.class, new NpcSynchronizationMessageEncoder());
|
||||||
@@ -209,5 +210,6 @@ public final class Release317 extends Release {
|
|||||||
register(SendFriendMessage.class, new SendFriendMessageEncoder());
|
register(SendFriendMessage.class, new SendFriendMessageEncoder());
|
||||||
register(HintIconMessage.class, new HintIconMessageEncoder());
|
register(HintIconMessage.class, new HintIconMessageEncoder());
|
||||||
register(FlashTabInterfaceMessage.class, new FlashTabInterfaceMessageEncoder());
|
register(FlashTabInterfaceMessage.class, new FlashTabInterfaceMessageEncoder());
|
||||||
|
register(OpenOverlayMessage.class, new OpenOverlayMessageEncoder());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+5
-5
@@ -1,6 +1,6 @@
|
|||||||
package org.apollo.net.release.r377;
|
package org.apollo.net.release.r377;
|
||||||
|
|
||||||
import org.apollo.game.message.impl.OpenInterfaceSidebarMessage;
|
import org.apollo.game.message.impl.OpenInterfaceOverlayMessage;
|
||||||
import org.apollo.net.codec.game.DataOrder;
|
import org.apollo.net.codec.game.DataOrder;
|
||||||
import org.apollo.net.codec.game.DataTransformation;
|
import org.apollo.net.codec.game.DataTransformation;
|
||||||
import org.apollo.net.codec.game.DataType;
|
import org.apollo.net.codec.game.DataType;
|
||||||
@@ -9,17 +9,17 @@ import org.apollo.net.codec.game.GamePacketBuilder;
|
|||||||
import org.apollo.net.release.MessageEncoder;
|
import org.apollo.net.release.MessageEncoder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A {@link MessageEncoder} for the {@link OpenInterfaceSidebarMessage}.
|
* A {@link MessageEncoder} for the {@link OpenInterfaceOverlayMessage}.
|
||||||
*
|
*
|
||||||
* @author Graham
|
* @author Graham
|
||||||
*/
|
*/
|
||||||
public final class OpenInterfaceSidebarMessageEncoder extends MessageEncoder<OpenInterfaceSidebarMessage> {
|
public final class OpenInterfaceOverlayMessageEncoder extends MessageEncoder<OpenInterfaceOverlayMessage> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GamePacket encode(OpenInterfaceSidebarMessage message) {
|
public GamePacket encode(OpenInterfaceOverlayMessage message) {
|
||||||
GamePacketBuilder builder = new GamePacketBuilder(128);
|
GamePacketBuilder builder = new GamePacketBuilder(128);
|
||||||
builder.put(DataType.SHORT, DataTransformation.ADD, message.getInterfaceId());
|
builder.put(DataType.SHORT, DataTransformation.ADD, message.getInterfaceId());
|
||||||
builder.put(DataType.SHORT, DataOrder.LITTLE, DataTransformation.ADD, message.getSidebarId());
|
builder.put(DataType.SHORT, DataOrder.LITTLE, DataTransformation.ADD, message.getOverlayId());
|
||||||
return builder.toGamePacket();
|
return builder.toGamePacket();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
package org.apollo.net.release.r377;
|
||||||
|
|
||||||
|
import org.apollo.game.message.impl.OpenOverlayMessage;
|
||||||
|
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.MessageEncoder;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A {@link MessageEncoder} for the {@link OpenOverlayMessage}.
|
||||||
|
*
|
||||||
|
* @author Major
|
||||||
|
*/
|
||||||
|
public final class OpenOverlayMessageEncoder extends MessageEncoder<OpenOverlayMessage> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public GamePacket encode(OpenOverlayMessage message) {
|
||||||
|
GamePacketBuilder builder = new GamePacketBuilder(246);
|
||||||
|
builder.put(DataType.SHORT, DataOrder.LITTLE, DataTransformation.ADD, message.getOverlayId());
|
||||||
|
return builder.toGamePacket();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -17,7 +17,8 @@ import org.apollo.game.message.impl.LogoutMessage;
|
|||||||
import org.apollo.game.message.impl.NpcSynchronizationMessage;
|
import org.apollo.game.message.impl.NpcSynchronizationMessage;
|
||||||
import org.apollo.game.message.impl.OpenDialogueInterfaceMessage;
|
import org.apollo.game.message.impl.OpenDialogueInterfaceMessage;
|
||||||
import org.apollo.game.message.impl.OpenInterfaceMessage;
|
import org.apollo.game.message.impl.OpenInterfaceMessage;
|
||||||
import org.apollo.game.message.impl.OpenInterfaceSidebarMessage;
|
import org.apollo.game.message.impl.OpenInterfaceOverlayMessage;
|
||||||
|
import org.apollo.game.message.impl.OpenOverlayMessage;
|
||||||
import org.apollo.game.message.impl.PlayerSynchronizationMessage;
|
import org.apollo.game.message.impl.PlayerSynchronizationMessage;
|
||||||
import org.apollo.game.message.impl.PositionMessage;
|
import org.apollo.game.message.impl.PositionMessage;
|
||||||
import org.apollo.game.message.impl.PrivacyOptionMessage;
|
import org.apollo.game.message.impl.PrivacyOptionMessage;
|
||||||
@@ -42,7 +43,6 @@ import org.apollo.game.message.impl.UpdateTileItemMessage;
|
|||||||
import org.apollo.game.message.impl.UpdateWeightMessage;
|
import org.apollo.game.message.impl.UpdateWeightMessage;
|
||||||
import org.apollo.net.meta.PacketMetaDataGroup;
|
import org.apollo.net.meta.PacketMetaDataGroup;
|
||||||
import org.apollo.net.release.Release;
|
import org.apollo.net.release.Release;
|
||||||
import org.apollo.net.release.r317.FlashTabInterfaceMessageEncoder;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A {@link Release} implementation for the 377 protocol.
|
* A {@link Release} implementation for the 377 protocol.
|
||||||
@@ -175,7 +175,7 @@ public final class Release377 extends Release {
|
|||||||
register(UpdateItemsMessage.class, new UpdateItemsMessageEncoder());
|
register(UpdateItemsMessage.class, new UpdateItemsMessageEncoder());
|
||||||
register(UpdateSlottedItemsMessage.class, new UpdateSlottedItemsMessageEncoder());
|
register(UpdateSlottedItemsMessage.class, new UpdateSlottedItemsMessageEncoder());
|
||||||
register(UpdateSkillMessage.class, new UpdateSkillMessageEncoder());
|
register(UpdateSkillMessage.class, new UpdateSkillMessageEncoder());
|
||||||
register(OpenInterfaceSidebarMessage.class, new OpenInterfaceSidebarMessageEncoder());
|
register(OpenInterfaceOverlayMessage.class, new OpenInterfaceOverlayMessageEncoder());
|
||||||
register(EnterAmountMessage.class, new EnterAmountMessageEncoder());
|
register(EnterAmountMessage.class, new EnterAmountMessageEncoder());
|
||||||
register(SetWidgetTextMessage.class, new SetWidgetTexMessageEncoder());
|
register(SetWidgetTextMessage.class, new SetWidgetTexMessageEncoder());
|
||||||
register(NpcSynchronizationMessage.class, new NpcSynchronizationMessageEncoder());
|
register(NpcSynchronizationMessage.class, new NpcSynchronizationMessageEncoder());
|
||||||
@@ -206,6 +206,7 @@ public final class Release377 extends Release {
|
|||||||
register(SendFriendMessage.class, new SendFriendMessageEncoder());
|
register(SendFriendMessage.class, new SendFriendMessageEncoder());
|
||||||
register(HintIconMessage.class, new HintIconMessageEncoder());
|
register(HintIconMessage.class, new HintIconMessageEncoder());
|
||||||
register(FlashTabInterfaceMessage.class, new FlashTabInterfaceMessageEncoder());
|
register(FlashTabInterfaceMessage.class, new FlashTabInterfaceMessageEncoder());
|
||||||
|
register(OpenOverlayMessage.class, new OpenOverlayMessageEncoder());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -85,37 +85,33 @@ public final class LoginSession extends Session {
|
|||||||
* @param response The response.
|
* @param response The response.
|
||||||
*/
|
*/
|
||||||
public void handlePlayerLoaderResponse(LoginRequest request, PlayerLoaderResponse response) {
|
public void handlePlayerLoaderResponse(LoginRequest request, PlayerLoaderResponse response) {
|
||||||
GameService gameService = serverContext.getService(GameService.class);
|
GameService service = serverContext.getService(GameService.class);
|
||||||
Channel channel = getChannel();
|
Channel channel = getChannel();
|
||||||
|
|
||||||
Optional<Player> responsePlayer = response.getPlayer();
|
Optional<Player> optional = response.getPlayer();
|
||||||
int status = response.getStatus(), rights = 0;
|
int status = response.getStatus(), rights = 0;
|
||||||
boolean flagged = false;
|
boolean flagged = false;
|
||||||
|
|
||||||
if (responsePlayer.isPresent()) {
|
if (optional.isPresent()) {
|
||||||
Player player = responsePlayer.get();
|
Player player = optional.get();
|
||||||
rights = player.getPrivilegeLevel().toInteger();
|
rights = player.getPrivilegeLevel().toInteger();
|
||||||
|
|
||||||
GameSession session = new GameSession(channel, serverContext, player);
|
GameSession session = new GameSession(channel, serverContext, player);
|
||||||
player.setSession(session, false /* TODO */);
|
RegistrationStatus registration = service.registerPlayer(player, session, request.isReconnecting());
|
||||||
|
|
||||||
RegistrationStatus registrationStatus = gameService.registerPlayer(player);
|
if (registration != RegistrationStatus.OK) {
|
||||||
|
optional = Optional.empty();
|
||||||
if (registrationStatus != RegistrationStatus.OK) {
|
|
||||||
responsePlayer = Optional.empty();
|
|
||||||
rights = 0;
|
rights = 0;
|
||||||
if (registrationStatus == RegistrationStatus.ALREADY_ONLINE) {
|
|
||||||
status = LoginConstants.STATUS_ACCOUNT_ONLINE;
|
status = (registration == RegistrationStatus.ALREADY_ONLINE) ? LoginConstants.STATUS_ACCOUNT_ONLINE
|
||||||
} else {
|
: LoginConstants.STATUS_SERVER_FULL;
|
||||||
status = LoginConstants.STATUS_SERVER_FULL;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ChannelFuture future = channel.writeAndFlush(new LoginResponse(status, rights, flagged));
|
ChannelFuture future = channel.writeAndFlush(new LoginResponse(status, rights, flagged));
|
||||||
destroy();
|
destroy();
|
||||||
|
|
||||||
if (responsePlayer.isPresent()) {
|
if (optional.isPresent()) {
|
||||||
IsaacRandomPair randomPair = request.getRandomPair();
|
IsaacRandomPair randomPair = request.getRandomPair();
|
||||||
Release release = serverContext.getRelease();
|
Release release = serverContext.getRelease();
|
||||||
|
|
||||||
@@ -129,7 +125,7 @@ public final class LoginSession extends Session {
|
|||||||
channel.pipeline().remove("loginDecoder");
|
channel.pipeline().remove("loginDecoder");
|
||||||
channel.pipeline().remove("loginEncoder");
|
channel.pipeline().remove("loginEncoder");
|
||||||
|
|
||||||
channelContext.attr(NetworkConstants.SESSION_KEY).set(responsePlayer.get().getSession());
|
channelContext.attr(NetworkConstants.SESSION_KEY).set(optional.get().getSession());
|
||||||
} else {
|
} else {
|
||||||
future.addListener(ChannelFutureListener.CLOSE);
|
future.addListener(ChannelFutureListener.CLOSE);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user