Initial release v1.0.0

This commit is contained in:
BigPappa committed 2026-08-06 22:07:12 -05:00
commit 3fef65b903
314 files changed
+27448

No files matched your search

@@ -0,0 +1,321 @@
package com.rsscripting.rswarehouse.variantsdamaged;
import com.rsscripting.rswarehouse.variants.dao.DamagedVariantsDAO;
import com.rsscripting.rswarehouse.menuholder.RSMenuHolder;
import com.rsscripting.rswarehouse.utils.ItemStackUtils;
import com.rsscripting.rswarehouse.utils.RSMenuUtils;
import com.rsscripting.rswarehouse.model.DamagedVariant;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import java.util.List;
public class DamagedVariantsTransactionMenu {
public static void open(
Player player,
int damagedVariantId,
int amount
) {
String title;
if (amount > 0) {
title =
"Deposit: "
+ String.format(
"%,d",
amount
);
}
else if (amount < 0) {
title =
"Withdraw: "
+ String.format(
"%,d",
Math.abs(
amount
)
);
}
else {
title =
"Amount: 0";
}
Inventory menu =
Bukkit.createInventory(
new RSMenuHolder(
"DAMAGED_ITEM_ACTION"
),
27,
Component.text(
title
).color(
NamedTextColor.BLUE
)
);
/*
|--------------------------------------------------------------------------
| FILLER
|--------------------------------------------------------------------------
*/
for (int i = 0; i < menu.getSize(); i++) {
menu.setItem(
i,
RSMenuUtils.createFillerPane()
);
}
/*
|--------------------------------------------------------------------------
| CENTER ITEM
|--------------------------------------------------------------------------
*/
DamagedVariant damagedVariant =
DamagedVariantsDAO.getDamagedVariantById(
damagedVariantId
);
if (damagedVariant != null) {
ItemStack item =
ItemStackUtils.deserialize(
damagedVariant.serializedItem()
);
if (item != null) {
ItemMeta meta =
item.getItemMeta();
if (meta != null) {
long playerHas =
getPlayerItemCount(
player,
item
);
meta.lore(
List.of(
Component.text(
"In Stock: "
+ String.format(
"%,d",
damagedVariant.quantity()
)
).color(
NamedTextColor.LIGHT_PURPLE
),
Component.text(
"Player Has: "
+ String.format(
"%,d",
playerHas
)
).color(
NamedTextColor.GREEN
),
Component.text(
" "
),
Component.text(
"Click to complete transaction."
).color(
NamedTextColor.YELLOW
)
)
);
item.setItemMeta(
meta
);
}
menu.setItem(
13,
item
);
}
}
/*
|--------------------------------------------------------------------------
| WITHDRAW
|--------------------------------------------------------------------------
*/
ItemStack subtract64 =
RSMenuUtils.createMenuItem(
Material.RED_WOOL,
"§cSubtract 64"
);
subtract64.setAmount(
64
);
menu.setItem(
9,
subtract64
);
ItemStack subtract16 =
RSMenuUtils.createMenuItem(
Material.RED_WOOL,
"§cSubtract 16"
);
subtract16.setAmount(
16
);
menu.setItem(
10,
subtract16
);
ItemStack subtract1 =
RSMenuUtils.createMenuItem(
Material.RED_WOOL,
"§cSubtract 1"
);
subtract1.setAmount(
1
);
menu.setItem(
11,
subtract1
);
/*
|--------------------------------------------------------------------------
| DEPOSIT
|--------------------------------------------------------------------------
*/
ItemStack add1 =
RSMenuUtils.createMenuItem(
Material.GREEN_WOOL,
"§cAdd 1"
);
add1.setAmount(
1
);
menu.setItem(
15,
add1
);
ItemStack add16 =
RSMenuUtils.createMenuItem(
Material.GREEN_WOOL,
"§cAdd 16"
);
add16.setAmount(
16
);
menu.setItem(
16,
add16
);
ItemStack add64 =
RSMenuUtils.createMenuItem(
Material.GREEN_WOOL,
"§cAdd 64"
);
add64.setAmount(
64
);
menu.setItem(
17,
add64
);
/*
|--------------------------------------------------------------------------
| BACK
|--------------------------------------------------------------------------
*/
menu.setItem(
4,
RSMenuUtils.createMenuItem(
Material.OAK_DOOR,
"§eReturn to main menu."
)
);
player.openInventory(
menu
);
}
public static long getPlayerItemCount(
Player player,
ItemStack target
) {
long count = 0;
for (ItemStack item : player.getInventory().getContents()) {
if (item == null) {
continue;
}
if (
item.isSimilar(
target
)
) {
count += item.getAmount();
}
}
return count;
}
}