Initial release v1.0.0
This commit is contained in:
commit
3fef65b903
314 files changed
+27448
No files matched your search
+321
@@ -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;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user