mirror of
https://github.com/Melledy/LunarCore.git
synced 2025-12-14 22: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
|
/* Temporarily disabled as spawned monsters need
|
||||||
@Command(desc = "/spawn [monster id] [count] - Creates {count} amount of {item id}")
|
@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) {
|
for (ItemParam param : items) {
|
||||||
GameItem item = this.getItemByParam(param);
|
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) {
|
public synchronized boolean removePileItem(int uid, int count) {
|
||||||
GameItem item = this.getMaterialByItemId(uid);
|
GameItem item = this.getMaterialByItemId(uid);
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ public class InventoryService extends BaseGameService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Pay items
|
// Pay items
|
||||||
player.getInventory().removeItems(items);
|
player.getInventory().removeItemsByParams(items);
|
||||||
player.addSCoin(-cost);
|
player.addSCoin(-cost);
|
||||||
|
|
||||||
// Level up
|
// Level up
|
||||||
@@ -118,7 +118,7 @@ public class InventoryService extends BaseGameService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Pay items
|
// Pay items
|
||||||
player.getInventory().removeItems(promotion.getPromotionCostList());
|
player.getInventory().removeItemsByParams(promotion.getPromotionCostList());
|
||||||
player.addSCoin(-promotion.getPromotionCostCoin());
|
player.addSCoin(-promotion.getPromotionCostCoin());
|
||||||
|
|
||||||
// Promote
|
// Promote
|
||||||
@@ -161,7 +161,7 @@ public class InventoryService extends BaseGameService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Pay items
|
// Pay items
|
||||||
player.getInventory().removeItems(skillTree.getMaterialList());
|
player.getInventory().removeItemsByParams(skillTree.getMaterialList());
|
||||||
player.addSCoin(-skillTree.getMaterialCostCoin());
|
player.addSCoin(-skillTree.getMaterialCostCoin());
|
||||||
|
|
||||||
// Add skill
|
// Add skill
|
||||||
@@ -198,7 +198,7 @@ public class InventoryService extends BaseGameService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Pay items
|
// Pay items
|
||||||
player.getInventory().removeItems(rankData.getUnlockCost());
|
player.getInventory().removeItemsByParams(rankData.getUnlockCost());
|
||||||
|
|
||||||
// Add rank
|
// Add rank
|
||||||
avatar.setRank(avatar.getRank() + 1);
|
avatar.setRank(avatar.getRank() + 1);
|
||||||
@@ -254,7 +254,7 @@ public class InventoryService extends BaseGameService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Pay items
|
// Pay items
|
||||||
player.getInventory().removeItems(items);
|
player.getInventory().removeItemsByParams(items);
|
||||||
player.addSCoin(-cost);
|
player.addSCoin(-cost);
|
||||||
|
|
||||||
// Level up
|
// Level up
|
||||||
@@ -325,7 +325,7 @@ public class InventoryService extends BaseGameService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Pay items
|
// Pay items
|
||||||
player.getInventory().removeItems(promotion.getPromotionCostList());
|
player.getInventory().removeItemsByParams(promotion.getPromotionCostList());
|
||||||
player.addSCoin(-promotion.getPromotionCostCoin());
|
player.addSCoin(-promotion.getPromotionCostCoin());
|
||||||
|
|
||||||
// Promote
|
// Promote
|
||||||
@@ -358,7 +358,7 @@ public class InventoryService extends BaseGameService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Pay items
|
// Pay items
|
||||||
player.getInventory().removeItems(items);
|
player.getInventory().removeItemsByParams(items);
|
||||||
|
|
||||||
// Add rank
|
// Add rank
|
||||||
equip.setRank(Math.min(equip.getRank() + items.size(), equip.getExcel().getEquipmentExcel().getMaxRank()));
|
equip.setRank(Math.min(equip.getRank() + items.size(), equip.getExcel().getEquipmentExcel().getMaxRank()));
|
||||||
@@ -409,7 +409,7 @@ public class InventoryService extends BaseGameService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Pay items
|
// Pay items
|
||||||
player.getInventory().removeItems(items);
|
player.getInventory().removeItemsByParams(items);
|
||||||
player.addSCoin(-cost);
|
player.addSCoin(-cost);
|
||||||
|
|
||||||
// Level up
|
// Level up
|
||||||
@@ -493,7 +493,7 @@ public class InventoryService extends BaseGameService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Delete items
|
// Delete items
|
||||||
player.getInventory().removeItems(items);
|
player.getInventory().removeItemsByParams(items);
|
||||||
|
|
||||||
// Add return items
|
// Add return items
|
||||||
for (var returnItem : returnItems.int2IntEntrySet()) {
|
for (var returnItem : returnItems.int2IntEntrySet()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user