Skip to content

Commit b124eee

Browse files
committed
[update] アイテムの追加とリファクタ
1 parent 1e3442c commit b124eee

File tree

13 files changed

+237
-15
lines changed

13 files changed

+237
-15
lines changed

src/main/java/com/github/elic0de/thejpspit/spigot/TheJpsPit.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,10 @@ private void createItems() {
184184
ItemManager.register(new ItemDiamondBoots());
185185
ItemManager.register(new ItemObsidian());
186186
ItemManager.register(new ItemVividSword());
187+
ItemManager.register(new ItemCobweb());
188+
ItemManager.register(new ItemFishingRod());
189+
ItemManager.register(new ItemTurtleShell());
190+
ItemManager.register(new ItemUltimateSword());
187191
}
188192

189193
private void createNPCs() {

src/main/java/com/github/elic0de/thejpspit/spigot/gui/ShopMenu.java

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,28 +18,26 @@ public class ShopMenu {
1818

1919
private static final String[] MENU_LAYOUT = {
2020
" ",
21-
" 1234 ",
22-
" ",
21+
" SCBoftc ",
22+
" vu ",
23+
" "
2324
};
2425

2526
private final InventoryGui menu;
2627

2728
private ShopMenu(TheJpsPit plugin, String title) {
2829
this.menu = new InventoryGui(plugin, title, MENU_LAYOUT);
29-
this.menu.addElement(getItemElement('1', ItemManager.getPitItemEntry("diamond_sword")));
30-
this.menu.addElement(getItemElement('2', ItemManager.getPitItemEntry("diamond_chestplate")));
31-
this.menu.addElement(getItemElement('3', ItemManager.getPitItemEntry("diamond_boots")));
32-
this.menu.addElement(getItemElement('4', ItemManager.getPitItemEntry("obsidian")));
30+
ItemManager.getAllEntry().stream().map(this::getItemElement).forEach(this.menu::addElement);
3331
}
3432

3533
public static ShopMenu create(TheJpsPit plugin, String title) {
3634
return new ShopMenu(plugin, title);
3735
}
3836

39-
private DynamicGuiElement getItemElement(char slotChar, PitItemEntry pitItemEntry) {
40-
return new DynamicGuiElement(slotChar, (viewer) -> {
37+
private DynamicGuiElement getItemElement(PitItemEntry pitItemEntry) {
38+
return new DynamicGuiElement(pitItemEntry.getSlotChar(), (viewer) -> {
4139
final PitPlayer pitPlayer = PitPlayerManager.getPitPlayer((Player) viewer);
42-
return new StaticGuiElement(slotChar, pitItemEntry.getItemStack(), click -> {
40+
return new StaticGuiElement(pitItemEntry.getSlotChar(), pitItemEntry.getItemStack(), click -> {
4341
if (TheJpsPit.getInstance().getEconomyHook().isEmpty()) {
4442
TheJpsPit.getInstance().getLogger().warning("経済プラグインが見つかりませんでした");
4543
return true;

src/main/java/com/github/elic0de/thejpspit/spigot/item/ItemManager.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import org.bukkit.persistence.PersistentDataType;
88

99
import javax.annotation.Nullable;
10+
import java.util.Collection;
1011
import java.util.HashMap;
1112

1213
public class ItemManager {
@@ -34,6 +35,10 @@ public static PitItemEntry getPitItemEntry(ItemStack itemStack) {
3435
return itemMeta == null ? null : getPitItemEntry(itemMeta.getPersistentDataContainer().get(PitItemEntry.itemIdKey, PersistentDataType.STRING));
3536
}
3637

38+
public static Collection<PitItemEntry> getAllEntry() {
39+
return pitItemMap.values();
40+
}
41+
3742
public static boolean isPitItem(ItemStack itemStack) {
3843
ItemMeta itemMeta = itemStack.getItemMeta();
3944
if (itemMeta == null) {

src/main/java/com/github/elic0de/thejpspit/spigot/item/PitItemEntry.java

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import org.bukkit.inventory.meta.ItemMeta;
88
import org.bukkit.persistence.PersistentDataType;
99

10+
import java.util.ArrayList;
11+
import java.util.List;
1012
import java.util.Objects;
1113

1214
public abstract class PitItemEntry {
@@ -23,6 +25,12 @@ public abstract class PitItemEntry {
2325

2426
public abstract String getName();
2527

28+
public abstract char getSlotChar();
29+
30+
public List<String> getRawLore() {
31+
return new ArrayList<>();
32+
}
33+
2634
public final ItemStack getItemStack() {
2735
ItemStack itemStack = this.getRawItemStack().clone();
2836
ItemMeta itemMeta = itemStack.getItemMeta();
@@ -36,11 +44,14 @@ public final ItemStack getItemStack() {
3644
}
3745

3846
public String[] getLore() {
39-
return new String[]{
40-
getName(),
41-
String.format("必要レベル: §e%d", this.getRequiredLevel()),
42-
String.format("値段: §e%d", this.getPrice())
43-
};
47+
return new ArrayList<String>() {
48+
{
49+
add(getName());
50+
addAll(getRawLore());
51+
add(String.format("§f必要レベル: §e%d", getRequiredLevel()));
52+
add(String.format("§f値段: §e%d", getPrice()));
53+
}
54+
}.toArray(String[]::new);
4455
}
4556

4657
protected boolean isEntryOf(ItemStack itemStack) {
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package com.github.elic0de.thejpspit.spigot.item.items;
2+
3+
import com.github.elic0de.thejpspit.spigot.item.PitItemEntry;
4+
import org.bukkit.Material;
5+
import org.bukkit.inventory.ItemStack;
6+
7+
public class ItemCobweb extends PitItemEntry {
8+
9+
@Override
10+
public String getId() {
11+
return "cobweb";
12+
}
13+
14+
@Override
15+
public ItemStack getRawItemStack() {
16+
return new ItemStack(Material.COBWEB, 5);
17+
}
18+
19+
@Override
20+
public int getPrice() {
21+
return 200;
22+
}
23+
24+
@Override
25+
public int getRequiredLevel() {
26+
return 0;
27+
}
28+
29+
@Override
30+
public String getName() {
31+
return "§aクモの巣";
32+
}
33+
34+
@Override
35+
public char getSlotChar() {
36+
return 'c';
37+
}
38+
}

src/main/java/com/github/elic0de/thejpspit/spigot/item/items/ItemDiamondBoots.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,9 @@ public int getRequiredLevel() {
3131
public String getName() {
3232
return "§aダイヤモンドの靴";
3333
}
34+
35+
@Override
36+
public char getSlotChar() {
37+
return 'B';
38+
}
3439
}

src/main/java/com/github/elic0de/thejpspit/spigot/item/items/ItemDiamondChestPlate.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,9 @@ public int getRequiredLevel() {
3131
public String getName() {
3232
return "§aダイヤのチェストプレート";
3333
}
34+
35+
@Override
36+
public char getSlotChar() {
37+
return 'C';
38+
}
3439
}

src/main/java/com/github/elic0de/thejpspit/spigot/item/items/ItemDiamondSword.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,9 @@ public int getRequiredLevel() {
3131
public String getName() {
3232
return "§aダイヤ剣";
3333
}
34+
35+
@Override
36+
public char getSlotChar() {
37+
return 'S';
38+
}
3439
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package com.github.elic0de.thejpspit.spigot.item.items;
2+
3+
import com.github.elic0de.thejpspit.spigot.item.PitItemEntry;
4+
import com.github.elic0de.thejpspit.spigot.util.ItemUtil;
5+
import org.bukkit.Material;
6+
import org.bukkit.inventory.ItemStack;
7+
8+
public class ItemFishingRod extends PitItemEntry {
9+
10+
@Override
11+
public String getId() {
12+
return "fishing_rod";
13+
}
14+
15+
@Override
16+
public ItemStack getRawItemStack() {
17+
return ItemUtil.withUnbreakable(new ItemStack(Material.FISHING_ROD));
18+
}
19+
20+
@Override
21+
public int getPrice() {
22+
return 200;
23+
}
24+
25+
@Override
26+
public int getRequiredLevel() {
27+
return 0;
28+
}
29+
30+
@Override
31+
public String getName() {
32+
return "§a釣り竿";
33+
}
34+
35+
@Override
36+
public char getSlotChar() {
37+
return 'f';
38+
}
39+
}

src/main/java/com/github/elic0de/thejpspit/spigot/item/items/ItemObsidian.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public ItemStack getRawItemStack() {
1818

1919
@Override
2020
public int getPrice() {
21-
return 3000;
21+
return 50;
2222
}
2323

2424
@Override
@@ -30,4 +30,9 @@ public int getRequiredLevel() {
3030
public String getName() {
3131
return "§a黒曜石 §fx10";
3232
}
33+
34+
@Override
35+
public char getSlotChar() {
36+
return 'o';
37+
}
3338
}

0 commit comments

Comments
 (0)