초기커밋

This commit is contained in:
2025-05-01 07:20:41 +09:00
commit 98bb2e3c5c
2747 changed files with 646947 additions and 0 deletions

View File

@@ -0,0 +1,73 @@
using ServerCore; using ServerBase;
using ServerCommon;
using GameServer.PacketHandler;
namespace GameServer.ChatCommandHandler;
[ChatCommandAttribute("warp", typeof(WarpCommandHandler), AuthAdminLevelType.Developer, AuthAdminLevelType.GmNormal, AuthAdminLevelType.GmSuper)]
internal class WarpCommandHandler : ChatCommandBase
{
public override async Task invoke(Player player, string token, string[] args)
{
if (args.Length < 1) return;
if (!int.TryParse(args[0], out var warp_id)) return;
var result = await player.runTransactionRunnerSafely(TransactionIdType.PrivateContents, "CheetWarp", warpDelegate);
if (result.isFail())
{
var err_msg = $"Failed to runTransactionRunnerSafely : {result.toBasicString()} - {player.toBasicString()}";
Log.getLogger().error(err_msg);
}
async Task<Result> warpDelegate() => await warpAsync(player, warp_id);
}
private async Task<Result> warpAsync(Player player, int warpId)
{
var result = new Result();
string err_msg;
var server_logic = GameServerApp.getServerLogic();
var res = new ClientToGameRes.Types.WarpRes();
var game_zone_move_action = player.getEntityAction<GameZoneMoveAction>();
NullReferenceCheckHelper.throwIfNull(game_zone_move_action, () => $"game_zone_move_action is null !!! - {player.toBasicString()}");
(result, res, var business_logs) = await game_zone_move_action.tryWarp(warpId);
if (result.isFail())
{
err_msg = $"Failed to tryWarp() !!! : {result.toBasicString()} - {player.toBasicString()}";
Log.getLogger().error(err_msg);
WarpPacketHandler.send_S2C_ACK_WARP(player, result, res);
return result;
}
NullReferenceCheckHelper.throwIfNull(business_logs, () => $"business_logs is null !!! - warpId:{warpId}, {player.toBasicString()}");
var batch = new QueryBatchEx<QueryRunnerWithDocument>(player, LogActionType.Warp, server_logic.getDynamoDbClient());
{
batch.addQuery(new DBQWriteToAttributeAllWithTransactionRunner());
batch.addQuery(new QueryFinal());
}
batch.appendBusinessLogs(business_logs);
result = await QueryHelper.sendQueryAndBusinessLog(batch);
if (result.isFail())
{
WarpPacketHandler.send_S2C_ACK_WARP(player, result, res);
return result;
}
WarpPacketHandler.send_S2C_ACK_WARP(player, result, res);
if (res.PlaceCase == ClientToGameRes.Types.WarpRes.PlaceOneofCase.Pos)
{
player.send_S2C_NTF_SET_LOCATION();
}
return result;
}
}