fixed crafting advancement and crafting bug
This commit is contained in:
parent
224f4a9f1e
commit
e45bbfc07b
@ -73,7 +73,8 @@ public final class Main extends JavaPlugin {
|
|||||||
new PreventEntityPlacementListener(),
|
new PreventEntityPlacementListener(),
|
||||||
new DiscoverRecipesListener(),
|
new DiscoverRecipesListener(),
|
||||||
new QuitWhileInPixelBlockListener(),
|
new QuitWhileInPixelBlockListener(),
|
||||||
new PreventGrowthListener()
|
new PreventGrowthListener(),
|
||||||
|
new CraftPixelBlockListener()
|
||||||
};
|
};
|
||||||
|
|
||||||
for(Listener listener : listeners) {
|
for(Listener listener : listeners) {
|
||||||
|
@ -25,6 +25,7 @@ public class PixelBlockItem {
|
|||||||
public static final NamespacedKey recipeKey = new NamespacedKey(Main.plugin(), "pixelblock");
|
public static final NamespacedKey recipeKey = new NamespacedKey(Main.plugin(), "pixelblock");
|
||||||
public static NamespacedKey idProperty = new NamespacedKey(Main.plugin(), "id");
|
public static NamespacedKey idProperty = new NamespacedKey(Main.plugin(), "id");
|
||||||
public static NamespacedKey ownerProperty = new NamespacedKey(Main.plugin(), "owner");
|
public static NamespacedKey ownerProperty = new NamespacedKey(Main.plugin(), "owner");
|
||||||
|
public static UUID emptyBlockUUID = UUID.fromString("98fdf0ae-c3ab-4ef7-ae25-efd518d600de");
|
||||||
|
|
||||||
public static final String itemTexture = "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQ" +
|
public static final String itemTexture = "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQ" +
|
||||||
"ubmV0L3RleHR1cmUvYzE5NGU5ZTc3NTdkMDZkNmY1ZTViZTg0NTQ4YTdjYjUyMTczZDY4Y2NmODAyZDIxMTI3NWQzMWNkYmEwYTA2ZSJ9fX0=";
|
"ubmV0L3RleHR1cmUvYzE5NGU5ZTc3NTdkMDZkNmY1ZTViZTg0NTQ4YTdjYjUyMTczZDY4Y2NmODAyZDIxMTI3NWQzMWNkYmEwYTA2ZSJ9fX0=";
|
||||||
@ -68,12 +69,13 @@ public class PixelBlockItem {
|
|||||||
ItemStack item = HeadUtil.getCustomTextureHead(itemTexture);
|
ItemStack item = HeadUtil.getCustomTextureHead(itemTexture);
|
||||||
ItemMeta meta = item.getItemMeta();
|
ItemMeta meta = item.getItemMeta();
|
||||||
meta.setMaxStackSize(1);
|
meta.setMaxStackSize(1);
|
||||||
|
meta.itemName(Component.text(emptyBlockUUID.toString()));
|
||||||
meta.displayName(Component.text("Leerer Pixelblock"));
|
meta.displayName(Component.text("Leerer Pixelblock"));
|
||||||
meta.lore(List.of(
|
meta.lore(List.of(
|
||||||
Component.text("Der erste Spieler, der den Block platziert wird zum Besitzer des Blocks."),
|
Component.text("Der erste Spieler, der den Block platziert wird zum Besitzer des Blocks."),
|
||||||
Component.text("Klicke auf den gesetzten Block, um diesen zu bearbeiten!")
|
Component.text("Klicke auf den gesetzten Block, um diesen zu bearbeiten!")
|
||||||
));
|
));
|
||||||
meta.getPersistentDataContainer().set(idProperty, PersistentDataType.STRING, UUID.randomUUID().toString());
|
meta.getPersistentDataContainer().set(idProperty, PersistentDataType.STRING, emptyBlockUUID.toString());
|
||||||
item.setItemMeta(meta);
|
item.setItemMeta(meta);
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,30 @@
|
|||||||
|
package eu.mhsl.minecraft.pixelblocks.listeners;
|
||||||
|
|
||||||
|
import eu.mhsl.minecraft.pixelblocks.PixelBlockItem;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.inventory.CraftItemEvent;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
import org.bukkit.persistence.PersistentDataContainer;
|
||||||
|
import org.bukkit.persistence.PersistentDataType;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class CraftPixelBlockListener implements Listener {
|
||||||
|
@EventHandler
|
||||||
|
public void onCraft(CraftItemEvent event) {
|
||||||
|
ItemStack result = event.getInventory().getResult();
|
||||||
|
if(result == null) return;
|
||||||
|
ItemMeta itemMeta = result.getItemMeta();
|
||||||
|
PersistentDataContainer dataContainer = itemMeta.getPersistentDataContainer();
|
||||||
|
if(!dataContainer.has(PixelBlockItem.idProperty)) return;
|
||||||
|
String currentId = dataContainer.get(PixelBlockItem.idProperty, PersistentDataType.STRING);
|
||||||
|
Objects.requireNonNull(currentId);
|
||||||
|
if(!UUID.fromString(currentId).equals(PixelBlockItem.emptyBlockUUID)) return;
|
||||||
|
|
||||||
|
dataContainer.set(PixelBlockItem.idProperty, PersistentDataType.STRING, UUID.randomUUID().toString());
|
||||||
|
result.setItemMeta(itemMeta);
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user