Fix StackOverFlow when execute /give all (#1878)

* Fix StackOverFlow when execute /give all

* Use more proper code
This commit is contained in:
iTruth
2022-10-20 17:52:10 +08:00
committed by GitHub
parent c5d30c44eb
commit be8fbcbc02
3 changed files with 18 additions and 3 deletions

View File

@@ -140,7 +140,14 @@ public class Inventory extends BasePlayerManager implements Iterable<GameItem> {
List<GameItem> changedItems = new ArrayList<>();
for (var item : items) {
if (item.getItemId() == 0) continue;
GameItem result = putItem(item);
GameItem result = null;
try {
// putItem might throws exception
// ignore that exception and continue
result = putItem(item);
} catch (Exception e) {
e.printStackTrace();
}
if (result != null) {
getPlayer().getBattlePassManager().triggerMission(WatcherTriggerType.TRIGGER_OBTAIN_MATERIAL_NUM, result.getItemId(), result.getCount());
changedItems.add(result);