|
@@ -20,19 +20,24 @@ package com.iohao.mmo.bag.client;
|
|
|
|
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
|
import com.iohao.game.action.skeleton.protocol.wrapper.BoolValue;
|
|
|
+import com.iohao.game.action.skeleton.protocol.wrapper.ByteValueList;
|
|
|
+import com.iohao.game.action.skeleton.protocol.wrapper.WrapperKit;
|
|
|
import com.iohao.game.external.client.AbstractInputCommandRegion;
|
|
|
import com.iohao.game.external.client.command.InputRequestData;
|
|
|
import com.iohao.game.external.client.kit.ScannerKit;
|
|
|
import com.iohao.game.external.client.kit.SplitParam;
|
|
|
import com.iohao.mmo.bag.ItemIdConst;
|
|
|
-import com.iohao.mmo.bag.client.ext.ClientBagAttr;
|
|
|
-import com.iohao.mmo.bag.client.ext.ItemMessageMap;
|
|
|
import com.iohao.mmo.bag.cmd.BagCmd;
|
|
|
-import com.iohao.mmo.bag.proto.*;
|
|
|
+import com.iohao.mmo.bag.proto.BagItemMessage;
|
|
|
+import com.iohao.mmo.bag.proto.BagMessage;
|
|
|
+import com.iohao.mmo.bag.proto.UseItemMessage;
|
|
|
+import com.iohao.mmo.bag.proto.UseMessage;
|
|
|
+import com.iohao.mmo.common.provide.kit.ItemKit;
|
|
|
import com.iohao.mmo.common.provide.kit.JsonKit;
|
|
|
import com.iohao.mmo.common.snow.SnowKit;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
@@ -44,48 +49,68 @@ public class BagInputCommandRegion extends AbstractInputCommandRegion {
|
|
|
@Override
|
|
|
public void initInputCommand() {
|
|
|
this.inputCommandCreate.cmd = BagCmd.cmd;
|
|
|
+ this.inputCommandCreate.cmdName = "背包模块";
|
|
|
+
|
|
|
request();
|
|
|
useRequest();
|
|
|
+
|
|
|
+ listenBroadcast(ByteValueList.class, result -> {
|
|
|
+ List<BagItemMessage> list = result.toList(BagItemMessage.class);
|
|
|
+ log.info("物品变更 : {}", list.size());
|
|
|
+ }, BagCmd.broadcastChangeItems, "接收广播-物品变更");
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void loginSuccessCallback() {
|
|
|
+
|
|
|
+ if (true) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ List<BagItemMessage> list = new ArrayList<>();
|
|
|
// 添加一些经验值道具
|
|
|
BagItemMessage bagItemMessage = BagInternalHelper.ofBagItemMessage(ItemIdConst.expId);
|
|
|
bagItemMessage.quantity = 10;
|
|
|
+ list.add(bagItemMessage);
|
|
|
log.info("添加 {} 个经验值道具 {}", bagItemMessage.quantity, bagItemMessage);
|
|
|
- ofRequestCommand(BagCmd.incrementItem).request(bagItemMessage);
|
|
|
|
|
|
// 添加一些装备制造书材料
|
|
|
bagItemMessage = BagInternalHelper.ofBagItemMessage(ItemIdConst.equipWeaponBook10);
|
|
|
bagItemMessage.quantity = 1;
|
|
|
+ list.add(bagItemMessage);
|
|
|
log.info("添加 {} 【装备-武器】制造书材料 {}", bagItemMessage.quantity, bagItemMessage);
|
|
|
- ofRequestCommand(BagCmd.incrementItem).request(bagItemMessage);
|
|
|
|
|
|
// 添加一些装备制造书材料
|
|
|
bagItemMessage = BagInternalHelper.ofBagItemMessage(ItemIdConst.iron10);
|
|
|
bagItemMessage.quantity = 1;
|
|
|
+ list.add(bagItemMessage);
|
|
|
log.info("添加 {} 装备-制造材料-铁 {}", bagItemMessage.quantity, bagItemMessage);
|
|
|
- ofRequestCommand(BagCmd.incrementItem).request(bagItemMessage);
|
|
|
+
|
|
|
+ ofRequestCommand(BagCmd.incrementItem).request(WrapperKit.ofListByteValue(list));
|
|
|
}
|
|
|
|
|
|
private void request() {
|
|
|
ofCommand(BagCmd.bag).callback(BagMessage.class, result -> {
|
|
|
- ItemMessageMap itemMessageMap = clientUser.option(ClientBagAttr.itemMessageMapAttrOption);
|
|
|
|
|
|
BagMessage value = result.getValue();
|
|
|
|
|
|
List<JSONObject> list = value.itemMap.values().stream().map(bagItemMessage -> {
|
|
|
String itemId = bagItemMessage.itemId;
|
|
|
- JSONObject bagItemMessageJson = JSONObject.from(bagItemMessage);
|
|
|
- JSONObject itemMessageJson = itemMessageMap.getItemMessageJSON(itemId);
|
|
|
+ JSONObject bagItemMessageJson = JsonKit.toJSON(bagItemMessage);
|
|
|
+ JSONObject itemMessageJson = ItemKit.toJSON(itemId);
|
|
|
return JsonKit.merge(bagItemMessageJson, itemMessageJson);
|
|
|
}).toList();
|
|
|
|
|
|
log.info("查询玩家背包 {}", JsonKit.toJsonString(list));
|
|
|
}).setDescription("查询玩家背包");
|
|
|
|
|
|
- InputRequestData inputRequestData = () -> {
|
|
|
+
|
|
|
+ ofCommand(BagCmd.incrementItem).callback(BagItemMessage.class, result -> {
|
|
|
+ var value = result.getValue();
|
|
|
+ log.info("value : {}", value);
|
|
|
+ // 重新查询一次背包
|
|
|
+ ofRequestCommand(BagCmd.bag).request();
|
|
|
+ }).setDescription("往背包添加(增加)物品").setInputRequestData(() -> {
|
|
|
ScannerKit.log(() -> log.info("输入【1】表示添加一个可叠加的物品。"));
|
|
|
String inputType = ScannerKit.nextLine("1");
|
|
|
|
|
@@ -103,17 +128,17 @@ public class BagInputCommandRegion extends AbstractInputCommandRegion {
|
|
|
|
|
|
ScannerKit.log(() -> log.info("{}", bagItemMessage));
|
|
|
|
|
|
- return bagItemMessage;
|
|
|
- };
|
|
|
+ // 将请求参数包装成 list
|
|
|
+ return WrapperKit.ofListByteValue(List.of(bagItemMessage));
|
|
|
+ });
|
|
|
|
|
|
- ofCommand(BagCmd.incrementItem).callback(BagItemMessage.class, result -> {
|
|
|
+ ofCommand(BagCmd.decrementItem).callback(BagItemMessage.class, result -> {
|
|
|
var value = result.getValue();
|
|
|
log.info("value : {}", value);
|
|
|
+
|
|
|
// 重新查询一次背包
|
|
|
ofRequestCommand(BagCmd.bag).request();
|
|
|
- }).setDescription("往背包添加(增加)物品").setInputRequestData(inputRequestData);
|
|
|
-
|
|
|
- inputRequestData = () -> {
|
|
|
+ }).setDescription("从背包减少物品").setInputRequestData(() -> {
|
|
|
ScannerKit.log(() -> log.info("输入需要减少的物品信息,格式 [背包物品id-数量]"));
|
|
|
String inputType = ScannerKit.nextLine("1-1");
|
|
|
|
|
@@ -128,15 +153,7 @@ public class BagInputCommandRegion extends AbstractInputCommandRegion {
|
|
|
ScannerKit.log(() -> log.info("{}", bagItemMessage));
|
|
|
|
|
|
return bagItemMessage;
|
|
|
- };
|
|
|
-
|
|
|
- ofCommand(BagCmd.decrementItem).callback(BagItemMessage.class, result -> {
|
|
|
- var value = result.getValue();
|
|
|
- log.info("value : {}", value);
|
|
|
-
|
|
|
- // 重新查询一次背包
|
|
|
- ofRequestCommand(BagCmd.bag).request();
|
|
|
- }).setDescription("从背包减少物品").setInputRequestData(inputRequestData);
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
private void useRequest() {
|