초기커밋
This commit is contained in:
83
GameServer/Contents/Package/PackageCheat.cs
Normal file
83
GameServer/Contents/Package/PackageCheat.cs
Normal file
@@ -0,0 +1,83 @@
|
||||
using ServerCommon;
|
||||
using ServerCore; using ServerBase;
|
||||
|
||||
namespace GameServer;
|
||||
|
||||
[ChatCommandAttribute("packagetest", typeof(ChatCommandPackageTest), AuthAdminLevelType.Developer, AuthAdminLevelType.GmNormal, AuthAdminLevelType.GmSuper)]
|
||||
internal class ChatCommandPackageTest : ChatCommandBase
|
||||
{
|
||||
public override async Task invoke(Player player, string token, string[] args)
|
||||
{
|
||||
Log.getLogger().info($"HandleChatCommandPackageTest");
|
||||
|
||||
if (args.Length < 1)
|
||||
{
|
||||
Log.getLogger().error($"Invalid Argument");
|
||||
return;
|
||||
}
|
||||
|
||||
if (uint.TryParse(args[0], out uint product_meta_id) == false)
|
||||
return;
|
||||
|
||||
string order_guid = Guid.NewGuid().ToString("N");
|
||||
|
||||
var result = new Result();
|
||||
var err_msg = string.Empty;
|
||||
|
||||
var server_logic = GameServerApp.getServerLogic();
|
||||
ArgumentNullException.ThrowIfNull(server_logic);
|
||||
|
||||
var package_action = player.getEntityAction<PackageAction>();
|
||||
ArgumentNullException.ThrowIfNull(package_action);
|
||||
|
||||
var mail_action = player.getEntityAction<MailAction>();
|
||||
ArgumentNullException.ThrowIfNull(mail_action);
|
||||
|
||||
var fn_give_product = async delegate ()
|
||||
{
|
||||
var result = new Result();
|
||||
var invokers = new List<ILogInvoker>();
|
||||
|
||||
(result, var new_package_repeat, var receivedMailDocs) = await package_action.tryOrderNewProduct(order_guid, product_meta_id, DateTime.UtcNow, invokers);
|
||||
if (result.isFail())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
NullReferenceCheckHelper.throwIfNull(receivedMailDocs, () => $"receivedMailDocs is null !!!");
|
||||
|
||||
var task_log_data = PackageBusinessLogHelper.toLastOrderRecodeLogInfo(order_guid, product_meta_id, DateTime.UtcNow, DateTime.UtcNow);
|
||||
invokers.Add(new PackageLastOrderRecordBusinessLog(task_log_data));
|
||||
|
||||
var batch = new QueryBatchEx<QueryRunnerWithDocument>(player, LogActionType.CheatCommandPackageSend
|
||||
, server_logic.getDynamoDbClient(), true);
|
||||
{
|
||||
batch.addQuery(new DBQEntityWrite(receivedMailDocs));
|
||||
batch.addQuery(new DBQWriteToAttributeAllWithTransactionRunner());
|
||||
}
|
||||
|
||||
batch.appendBusinessLogs(invokers);
|
||||
|
||||
result = await QueryHelper.sendQueryAndBusinessLog(batch);
|
||||
if (result.isFail()) return result;
|
||||
|
||||
if(receivedMailDocs.Count > 0)
|
||||
{
|
||||
mail_action.NewReceivedMail();
|
||||
}
|
||||
|
||||
if(new_package_repeat != null)
|
||||
{
|
||||
package_action.addPackage(new_package_repeat);
|
||||
}
|
||||
|
||||
return result;
|
||||
};
|
||||
|
||||
result = await player.runTransactionRunnerSafely(TransactionIdType.PrivateContents, "Cheat.package", fn_give_product);
|
||||
if (result.isFail())
|
||||
{
|
||||
err_msg = $"Failed to runTransactionRunnerSafely()!!! : {result.toBasicString()} - {player.toBasicString()}";
|
||||
Log.getLogger().error(err_msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user