Skip to content

Commit 7f773c9

Browse files
committed
feat: add "hasNoPvELevel" option for drop/trash protect
1 parent 9e0345b commit 7f773c9

5 files changed

Lines changed: 36 additions & 11 deletions

File tree

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ plugins {
99
}
1010

1111
group = "net.azisaba"
12-
version = "6.20.0+1.15.2"
12+
version = "6.20.1+1.15.2"
1313

1414
java {
1515
toolchain.languageVersion.set(JavaLanguageVersion.of(11))

src/main/java/com/github/mori01231/lifecore/gui/DropProtectScreen.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
import org.jetbrains.annotations.NotNull;
1414

1515
public class DropProtectScreen implements InventoryHolder {
16-
private final Inventory inventory = Bukkit.createInventory(this, 18, "DropProtect");
16+
private final Inventory inventory = Bukkit.createInventory(this, 27, "DropProtect");
1717
private final LifeCore plugin;
1818
private final Player player;
1919

@@ -40,7 +40,8 @@ public void reset() {
4040
String specialName = RarityAPIProvider.get().getRarityById("special").getDisplayName(player);
4141
String specialLore = plugin.getDropProtectConfig().contains(player.getUniqueId(), "special") ? ChatColor.GREEN + "有効" : ChatColor.RED + "無効";
4242
String hasPvELevelLore = plugin.getDropProtectConfig().contains(player.getUniqueId(), "has_pve_level") ? ChatColor.GREEN + "有効" : ChatColor.RED + "無効";
43-
TrashProtectScreen.setItems(noRarityLore, commonName, commonLore, uncommonName, uncommonLore, rareName, rareLore, epicName, epicLore, legendaryName, legendaryLore, mythicName, mythicLore, specialName, specialLore, hasPvELevelLore, inventory);
43+
String hasNoPvELevelLore = plugin.getDropProtectConfig().contains(player.getUniqueId(), "has_no_pve_level") ? ChatColor.GREEN + "有効" : ChatColor.RED + "無効";
44+
TrashProtectScreen.setItems(noRarityLore, commonName, commonLore, uncommonName, uncommonLore, rareName, rareLore, epicName, epicLore, legendaryName, legendaryLore, mythicName, mythicLore, specialName, specialLore, hasPvELevelLore, hasNoPvELevelLore, inventory);
4445
}
4546

4647
@NotNull
@@ -103,7 +104,11 @@ public void onClick(InventoryClickEvent e) {
103104
plugin.getDropProtectConfig().toggle(screen.player.getUniqueId(), "has_pve_level");
104105
break;
105106
}
106-
case 17: {
107+
case 9: {
108+
plugin.getDropProtectConfig().toggle(screen.player.getUniqueId(), "has_no_pve_level");
109+
break;
110+
}
111+
case 26: {
107112
screen.player.closeInventory();
108113
return;
109114
}

src/main/java/com/github/mori01231/lifecore/gui/TrashProtectScreen.java

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import java.util.Collections;
1919

2020
public class TrashProtectScreen implements InventoryHolder {
21-
private final Inventory inventory = Bukkit.createInventory(this, 18, "TrashProtect");
21+
private final Inventory inventory = Bukkit.createInventory(this, 27, "TrashProtect");
2222
private final LifeCore plugin;
2323
private final Player player;
2424

@@ -45,10 +45,11 @@ public void reset() {
4545
String specialName = RarityAPIProvider.get().getRarityById("special").getDisplayName(player);
4646
String specialLore = plugin.getTrashProtectConfig().contains(player.getUniqueId(), "special") ? ChatColor.GREEN + "有効" : ChatColor.RED + "無効";
4747
String hasPvELevelLore = plugin.getTrashProtectConfig().contains(player.getUniqueId(), "has_pve_level") ? ChatColor.GREEN + "有効" : ChatColor.RED + "無効";
48-
setItems(noRarityLore, commonName, commonLore, uncommonName, uncommonLore, rareName, rareLore, epicName, epicLore, legendaryName, legendaryLore, mythicName, mythicLore, specialName, specialLore, hasPvELevelLore, inventory);
48+
String hasNoPvELevelLore = plugin.getTrashProtectConfig().contains(player.getUniqueId(), "has_no_pve_level") ? ChatColor.GREEN + "有効" : ChatColor.RED + "無効";
49+
setItems(noRarityLore, commonName, commonLore, uncommonName, uncommonLore, rareName, rareLore, epicName, epicLore, legendaryName, legendaryLore, mythicName, mythicLore, specialName, specialLore, hasPvELevelLore, hasNoPvELevelLore, inventory);
4950
}
5051

51-
static void setItems(String noRarityLore, String commonName, String commonLore, String uncommonName, String uncommonLore, String rareName, String rareLore, String epicName, String epicLore, String legendaryName, String legendaryLore, String mythicName, String mythicLore, String specialName, String specialLore, String hasPvELevelLore, Inventory inventory) {
52+
static void setItems(String noRarityLore, String commonName, String commonLore, String uncommonName, String uncommonLore, String rareName, String rareLore, String epicName, String epicLore, String legendaryName, String legendaryLore, String mythicName, String mythicLore, String specialName, String specialLore, String hasPvELevelLore, String hasNoPvELevelLore, Inventory inventory) {
5253
inventory.setItem(0, ItemUtil.createItemStack(Material.PAPER, 1, item -> {
5354
ItemMeta meta = item.getItemMeta();
5455
if (meta != null) {
@@ -121,7 +122,15 @@ static void setItems(String noRarityLore, String commonName, String commonLore,
121122
item.setItemMeta(meta);
122123
}
123124
}));
124-
inventory.setItem(17, ItemUtil.createItemStack(Material.BARRIER, 1, item -> {
125+
inventory.setItem(9, ItemUtil.createItemStack(Material.FILLED_MAP, 1, item -> {
126+
ItemMeta meta = item.getItemMeta();
127+
if (meta != null) {
128+
meta.setDisplayName(ChatColor.GRAY + "PvEレベルが付与されていないアイテム");
129+
meta.setLore(Collections.singletonList(hasNoPvELevelLore));
130+
item.setItemMeta(meta);
131+
}
132+
}));
133+
inventory.setItem(26, ItemUtil.createItemStack(Material.BARRIER, 1, item -> {
125134
ItemMeta meta = item.getItemMeta();
126135
if (meta != null) {
127136
meta.setDisplayName(ChatColor.RED + "閉じる");
@@ -190,7 +199,11 @@ public void onClick(InventoryClickEvent e) {
190199
plugin.getTrashProtectConfig().toggle(screen.player.getUniqueId(), "has_pve_level");
191200
break;
192201
}
193-
case 17: {
202+
case 9: {
203+
plugin.getTrashProtectConfig().toggle(screen.player.getUniqueId(), "has_no_pve_level");
204+
break;
205+
}
206+
case 26: {
194207
screen.player.closeInventory();
195208
return;
196209
}

src/main/java/com/github/mori01231/lifecore/listener/DropProtectListener.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,11 @@ public void onDrop(PlayerDropItemEvent e) {
4343

4444
Rarity rarity = rarityAPI.getRarityByItemStack(itemStack);
4545
boolean shouldCancel;
46-
if (plugin.getDropProtectConfig().contains(e.getPlayer().getUniqueId(), "has_pve_level") && Util.getRequiredLevel(itemStack) > 0) {
46+
long requiredLevel = Util.getRequiredLevel(itemStack);
47+
48+
if (plugin.getDropProtectConfig().contains(e.getPlayer().getUniqueId(), "has_pve_level") && requiredLevel > 0) {
49+
shouldCancel = true;
50+
} else if (plugin.getDropProtectConfig().contains(e.getPlayer().getUniqueId(), "has_no_pve_level") && requiredLevel == 0) {
4751
shouldCancel = true;
4852
} else {
4953
if (rarity == null) {

src/main/java/com/github/mori01231/lifecore/listener/TrashListener.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,11 @@ class TrashListener(private val plugin: LifeCore) : Listener {
4242
}
4343

4444
val rarity: Rarity? = RarityAPIProvider.get().getRarityByItemStack(item)
45+
val requiredLevel = Util.getRequiredLevel(item)
4546
val shouldCancel =
46-
if (plugin.trashProtectConfig.contains(e.whoClicked.uniqueId, "has_pve_level") && Util.getRequiredLevel(item) > 0) {
47+
if (plugin.trashProtectConfig.contains(e.whoClicked.uniqueId, "has_pve_level") && requiredLevel > 0) {
48+
true
49+
} else if (plugin.trashProtectConfig.contains(e.whoClicked.uniqueId, "has_no_pve_level") && requiredLevel == 0L) {
4750
true
4851
} else {
4952
if (rarity == null) {

0 commit comments

Comments
 (0)