Skip to content

Commit 9d62d48

Browse files
committed
[update] WIP
1 parent 95a460b commit 9d62d48

File tree

8 files changed

+62
-26
lines changed

8 files changed

+62
-26
lines changed

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

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.github.elic0de.thejpspit.item.PitItem;
77
import com.github.elic0de.thejpspit.player.PitPlayer;
88
import com.github.elic0de.thejpspit.player.PitPlayerManager;
9+
import de.themoep.inventorygui.DynamicGuiElement;
910
import de.themoep.inventorygui.InventoryGui;
1011
import de.themoep.inventorygui.StaticGuiElement;
1112
import org.bukkit.entity.Player;
@@ -35,31 +36,35 @@ public static ShopMenu create(TheJpsPit plugin, String title) {
3536
return new ShopMenu(plugin, title);
3637
}
3738

38-
private StaticGuiElement getItemElement(char slotChar, PitItem pitItem) {
39-
return new StaticGuiElement(slotChar, pitItem.getShopItem(), click -> {
40-
if (click.getWhoClicked() instanceof Player) return true;
41-
if (TheJpsPit.getInstance().getEconomyHook().isEmpty()) return true;
39+
private DynamicGuiElement getItemElement(char slotChar, PitItem pitItem) {
40+
return new DynamicGuiElement(slotChar, (viewer) -> {
41+
final PitPlayer pitPlayer = PitPlayerManager.getPitPlayer((Player) viewer);
42+
return new StaticGuiElement(slotChar, pitItem.getShopItem(), click -> {
43+
if (TheJpsPit.getInstance().getEconomyHook().isEmpty()) {
44+
TheJpsPit.getInstance().getLogger().warning("経済プラグインが見つかりませんでした");
45+
return true;
46+
}
4247

43-
final Player player = (Player) click.getWhoClicked();
44-
final PitPlayer pitPlayer = PitPlayerManager.getPitPlayer(player);
45-
final Inventory inventory = player.getInventory();
46-
final EconomyHook economyHook = TheJpsPit.getInstance().getEconomyHook().get();
48+
final Player player = pitPlayer.getPlayer();
49+
final Inventory inventory = player.getInventory();
50+
final EconomyHook economyHook = TheJpsPit.getInstance().getEconomyHook().get();
4751

48-
if (!economyHook.hasMoney(pitPlayer, BigDecimal.valueOf(pitItem.getPrice()))) {
49-
player.sendMessage("&c【PIT】所持金が足りません!");
50-
return true;
51-
}
52+
if (!economyHook.hasMoney(pitPlayer, BigDecimal.valueOf(pitItem.getPrice()))) {
53+
pitPlayer.sendMessage("&c【PIT】所持金が足りません!");
54+
return true;
55+
}
5256

53-
if (inventory.firstEmpty() == -1) {
54-
player.sendMessage("&c【PIT】インベントリが満杯で購入できません!");
55-
return true;
56-
}
57+
if (inventory.firstEmpty() == -1) {
58+
pitPlayer.sendMessage("&c【PIT】インベントリが満杯で購入できません!");
59+
return true;
60+
}
5761

58-
economyHook.takeMoney(pitPlayer, BigDecimal.valueOf(pitItem.getPrice()));
59-
inventory.addItem(pitItem.getItemStack());
60-
player.updateInventory();
62+
economyHook.takeMoney(pitPlayer, BigDecimal.valueOf(pitItem.getPrice()));
63+
inventory.addItem(pitItem.getItemStack());
64+
player.updateInventory();
6165

62-
return true;
66+
return true;
67+
}, pitItem.getLore());
6368
});
6469
}
6570

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package com.github.elic0de.thejpspit.item;
22

3+
import org.bukkit.inventory.ItemFlag;
34
import org.bukkit.inventory.ItemStack;
45
import org.bukkit.inventory.meta.ItemMeta;
56

6-
import java.util.Arrays;
77
import java.util.Objects;
88

99
public abstract class PitItem {
@@ -16,14 +16,23 @@ public abstract class PitItem {
1616

1717
public abstract int getRequiredLevel();
1818

19+
public abstract String getName();
20+
1921
public ItemStack getShopItem() {
2022
ItemStack item = getItemStack().clone();
2123
ItemMeta itemMeta = Objects.requireNonNull(item.getItemMeta());
22-
itemMeta.setLore(Arrays.asList(
23-
String.format("必要レベル: §e%d", getRequiredLevel()),
24-
String.format("値段: §e%d", getPrice())
25-
));
24+
itemMeta.addItemFlags(ItemFlag.HIDE_UNBREAKABLE);
25+
itemMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
26+
itemMeta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
2627
item.setItemMeta(itemMeta);
2728
return item;
2829
}
30+
31+
public String[] getLore() {
32+
return new String[]{
33+
getName(),
34+
String.format("§f必要レベル: §e%d", getRequiredLevel()),
35+
String.format("§f値段: §e%d", getPrice())
36+
};
37+
}
2938
}

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,9 @@ public int getPrice() {
2525
public int getRequiredLevel() {
2626
return 0;
2727
}
28+
29+
@Override
30+
public String getName() {
31+
return "§aダイヤモンドの靴";
32+
}
2833
}

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,9 @@ public int getPrice() {
2525
public int getRequiredLevel() {
2626
return 0;
2727
}
28+
29+
@Override
30+
public String getName() {
31+
return "§aダイヤのチェストプレート";
32+
}
2833
}

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,9 @@ public int getPrice() {
2626
public int getRequiredLevel() {
2727
return 0;
2828
}
29+
30+
@Override
31+
public String getName() {
32+
return "§aダイヤ剣";
33+
}
2934
}

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,9 @@ public int getPrice() {
2525
public int getRequiredLevel() {
2626
return 0;
2727
}
28+
29+
@Override
30+
public String getName() {
31+
return "§a黒曜石 §fx10";
32+
}
2833
}

src/main/java/com/github/elic0de/thejpspit/villager/VillagerNPC.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ public Villager spawnAt(World world, Location location) {
2929
villager.setCustomNameVisible(true);
3030
villager.setCustomName(getName());
3131
villager.getPersistentDataContainer().set(npcIdKey, PersistentDataType.STRING, getId());
32+
villager.setAI(false);
33+
villager.setInvulnerable(true);
3234
return villager;
3335
}
3436

src/main/java/com/github/elic0de/thejpspit/villager/villagers/ShopVillager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public String getId() {
1414

1515
@Override
1616
public String getName() {
17-
return "&e&lショップ";
17+
return "§e§lショップ";
1818
}
1919

2020
@Override

0 commit comments

Comments
 (0)