Skip to content

Commit

Permalink
⚡ Update 1.0.1
Browse files Browse the repository at this point in the history
  • Loading branch information
tererun committed Aug 14, 2023
1 parent de659c7 commit 45b7f89
Show file tree
Hide file tree
Showing 6 changed files with 57 additions and 53 deletions.
14 changes: 7 additions & 7 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@

<groupId>run.tere.plugin</groupId>
<artifactId>MineBoss</artifactId>
<version>Patch-1.0.0</version>
<version>1.0.1</version>
<packaging>jar</packaging>

<name>MineBoss</name>

<description>MineBoss</description>
<properties>
<java.version>1.8</java.version>
<java.version>17</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

Expand All @@ -31,7 +31,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
<version>3.4.1</version>
<executions>
<execution>
<phase>package</phase>
Expand Down Expand Up @@ -72,19 +72,19 @@
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.16.5-R0.1-SNAPSHOT</version>
<version>1.19.3-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.github.MilkBowl</groupId>
<artifactId>VaultAPI</artifactId>
<version>1.7</version>
<version>1.7.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.github.tererun</groupId>
<artifactId>CustomInventory</artifactId>
<version>ebc017b6e9</version>
<artifactId>InventoryBuilder</artifactId>
<version>7e96ba2044</version>
</dependency>
</dependencies>
</project>
6 changes: 4 additions & 2 deletions src/main/java/run/tere/plugin/mineboss/MineBoss.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import org.bukkit.inventory.ShapedRecipe;
import org.bukkit.plugin.RegisteredServiceProvider;
import org.bukkit.plugin.java.JavaPlugin;
import run.tere.framework.InventoryBuilderProvider;
import run.tere.plugin.mineboss.commands.MineBossCommand;
import run.tere.plugin.mineboss.configs.ConfigHandler;
import run.tere.plugin.mineboss.handlers.MineBossHandler;
Expand Down Expand Up @@ -38,6 +39,7 @@ public void onEnable() {
this.registerRecipes();
getServer().getPluginManager().registerEvents(new MineBossListener(), this);
getCommand("mineboss").setExecutor(new MineBossCommand());
InventoryBuilderProvider.register(plugin);
}

private boolean setupEconomy() {
Expand All @@ -53,13 +55,13 @@ private boolean setupEconomy() {
}

private void registerRecipes() {
ShapedRecipe shapedRecipe = new ShapedRecipe(new NamespacedKey(plugin, "mb_spawn_dragon_egg"), ItemStackUtil.getSpawnDragonEgg());
ShapedRecipe shapedRecipe = new ShapedRecipe(new NamespacedKey(plugin, "mb_spawn_dragon_egg"), ItemStackUtil.createSpawnDragonEgg());
shapedRecipe.shape(
"GCG",
"CGC",
"GCG"
);
shapedRecipe.setIngredient('G', new RecipeChoice.ExactChoice(ItemStackUtil.getRevivalPowder()));
shapedRecipe.setIngredient('G', new RecipeChoice.ExactChoice(ItemStackUtil.createRevivalPowder()));
shapedRecipe.setIngredient('C', Material.END_CRYSTAL);
Bukkit.addRecipe(shapedRecipe);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package run.tere.plugin.mineboss.listeners;

import io.github.bananapuncher714.nbteditor.NBTEditor;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.World;
Expand All @@ -15,6 +14,7 @@
import run.tere.plugin.mineboss.MineBoss;
import run.tere.plugin.mineboss.schedulers.MineBossSpawnScheduler;
import run.tere.plugin.mineboss.utils.ChatUtil;
import run.tere.plugin.mineboss.utils.ItemStackUtil;

public class MineBossListener implements Listener {
@EventHandler
Expand Down Expand Up @@ -44,7 +44,7 @@ public void onBlockPlace(BlockPlaceEvent e) {
Block block = e.getBlockPlaced();
Location blockLocation = block.getLocation();
World blockWorld = block.getWorld();
if (handItem.getType().equals(Material.DRAGON_EGG) && NBTEditor.contains(handItem, "MineBossItem") && NBTEditor.getString(handItem, "MineBossItem").equalsIgnoreCase("SpawnDragonEgg")) {
if (ItemStackUtil.getMineBossItemKey(handItem).equalsIgnoreCase("SpawnDragonEgg")) {
if (!blockWorld.getEnvironment().equals(World.Environment.THE_END)) {
ChatUtil.sendMessage(player, "§c§oこのたまごはエンドでのみ置けるようだ。");
e.setCancelled(true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public class ShopHandler {

static {
shopItems = new ArrayList<>();
shopItems.add(new ShopItem("RevivalPowder", ItemStackUtil.getRevivalPowder(), 5000));
shopItems.add(new ShopItem("RevivalPowder", ItemStackUtil.createRevivalPowder(), 5000));
}

public ShopHandler() {
Expand Down
49 changes: 19 additions & 30 deletions src/main/java/run/tere/plugin/mineboss/shops/ShopInventory.java
Original file line number Diff line number Diff line change
@@ -1,46 +1,35 @@
package run.tere.plugin.mineboss.shops;

import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import run.tere.api.custominventory.consts.CustomInventory;
import run.tere.api.custominventory.consts.CustomInventoryHolder;
import run.tere.api.custominventory.consts.clicks.CustomItemClickEvent;
import run.tere.api.custominventory.consts.clicks.CustomItemClickTag;
import run.tere.api.custominventory.consts.patterns.CustomItemContents;
import run.tere.api.custominventory.consts.patterns.CustomItemPattern;
import run.tere.api.custominventory.listeners.CustomInventoryListener;
import run.tere.framework.InventoryBuilder;
import run.tere.framework.models.ClickInventoryItem;
import run.tere.framework.models.InventoryItem;
import run.tere.framework.models.ItemRow;
import run.tere.plugin.mineboss.MineBoss;
import run.tere.plugin.mineboss.utils.ItemStackUtil;

import java.util.Collections;

public class ShopInventory {

public ShopInventory() {
Bukkit.getPluginManager().registerEvents(new CustomInventoryListener(), MineBoss.getPlugin());
}

public Inventory createInventory() {
CustomInventoryHolder customInventoryHolder = new CustomInventoryHolder(
new CustomInventory("§7MineBoss Shop", 27),
new CustomItemClickEvent(
new CustomItemClickTag("RevivalPowder", true, inventoryClickEvent -> {
Player player = (Player) inventoryClickEvent.getWhoClicked();
MineBoss.getPlugin().getShopHandler().buyItem(player, "RevivalPowder");
})
),
new CustomItemContents(
new CustomItemPattern('S', ItemStackUtil.getItemStack(Material.GRAY_STAINED_GLASS_PANE, 1, " ", Collections.singletonList(" "))),
new CustomItemPattern('E', ItemStackUtil.getItemStackDescribedPrice(ItemStackUtil.getRevivalPowder(), 5000)),
new CustomItemPattern('A', new ItemStack(Material.AIR))
),
"SSSSSSSSS",
"AEAAAAAAA",
"SSSSSSSSS"
);
return customInventoryHolder.getInventory();
return new InventoryBuilder("§7MineBoss Shop", 27)
.addRow(new ItemRow("SSSSSSSSS"))
.addRow(new ItemRow("AEAAAAAAA"))
.addRow(new ItemRow("SSSSSSSSS"))
.setItem('S', new InventoryItem(ItemStackUtil.createItemStack(Material.GRAY_STAINED_GLASS_PANE, 1, " ", null)))
.setItem('A', new InventoryItem(new ItemStack(Material.AIR)))
.setItem('E', new ClickInventoryItem(
ItemStackUtil.createItemStackDescribedPrice(ItemStackUtil.createRevivalPowder(), 5000),
e -> {
e.setCancelled(true);
Player player = (Player) e.getWhoClicked();
MineBoss.getPlugin().getShopHandler().buyItem(player, "RevivalPowder");
}
))
.build(MineBoss.getPlugin());
}
}
35 changes: 24 additions & 11 deletions src/main/java/run/tere/plugin/mineboss/utils/ItemStackUtil.java
Original file line number Diff line number Diff line change
@@ -1,18 +1,24 @@
package run.tere.plugin.mineboss.utils;

import io.github.bananapuncher714.nbteditor.NBTEditor;
import net.md_5.bungee.api.ChatColor;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.persistence.PersistentDataContainer;
import org.bukkit.persistence.PersistentDataType;
import run.tere.plugin.mineboss.MineBoss;

import java.awt.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ItemStackUtil {
public static ItemStack getItemStack(Material material, int amount, String displayName, List<String> lore) {

public static final NamespacedKey MINE_BOSS_ITEM_KEY = new NamespacedKey(MineBoss.getPlugin(), "MineBossItem");

public static ItemStack createItemStack(Material material, int amount, String displayName, List<String> lore) {
ItemStack itemStack = new ItemStack(material, amount);
ItemMeta itemMeta = itemStack.getItemMeta();
itemMeta.setDisplayName(displayName);
Expand All @@ -21,35 +27,42 @@ public static ItemStack getItemStack(Material material, int amount, String displ
return itemStack;
}

public static ItemStack getKeyedItemStack(Material material, int amount, String displayName, List<String> lore, String key) {
public static String getMineBossItemKey(ItemStack itemStack) {
if (itemStack == null) return null;
ItemMeta itemMeta = itemStack.getItemMeta();
PersistentDataContainer dataContainer = itemMeta.getPersistentDataContainer();
if (!dataContainer.has(MINE_BOSS_ITEM_KEY, PersistentDataType.STRING)) return null;
return dataContainer.get(MINE_BOSS_ITEM_KEY, PersistentDataType.STRING);
}

public static ItemStack createKeyedItemStack(Material material, int amount, String displayName, List<String> lore, String key) {
ItemStack itemStack = new ItemStack(material, amount);
ItemMeta itemMeta = itemStack.getItemMeta();
itemMeta.setDisplayName(displayName);
itemMeta.setLore(lore);
itemMeta.getPersistentDataContainer().set(MINE_BOSS_ITEM_KEY, PersistentDataType.STRING, key);
itemStack.setItemMeta(itemMeta);
itemStack = NBTEditor.set(itemStack, key, "MineBossItem");
return itemStack;
}

public static ItemStack getCustomItemStack(Material material, int amount, String displayName, List<String> lore, String key) {
public static ItemStack createCustomItemStack(Material material, int amount, String displayName, List<String> lore) {
ItemStack itemStack = new ItemStack(material, amount);
ItemMeta itemMeta = itemStack.getItemMeta();
itemMeta.setDisplayName(displayName);
itemMeta.setLore(lore);
itemStack.setItemMeta(itemMeta);
itemStack = NBTEditor.set(itemStack, key, "CustomItemClickEvent");
return itemStack;
}

public static ItemStack getRevivalPowder() {
return ItemStackUtil.getCustomItemStack(Material.GUNPOWDER, 1, "§eふっかつのもと", Arrays.asList(" §a§oクラフト素材", " §dエンダードラゴン§fなどの復活の材料"), "RevivalPowder");
public static ItemStack createRevivalPowder() {
return ItemStackUtil.createCustomItemStack(Material.GUNPOWDER, 1, "§eふっかつのもと", Arrays.asList(" §a§oクラフト素材", " §dエンダードラゴン§fなどの復活の材料"));
}

public static ItemStack getSpawnDragonEgg() {
return ItemStackUtil.getKeyedItemStack(Material.DRAGON_EGG, 1, "§e孵化しそうなドラゴンのたまご", Arrays.asList("§a今すぐにでも§f孵化しそうなたまご", "§bエンド§fでのみ孵化可能"), "SpawnDragonEgg");
public static ItemStack createSpawnDragonEgg() {
return ItemStackUtil.createKeyedItemStack(Material.DRAGON_EGG, 1, "§e孵化しそうなドラゴンのたまご", Arrays.asList("§a今すぐにでも§f孵化しそうなたまご", "§bエンド§fでのみ孵化可能"), "SpawnDragonEgg");
}

public static ItemStack getItemStackDescribedPrice(ItemStack itemStack, double price) {
public static ItemStack createItemStackDescribedPrice(ItemStack itemStack, double price) {
ItemStack changedItemStack = itemStack.clone();
ItemMeta itemMeta = changedItemStack.getItemMeta();
List<String> lore = new ArrayList<>(itemMeta.getLore());
Expand Down

0 comments on commit 45b7f89

Please sign in to comment.