mirror of
https://github.com/Melledy/LunarCore.git
synced 2025-12-12 21:34:35 +01:00
Implement /ClearRelics command
This commit is contained in:
@@ -183,6 +183,21 @@ public class PlayerCommands {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Command(desc = "/clearrelics")
|
||||
public static class ClearRelics extends PlayerCommand {
|
||||
@Override
|
||||
public void execute(Player player, String raw) {
|
||||
List<GameItem> toRemove = new LinkedList<>();
|
||||
for (GameItem item : player.getInventory().getItems().values()) {
|
||||
if (item.getItemMainType() == ItemMainType.Relic && item.getLevel() <= 1 && item.getExp() == 0 && !item.isLocked() && !item.isEquipped()) {
|
||||
toRemove.add(item);
|
||||
}
|
||||
}
|
||||
|
||||
player.getInventory().removeItems(toRemove);
|
||||
}
|
||||
}
|
||||
|
||||
/* Temporarily disabled as spawned monsters need
|
||||
@Command(desc = "/spawn [monster id] [count] - Creates {count} amount of {item id}")
|
||||
|
||||
@@ -216,7 +216,7 @@ public class Inventory extends BasePlayerManager {
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized void removeItems(Collection<ItemParam> items) {
|
||||
public synchronized void removeItemsByParams(Collection<ItemParam> items) {
|
||||
for (ItemParam param : items) {
|
||||
GameItem item = this.getItemByParam(param);
|
||||
|
||||
@@ -225,6 +225,12 @@ public class Inventory extends BasePlayerManager {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized void removeItems(Collection<GameItem> items) {
|
||||
for (GameItem item : items) {
|
||||
this.removeItem(item, item.getCount());
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized boolean removePileItem(int uid, int count) {
|
||||
GameItem item = this.getMaterialByItemId(uid);
|
||||
|
||||
@@ -55,7 +55,7 @@ public class InventoryService extends BaseGameService {
|
||||
}
|
||||
|
||||
// Pay items
|
||||
player.getInventory().removeItems(items);
|
||||
player.getInventory().removeItemsByParams(items);
|
||||
player.addSCoin(-cost);
|
||||
|
||||
// Level up
|
||||
@@ -118,7 +118,7 @@ public class InventoryService extends BaseGameService {
|
||||
}
|
||||
|
||||
// Pay items
|
||||
player.getInventory().removeItems(promotion.getPromotionCostList());
|
||||
player.getInventory().removeItemsByParams(promotion.getPromotionCostList());
|
||||
player.addSCoin(-promotion.getPromotionCostCoin());
|
||||
|
||||
// Promote
|
||||
@@ -161,7 +161,7 @@ public class InventoryService extends BaseGameService {
|
||||
}
|
||||
|
||||
// Pay items
|
||||
player.getInventory().removeItems(skillTree.getMaterialList());
|
||||
player.getInventory().removeItemsByParams(skillTree.getMaterialList());
|
||||
player.addSCoin(-skillTree.getMaterialCostCoin());
|
||||
|
||||
// Add skill
|
||||
@@ -198,7 +198,7 @@ public class InventoryService extends BaseGameService {
|
||||
}
|
||||
|
||||
// Pay items
|
||||
player.getInventory().removeItems(rankData.getUnlockCost());
|
||||
player.getInventory().removeItemsByParams(rankData.getUnlockCost());
|
||||
|
||||
// Add rank
|
||||
avatar.setRank(avatar.getRank() + 1);
|
||||
@@ -254,7 +254,7 @@ public class InventoryService extends BaseGameService {
|
||||
}
|
||||
|
||||
// Pay items
|
||||
player.getInventory().removeItems(items);
|
||||
player.getInventory().removeItemsByParams(items);
|
||||
player.addSCoin(-cost);
|
||||
|
||||
// Level up
|
||||
@@ -325,7 +325,7 @@ public class InventoryService extends BaseGameService {
|
||||
}
|
||||
|
||||
// Pay items
|
||||
player.getInventory().removeItems(promotion.getPromotionCostList());
|
||||
player.getInventory().removeItemsByParams(promotion.getPromotionCostList());
|
||||
player.addSCoin(-promotion.getPromotionCostCoin());
|
||||
|
||||
// Promote
|
||||
@@ -358,7 +358,7 @@ public class InventoryService extends BaseGameService {
|
||||
}
|
||||
|
||||
// Pay items
|
||||
player.getInventory().removeItems(items);
|
||||
player.getInventory().removeItemsByParams(items);
|
||||
|
||||
// Add rank
|
||||
equip.setRank(Math.min(equip.getRank() + items.size(), equip.getExcel().getEquipmentExcel().getMaxRank()));
|
||||
@@ -409,7 +409,7 @@ public class InventoryService extends BaseGameService {
|
||||
}
|
||||
|
||||
// Pay items
|
||||
player.getInventory().removeItems(items);
|
||||
player.getInventory().removeItemsByParams(items);
|
||||
player.addSCoin(-cost);
|
||||
|
||||
// Level up
|
||||
@@ -493,7 +493,7 @@ public class InventoryService extends BaseGameService {
|
||||
}
|
||||
|
||||
// Delete items
|
||||
player.getInventory().removeItems(items);
|
||||
player.getInventory().removeItemsByParams(items);
|
||||
|
||||
// Add return items
|
||||
for (var returnItem : returnItems.int2IntEntrySet()) {
|
||||
|
||||
Reference in New Issue
Block a user