using Org.BouncyCastle.Asn1.Ocsp; using ServerCommon; using ServerCore; using ServerBase; namespace GameServer; [ChatCommandAttribute("init", typeof(ChatCommandInit), AuthAdminLevelType.Developer, AuthAdminLevelType.GmNormal, AuthAdminLevelType.GmSuper)] internal class ChatCommandInit : ChatCommandBase { public override async Task invoke(Player player, string token, string[] args) { Log.getLogger().info($"HandleInit"); var result = new Result(); var err_msg = string.Empty; var player_action = player.getEntityAction(); ArgumentNullException.ThrowIfNull(player_action, $"player_action is null !!! - {player.toBasicString()}"); var selected_character = player_action.getSelectedCharacter(); ArgumentNullException.ThrowIfNull(selected_character, $"selected_character is null !!! - {player.toBasicString()}"); var character_action = selected_character.getEntityAction(); ArgumentNullException.ThrowIfNull(character_action); var server_logic = GameServerApp.getServerLogic(); ArgumentNullException.ThrowIfNull(player, $"server_logic is null !! - {player.toBasicString()}"); var fn_character_init = async delegate () { var result = new Result(); character_action.CheatResetCompletedApprearance(); var batch = new QueryBatchEx(player, LogActionType.CheatCommandCharacterInit , server_logic.getDynamoDbClient()); { batch.addQuery(new DBQWriteToAttributeAllWithTransactionRunner()); } result = await QueryHelper.sendQueryAndBusinessLog(batch); if (result.isFail()) { return result; } return result; }; result = await player.runTransactionRunnerSafely(TransactionIdType.PrivateContents, "Cheat.CharacterInit", fn_character_init); if (result.isFail()) { err_msg = $"Failed to runTransactionRunnerSafely()!!! : {result.toBasicString()} - {player.toBasicString()}"; Log.getLogger().error(err_msg); } } } [ChatCommandAttribute("changenickname", typeof(ChatCommandChangeNickName), AuthAdminLevelType.Developer, AuthAdminLevelType.GmNormal, AuthAdminLevelType.GmSuper)] internal class ChatCommandChangeNickName : ChatCommandBase { public override async Task invoke(Player player, string token, string[] args) { Log.getLogger().info($"HandleChangeNickName"); if (args.Length < 1) { Log.getLogger().error($"Invalid Argument"); return; } try { var result = new Result(); var err_msg = string.Empty; var server_logic = GameServerApp.getServerLogic(); (result, var nickname_attrib) = await NicknameHelper.findNickname(args[0]); if (result.isSuccess()) { Log.getLogger().error($"Duplicated NickName : {args[0]}"); return; } var fn_change_nickname = async delegate () { var result = new Result(); var nickname_attribute = player.getEntityAttribute(); NullReferenceCheckHelper.throwIfNull(nickname_attribute, () => $"nickname_attribute is null !!! - {player.toBasicString()}"); var del_user_nickname_registry_doc = new UserNicknameRegistryDoc(nickname_attribute.Nickname); result = await del_user_nickname_registry_doc.deleteDoc4Query(); if (result.isFail()) { return result; } var new_user_nickname_registry_doc = new UserNicknameRegistryDoc(args[0]); result = await new_user_nickname_registry_doc.newDoc4Query(); if (result.isFail()) { return result; } var new_doc_user_nickname_attrib = new_user_nickname_registry_doc.getAttrib(); ArgumentNullException.ThrowIfNull(new_doc_user_nickname_attrib, $"new_doc_user_nickname_attrib is null !!! - {player.toBasicString()}"); var account_attribute = player.getEntityAttribute(); ArgumentNullException.ThrowIfNull(account_attribute); new_doc_user_nickname_attrib.Nickname = args[0]; new_doc_user_nickname_attrib.UserGuid = player.getUserGuid(); new_doc_user_nickname_attrib.AccountId = account_attribute.AccountId; nickname_attribute.Nickname = args[0]; nickname_attribute.modifiedEntityAttribute(); var batch = new QueryBatchEx( player, LogActionType.CheatCommandChangeNickName , server_logic.getDynamoDbClient()); { batch.addQuery(new DBQEntityDelete(del_user_nickname_registry_doc)); batch.addQuery(new DBQEntityWrite(new_user_nickname_registry_doc)); batch.addQuery(new DBQWriteToAttributeAllWithTransactionRunner()); } result = await QueryHelper.sendQueryAndBusinessLog(batch); if (result.isFail()) { return result; } var nickname_action = player.getEntityAction(); ArgumentNullException.ThrowIfNull(nickname_action, $"nickname_action is null !!! - {player.toBasicString()}"); nickname_action.send_GS2C_NTF_NICKNAME_CHANGE(args[0]); return result; }; result = await player.runTransactionRunnerSafely(TransactionIdType.PrivateContents, "Cheat.ChangeNickName", fn_change_nickname); if (result.isFail()) { err_msg = $"Failed to runTransactionRunnerSafely()!!! : {result.toBasicString()} - {player.toBasicString()}"; Log.getLogger().error(err_msg); } } catch (Exception e) { Log.getLogger().error($"Exception !!!, Failed to perform in ChatCommandChangeNickName.Invoke() !!! : exception:{e} - {player.toBasicString()}"); return; } } }