Files
2025-05-01 07:20:41 +09:00

48 lines
1.7 KiB
C#

using Amazon.S3.Model;
using GameServer.PacketHandler;
using ServerCommon;
using ServerCore; using ServerBase;
namespace GameServer;
[ChatCommandAttribute("changepage", typeof(RoomCommandScreenPageChange), AuthAdminLevelType.Developer,
AuthAdminLevelType.GmNormal, AuthAdminLevelType.GmSuper)]
internal class RoomCommandScreenPageChange : ChatCommandBase
{
public override async Task invoke(Player player, string token, string[] args)
{
var result = new Result();
if (args.Length < 2) return;
var isCustom = false;
var isIncrease = false;
var custromPage = -1;
if (false == bool.TryParse(args[0], out isCustom)) return;
if (false == isCustom)
{
if (false == bool.TryParse(args[1], out isIncrease)) return;
}
else
{
if(false == int.TryParse(args[1], out custromPage)) return;
}
Log.getLogger().debug("Meeting Room Change Page");
var location = player.getEntityAttribute<LocationAttribute>();
NullReferenceCheckHelper.throwIfNull(location, () => $"location is null !!! - {player.toBasicString()}");
var room_id = location.CurrentIndunLocation.InstanceRoomId;
if (string.IsNullOrEmpty(room_id)) return;
var screen_page_no = InstanceRoomManager.Instance.changeScreenPage(room_id, isCustom, isIncrease, custromPage);
Log.getLogger().debug($"Change Meeting Room Screen Page : {screen_page_no}");
if(screen_page_no < 0) result.setFail(ServerErrorCode.NotExistInstanceRoom, $"failed to change screen page!! : roomId[{room_id}]");
ChangeScreenPagePacketHandler.send_S2C_ACK_CHANGE_SCREEN_PAGE(player, result, screen_page_no);
await Task.CompletedTask;
}
}