This commit is contained in:
okx-code
2024-11-18 00:48:59 +00:00
parent 5b9d00b430
commit 1ad4e0c6e5
3 changed files with 18 additions and 96 deletions

View File

@@ -1,5 +1,9 @@
package net.civmc.heliodor;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.function.Supplier;
import net.civmc.heliodor.backpack.BackpackListener;
import net.civmc.heliodor.command.HeliodorDebugCommand;
import net.civmc.heliodor.heliodor.PickaxeBreakListener;
@@ -8,12 +12,12 @@ import net.civmc.heliodor.heliodor.infusion.InfusionManager;
import net.civmc.heliodor.heliodor.infusion.chunkmeta.CauldronDao;
import net.civmc.heliodor.heliodor.infusion.chunkmeta.CauldronInfuseData;
import net.civmc.heliodor.heliodor.infusion.chunkmeta.CauldronInfusion;
import net.civmc.heliodor.vein.data.MeteoricIronVeinConfig;
import net.civmc.heliodor.vein.OrePredicate;
import net.civmc.heliodor.vein.SqlVeinDao;
import net.civmc.heliodor.vein.VeinCache;
import net.civmc.heliodor.vein.data.VeinConfig;
import net.civmc.heliodor.vein.VeinSpawner;
import net.civmc.heliodor.vein.data.MeteoricIronVeinConfig;
import net.civmc.heliodor.vein.data.VeinConfig;
import net.civmc.heliodor.vein.data.VerticalBlockPos;
import net.civmc.heliodor.vein.listener.OreBreakListener;
import net.civmc.heliodor.vein.listener.VeinBreakListener;
@@ -28,11 +32,6 @@ import vg.civcraft.mc.civmodcore.world.locations.chunkmeta.api.ChunkMetaAPI;
import vg.civcraft.mc.civmodcore.world.locations.chunkmeta.block.table.TableBasedDataObject;
import vg.civcraft.mc.civmodcore.world.locations.chunkmeta.block.table.TableStorageEngine;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.function.Supplier;
public class HeliodorPlugin extends ACivMod {
private ManagedDatasource database;

View File

@@ -1,83 +0,0 @@
package net.civmc.heliodor.meteoriciron;
import javax.annotation.Nullable;
import net.minecraft.core.HolderLookup;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.crafting.CraftingBookCategory;
import net.minecraft.world.item.crafting.CraftingInput;
import net.minecraft.world.item.crafting.CustomRecipe;
import net.minecraft.world.item.crafting.RecipeSerializer;
import net.minecraft.world.item.crafting.SimpleCraftingRecipeSerializer;
import net.minecraft.world.level.Level;
import org.bukkit.NamespacedKey;
import org.bukkit.craftbukkit.inventory.CraftItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import vg.civcraft.mc.civmodcore.inventory.CustomItem;
public class BindRecipe extends CustomRecipe {
private final static RecipeSerializer<BindRecipe> SERIALIZER = RecipeSerializer.register("crafting_special_allow_bind", new SimpleCraftingRecipeSerializer<>(BindRecipe::new));
public BindRecipe(CraftingBookCategory category) {
super(category);
}
@Nullable
private ItemStack getTool(CraftingInput input) {
ItemStack tool = null;
ItemStack nugget = null;
for (int i = 0; i < input.size(); i++) {
ItemStack test = input.getItem(i);
if (!test.isEmpty()) {
if (CustomItem.isCustomItem(test.getBukkitStack(), "meteoric_iron_nugget") && test.getCount() == 1) {
if (nugget == null) {
nugget = test;
} else {
return null;
}
} else if (test.getBukkitStack().getPersistentDataContainer().has(new NamespacedKey("simpleadminhacks", "no_bind")) &&
test.getBukkitStack().getPersistentDataContainer().has(new NamespacedKey("heliodor", "meteoric_unbindable"))) {
if (tool == null) {
tool = test;
} else {
return null;
}
} else {
return null;
}
}
}
return tool != null && nugget != null ? tool : null;
}
@Override
public boolean matches(CraftingInput input, Level world) {
return this.getTool(input) != null;
}
@Override
public ItemStack assemble(CraftingInput input, HolderLookup.Provider lookup) {
ItemStack tool = this.getTool(input);
if (tool == null) {
return ItemStack.EMPTY;
} else {
org.bukkit.inventory.ItemStack copy = tool.asBukkitCopy();
ItemMeta meta = copy.getItemMeta();
meta.getPersistentDataContainer().remove(new NamespacedKey("heliodor", "meteoric_unbindable"));
meta.getPersistentDataContainer().remove(new NamespacedKey("simpleadminhacks", "no_bind"));
copy.setItemMeta(meta);
return ((CraftItemStack) copy).handle;
}
}
@Override
public boolean canCraftInDimensions(int width, int height) {
return width * height >= 2;
}
@Override
public RecipeSerializer<?> getSerializer() {
return SERIALIZER;
}
}

View File

@@ -12,13 +12,11 @@ import org.bukkit.Material;
import org.bukkit.NamespacedKey;
import org.bukkit.attribute.Attribute;
import org.bukkit.attribute.AttributeModifier;
import org.bukkit.craftbukkit.inventory.CraftComplexRecipe;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.inventory.CraftingRecipe;
import org.bukkit.inventory.EquipmentSlotGroup;
import org.bukkit.inventory.ItemRarity;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.Recipe;
import org.bukkit.inventory.ShapedRecipe;
import org.bukkit.inventory.meta.Damageable;
import org.bukkit.inventory.meta.ItemMeta;
@@ -53,7 +51,9 @@ public interface MeteoricIronArmour {
meta.getPersistentDataContainer().set(new NamespacedKey("heliodor", "meteoric_bindable"), PersistentDataType.BOOLEAN, true);
}
item.setItemMeta(meta);
CustomItem.registerCustomItem(bind ? "meteoric_iron_helmet_bound" : "meteoric_iron_helmet", item);
if (!bind) {
CustomItem.registerCustomItem("meteoric_iron_helmet", item);
}
return item;
}
@@ -75,7 +75,9 @@ public interface MeteoricIronArmour {
meta.getPersistentDataContainer().set(new NamespacedKey("heliodor", "meteoric_bindable"), PersistentDataType.BOOLEAN, true);
}
item.setItemMeta(meta);
CustomItem.registerCustomItem(bind ? "meteoric_iron_chestplate_bound" : "meteoric_iron_chestplate", item);
if (!bind) {
CustomItem.registerCustomItem("meteoric_iron_chestplate", item);
}
return item;
}
@@ -98,7 +100,9 @@ public interface MeteoricIronArmour {
meta.getPersistentDataContainer().set(new NamespacedKey("heliodor", "meteoric_bindable"), PersistentDataType.BOOLEAN, true);
}
item.setItemMeta(meta);
CustomItem.registerCustomItem(bind ? "meteoric_iron_leggings_bound" : "meteoric_iron_leggings", item);
if (!bind) {
CustomItem.registerCustomItem("meteoric_iron_leggings", item);
}
return item;
}
@@ -122,7 +126,9 @@ public interface MeteoricIronArmour {
meta.getPersistentDataContainer().set(new NamespacedKey("heliodor", "meteoric_bindable"), PersistentDataType.BOOLEAN, true);
}
item.setItemMeta(meta);
CustomItem.registerCustomItem(bind ? "meteoric_iron_boots_bound" : "meteoric_iron_boots", item);
if (!bind) {
CustomItem.registerCustomItem("meteoric_iron_boots", item);
}
return item;
}