Skip to content

Commit 4c416aa

Browse files
authored
Enderium class update
1 parent 68a7e93 commit 4c416aa

File tree

6 files changed

+405
-13
lines changed

6 files changed

+405
-13
lines changed

src/main/java/me/gleep/oreganized/blocks/MoltenLeadBlock.java

+8-7
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ public class MoltenLeadBlock extends Block implements BucketPickup {
4040
public MoltenLeadBlock() {
4141
super(BlockBehaviour.Properties.of(Material.LAVA)
4242
.strength(-1.0F, 3600000.0F)
43-
.noCollission()
4443
.noDrops()
4544
.requiresCorrectToolForDrops());
4645
}
@@ -117,16 +116,18 @@ public VoxelShape getCollisionShape(BlockState p_60572_, BlockGetter p_60573_, B
117116
if (item.getItem().equals(Items.IRON_BOOTS)) return Shapes.block();
118117
}
119118
}
120-
//if (!p_60575_.isDescending()) return Shapes.block();
121119
return Shapes.empty();
122120
}
123-
121+
122+
@Override
123+
public FluidState getFluidState(BlockState p_60577_) {
124+
return RegistryHandler.LEAD_FLUID.get().defaultFluidState();
125+
}
126+
124127
@Override
125128
public VoxelShape getShape(BlockState p_60555_, BlockGetter p_60556_, BlockPos p_60557_, CollisionContext p_60558_) {
126-
return p_60558_.isHoldingItem(Items.BUCKET)
127-
|| p_60558_.isHoldingItem(RegistryHandler.MOLTEN_LEAD_BUCKET.get())
128-
|| !p_60558_.isDescending() ? Shapes.block() : Shapes.empty();
129-
//return Shapes.block();
129+
//return p_60558_.isHoldingItem(Items.BUCKET) || p_60558_.isHoldingItem(RegistryHandler.MOLTEN_LEAD_BUCKET.get()) ? Shapes.block() : Shapes.empty();
130+
return Shapes.empty();
130131
}
131132

132133
/*@Override

src/main/java/me/gleep/oreganized/blocks/SilverBlock.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import java.util.Random;
2323

2424
public class SilverBlock extends Block {
25-
public static final IntegerProperty AGE = BlockStateProperties.AGE_3;
25+
public static final IntegerProperty LEVEL = BlockStateProperties.AGE_3;
2626
public static final float RANGE = 16.0f;
2727
boolean isUndeadNearby = false;
2828

@@ -31,7 +31,7 @@ public SilverBlock() {
3131
.strength(5.0f, 6.0f)
3232
.requiresCorrectToolForDrops()
3333
.sound(SoundType.METAL));
34-
this.registerDefaultState(this.getStateDefinition().any().setValue(AGE, 3));
34+
this.registerDefaultState(this.getStateDefinition().any().setValue(LEVEL, 3));
3535
}
3636

3737
/**
@@ -51,7 +51,7 @@ public BlockPathTypes getAiPathNodeType(BlockState state, BlockGetter world, Blo
5151

5252
@Override
5353
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> p_49915_) {
54-
p_49915_.add(AGE);
54+
p_49915_.add(LEVEL);
5555
}
5656

5757
@Override
@@ -83,6 +83,6 @@ public void animateTick(BlockState p_49888_, Level p_49889_, BlockPos p_49890_,
8383
if (!isUndeadNearby) {
8484
dist = 4;
8585
}
86-
p_49889_.setBlockAndUpdate(p_49890_, p_49888_.setValue(AGE, dist - 1));
86+
p_49889_.setBlockAndUpdate(p_49890_, p_49888_.setValue(LEVEL, dist - 1));
8787
}
8888
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,190 @@
1+
package me.gleep.oreganized.datagen;
2+
3+
import com.google.common.collect.ImmutableList;
4+
import com.mojang.datafixers.util.Pair;
5+
import me.gleep.oreganized.Oreganized;
6+
import me.gleep.oreganized.util.RegistryHandler;
7+
import net.minecraft.core.Registry;
8+
import net.minecraft.data.DataGenerator;
9+
import net.minecraft.data.loot.BlockLoot;
10+
import net.minecraft.data.loot.LootTableProvider;
11+
import net.minecraft.data.recipes.*;
12+
import net.minecraft.data.tags.BlockTagsProvider;
13+
import net.minecraft.resources.ResourceLocation;
14+
import net.minecraft.tags.BlockTags;
15+
import net.minecraft.world.item.crafting.Ingredient;
16+
import net.minecraft.world.item.crafting.RecipeSerializer;
17+
import net.minecraft.world.item.crafting.SimpleCookingSerializer;
18+
import net.minecraft.world.level.ItemLike;
19+
import net.minecraft.world.level.block.Block;
20+
import net.minecraft.world.level.storage.loot.LootTable;
21+
import net.minecraft.world.level.storage.loot.LootTables;
22+
import net.minecraft.world.level.storage.loot.ValidationContext;
23+
import net.minecraft.world.level.storage.loot.parameters.LootContextParamSet;
24+
import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets;
25+
import net.minecraftforge.client.model.generators.BlockStateProvider;
26+
import net.minecraftforge.client.model.generators.ItemModelProvider;
27+
import net.minecraftforge.eventbus.api.SubscribeEvent;
28+
import net.minecraftforge.fml.common.Mod;
29+
import net.minecraftforge.forge.event.lifecycle.GatherDataEvent;
30+
31+
import javax.annotation.Nullable;
32+
import java.util.List;
33+
import java.util.Map;
34+
import java.util.function.BiConsumer;
35+
import java.util.function.Consumer;
36+
import java.util.function.Supplier;
37+
38+
@Mod.EventBusSubscriber(modid = Oreganized.MOD_ID,bus = Mod.EventBusSubscriber.Bus.MOD)
39+
public class Datagen {
40+
41+
@SubscribeEvent
42+
public static void genData(GatherDataEvent event){
43+
if(event.includeServer()) {
44+
event.getGenerator().addProvider(new LootTableProvider(event.getGenerator()) {
45+
@Override
46+
protected List<Pair<Supplier<Consumer<BiConsumer<ResourceLocation, LootTable.Builder>>>, LootContextParamSet>> getTables() {
47+
return ImmutableList.of(Pair.of(ModBlockLoot::new, LootContextParamSets.BLOCK));
48+
}
49+
50+
@Override
51+
protected void validate(Map<ResourceLocation, LootTable> map, ValidationContext validationtracker) {
52+
map.forEach((p_218436_2_, p_218436_3_) -> {
53+
LootTables.validate(validationtracker, p_218436_2_, p_218436_3_);
54+
});
55+
}
56+
});
57+
//tags
58+
event.getGenerator().addProvider(new BlockTagsProvider(event.getGenerator(),Oreganized.MOD_ID, event.getExistingFileHelper()){
59+
@Override
60+
protected void addTags() {
61+
this.tag(BlockTags.MINEABLE_WITH_PICKAXE).add(RegistryHandler.LEAD_RAW_BLOCK.get(),RegistryHandler.LEAD_GRIMSTONE_ORE.get(),
62+
RegistryHandler.SILVER_RAW_BLOCK.get(),RegistryHandler.SILVER_GRIMSTONE_ORE.get(),RegistryHandler.GLANCE.get(),
63+
RegistryHandler.GLANCE_SPOTTED.get(),RegistryHandler.SILVER_ORE.get(),RegistryHandler.LEAD_ORE.get(),
64+
RegistryHandler.BLASTED_IRON_BLOCK.get(),RegistryHandler.CAST_IRON_BLOCK.get(),RegistryHandler.CUT_LEAD_COATING.get(),
65+
RegistryHandler.LEAD_COATING.get(),RegistryHandler.LEAD_BLOCK.get(),RegistryHandler.LIGHTENED_IRON_BLOCK.get(),
66+
RegistryHandler.SILVER_BLOCK.get(),RegistryHandler.TECHNICAL_NETHERITE_BLOCK.get());
67+
this.tag(BlockTags.NEEDS_IRON_TOOL).add(RegistryHandler.SILVER_RAW_BLOCK.get(),RegistryHandler.SILVER_GRIMSTONE_ORE.get(),
68+
RegistryHandler.SILVER_ORE.get(),RegistryHandler.SILVER_BLOCK.get(),RegistryHandler.TECHNICAL_NETHERITE_BLOCK.get());
69+
this.tag(BlockTags.NEEDS_STONE_TOOL).add(RegistryHandler.LEAD_RAW_BLOCK.get(),RegistryHandler.LEAD_GRIMSTONE_ORE.get(),
70+
RegistryHandler.BLASTED_IRON_BLOCK.get(),RegistryHandler.CAST_IRON_BLOCK.get(),RegistryHandler.CUT_LEAD_COATING.get(),
71+
RegistryHandler.LEAD_COATING.get(),RegistryHandler.LIGHTENED_IRON_BLOCK.get(),RegistryHandler.LEAD_BLOCK.get(),
72+
RegistryHandler.LEAD_ORE.get());
73+
}
74+
});
75+
//blockstate
76+
event.getGenerator().addProvider(new BlockStateProvider(event.getGenerator(),Oreganized.MOD_ID, event.getExistingFileHelper()) {
77+
@Override
78+
protected void registerStatesAndModels() {
79+
//simpleBlock(RegistryHandler.LEAD_RAW_BLOCK.get());
80+
//simpleBlock(RegistryHandler.SILVER_RAW_BLOCK.get());
81+
simpleBlock(RegistryHandler.LEAD_GRIMSTONE_ORE.get());
82+
simpleBlock(RegistryHandler.SILVER_GRIMSTONE_ORE.get());
83+
simpleBlock(RegistryHandler.GLANCE.get());
84+
simpleBlock(RegistryHandler.GLANCE_SPOTTED.get());
85+
}
86+
});
87+
//items
88+
event.getGenerator().addProvider(new ItemModelProvider(event.getGenerator(), Oreganized.MOD_ID, event.getExistingFileHelper()) {
89+
@Override
90+
protected void registerModels() {
91+
withExistingParent(RegistryHandler.LEAD_GRIMSTONE_ORE_ITEM.get().getRegistryName().getPath(), new ResourceLocation(Oreganized.MOD_ID,"block/lead_grimstone_ore"));
92+
withExistingParent(RegistryHandler.SILVER_GRIMSTONE_ORE_ITEM.get().getRegistryName().getPath(), new ResourceLocation(Oreganized.MOD_ID,"block/silver_grimstone_ore"));
93+
withExistingParent(RegistryHandler.GLANCE_ITEM.get().getRegistryName().getPath(), new ResourceLocation(Oreganized.MOD_ID,"block/glance"));
94+
withExistingParent(RegistryHandler.GLANCE_SPOTTED_ITEM.get().getRegistryName().getPath(), new ResourceLocation(Oreganized.MOD_ID,"block/glance_spotted"));
95+
}
96+
});
97+
//recipes
98+
event.getGenerator().addProvider(new ModRecipeProvider(event.getGenerator()){
99+
@Override
100+
protected void buildCraftingRecipes(Consumer<FinishedRecipe> pFinishedRecipeConsumer) {
101+
nineBlockStorageRecipes(pFinishedRecipeConsumer, RegistryHandler.LEAD_RAW.get(), RegistryHandler.LEAD_RAW_BLOCK.get());
102+
nineBlockStorageRecipes(pFinishedRecipeConsumer, RegistryHandler.SILVER_RAW.get(), RegistryHandler.SILVER_RAW_BLOCK.get());
103+
104+
nineBlockStorageRecipes(pFinishedRecipeConsumer, RegistryHandler.LEAD_INGOT.get(), RegistryHandler.LEAD_BLOCK.get());
105+
106+
oreSmelting(pFinishedRecipeConsumer, ImmutableList.of(RegistryHandler.LEAD_RAW.get(),RegistryHandler.LEAD_ORE.get(),RegistryHandler.LEAD_GRIMSTONE_ORE.get()),RegistryHandler.LEAD_INGOT.get(),1F,200,"lead_ingot");
107+
oreBlasting(pFinishedRecipeConsumer, ImmutableList.of(RegistryHandler.LEAD_RAW.get(),RegistryHandler.LEAD_ORE.get(),RegistryHandler.LEAD_GRIMSTONE_ORE.get()),RegistryHandler.LEAD_INGOT.get(),1F,100,"lead_ingot");
108+
oreSmelting(pFinishedRecipeConsumer, ImmutableList.of(RegistryHandler.SILVER_RAW.get(),RegistryHandler.SILVER_ORE.get(),RegistryHandler.SILVER_GRIMSTONE_ORE.get()),RegistryHandler.SILVER_INGOT.get(),1F,200,"silver_ingot");
109+
oreBlasting(pFinishedRecipeConsumer, ImmutableList.of(RegistryHandler.SILVER_RAW.get(),RegistryHandler.SILVER_ORE.get(),RegistryHandler.SILVER_GRIMSTONE_ORE.get()),RegistryHandler.SILVER_INGOT.get(),1F,100,"silver_ingot");
110+
111+
112+
}
113+
});
114+
115+
}
116+
}
117+
118+
public static class ModBlockLoot extends BlockLoot {
119+
@Override
120+
protected void addTables() {
121+
this.add(RegistryHandler.LEAD_GRIMSTONE_ORE.get(), (i)->{
122+
return createOreDrop(i, RegistryHandler.LEAD_RAW.get());
123+
});
124+
this.add(RegistryHandler.SILVER_GRIMSTONE_ORE.get(), (i)->{
125+
return createOreDrop(i, RegistryHandler.SILVER_RAW.get());
126+
});
127+
this.add(RegistryHandler.LEAD_ORE.get(), (i)->{
128+
return createOreDrop(i, RegistryHandler.LEAD_RAW.get());
129+
});
130+
this.add(RegistryHandler.SILVER_ORE.get(), (i)->{
131+
return createOreDrop(i, RegistryHandler.SILVER_RAW.get());
132+
});
133+
this.dropSelf(RegistryHandler.GLANCE.get());
134+
this.dropSelf(RegistryHandler.GLANCE_SPOTTED.get());
135+
this.dropSelf(RegistryHandler.LEAD_RAW_BLOCK.get());
136+
this.dropSelf(RegistryHandler.SILVER_RAW_BLOCK.get());
137+
}
138+
139+
@Override
140+
protected Iterable<Block> getKnownBlocks() {
141+
return List.of(RegistryHandler.GLANCE.get(),RegistryHandler.GLANCE_SPOTTED.get(),RegistryHandler.LEAD_GRIMSTONE_ORE.get(),RegistryHandler.SILVER_GRIMSTONE_ORE.get(),
142+
RegistryHandler.LEAD_RAW_BLOCK.get(),RegistryHandler.SILVER_RAW_BLOCK.get(),RegistryHandler.LEAD_ORE.get(),RegistryHandler.SILVER_ORE.get());
143+
}
144+
}
145+
146+
public static class ModRecipeProvider extends RecipeProvider {
147+
148+
public ModRecipeProvider(DataGenerator pGenerator) {
149+
super(pGenerator);
150+
}
151+
152+
public static void oreSmelting(Consumer<FinishedRecipe> pFinishedRecipeConsumer, List<ItemLike> pIngredients, ItemLike pResult, float pExperience, int pCookingTime, String pRecipeName) {
153+
oreCooking(pFinishedRecipeConsumer, RecipeSerializer.SMELTING_RECIPE, pIngredients, pResult, pExperience, pCookingTime, pRecipeName, "_from_smelting");
154+
}
155+
156+
public static void oreBlasting(Consumer<FinishedRecipe> pFinishedRecipeConsumer, List<ItemLike> pIngredients, ItemLike pResult, float pExperience, int pCookingTime, String pRecipeName) {
157+
oreCooking(pFinishedRecipeConsumer, RecipeSerializer.BLASTING_RECIPE, pIngredients, pResult, pExperience, pCookingTime, pRecipeName, "_from_blasting");
158+
}
159+
160+
private static void oreCooking(Consumer<FinishedRecipe> pFinishedRecipeConsumer, SimpleCookingSerializer<?> pCookingSerializer, List<ItemLike> pIngredients, ItemLike pResult, float pExperience, int pCookingTime, String pGroup, String pRecipeName) {
161+
for(ItemLike itemlike : pIngredients) {
162+
SimpleCookingRecipeBuilder.cooking(Ingredient.of(itemlike), pResult, pExperience, pCookingTime, pCookingSerializer).group(pGroup).unlockedBy(getHasName(itemlike), has(itemlike)).save(pFinishedRecipeConsumer, getItemName(pResult) + pRecipeName + "_" + getItemName(itemlike));
163+
}
164+
165+
}
166+
167+
public static void nineBlockStorageRecipes(Consumer<FinishedRecipe> pFinishedRecipeConsumer, ItemLike pUnpacked, ItemLike pPacked) {
168+
nineBlockStorageRecipes(pFinishedRecipeConsumer, pUnpacked, pPacked, getSimpleRecipeName(pPacked), (String)null, getSimpleRecipeName(pUnpacked), (String)null);
169+
}
170+
171+
public static void nineBlockStorageRecipes(Consumer<FinishedRecipe> pFinishedRecipeConsumer, ItemLike pUnpacked, ItemLike pPacked, String pPackingRecipeName, @Nullable String pPackingRecipeGroup, String pUnpackingRecipeName, @Nullable String pUnpackingRecipeGroup) {
172+
ShapelessRecipeBuilder.shapeless(pUnpacked, 9).requires(pPacked).group(pUnpackingRecipeGroup).unlockedBy(getHasName(pPacked), has(pPacked)).save(pFinishedRecipeConsumer, new ResourceLocation(pUnpackingRecipeName));
173+
ShapedRecipeBuilder.shaped(pPacked).define('#', pUnpacked).pattern("###").pattern("###").pattern("###").group(pPackingRecipeGroup).unlockedBy(getHasName(pUnpacked), has(pUnpacked)).save(pFinishedRecipeConsumer, new ResourceLocation(pPackingRecipeName));
174+
}
175+
176+
public static String getHasName(ItemLike pItemLike) {
177+
return "has_" + getItemName(pItemLike);
178+
}
179+
180+
public static String getItemName(ItemLike pItemLike) {
181+
return Registry.ITEM.getKey(pItemLike.asItem()).getPath();
182+
}
183+
184+
public static String getSimpleRecipeName(ItemLike pItemLike) {
185+
return getItemName(pItemLike);
186+
}
187+
188+
}
189+
190+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
package me.gleep.oreganized.potion;
2+
3+
import me.gleep.oreganized.Oreganized;
4+
import net.minecraft.resources.ResourceLocation;
5+
import net.minecraft.tags.ItemTags;
6+
import net.minecraft.world.effect.MobEffect;
7+
import net.minecraft.world.effect.MobEffectCategory;
8+
import net.minecraft.world.effect.MobEffectInstance;
9+
import net.minecraft.world.effect.MobEffects;
10+
import net.minecraft.world.entity.LivingEntity;
11+
import net.minecraft.world.entity.ai.attributes.AttributeModifier;
12+
import net.minecraft.world.entity.ai.attributes.Attributes;
13+
import net.minecraft.world.item.ItemStack;
14+
import net.minecraft.world.item.Items;
15+
import net.minecraft.world.item.alchemy.Potion;
16+
import net.minecraft.world.item.alchemy.PotionUtils;
17+
import net.minecraft.world.item.alchemy.Potions;
18+
import net.minecraftforge.common.brewing.BrewingRecipeRegistry;
19+
import net.minecraftforge.common.brewing.IBrewingRecipe;
20+
import net.minecraftforge.event.RegistryEvent;
21+
import net.minecraftforge.eventbus.api.SubscribeEvent;
22+
import net.minecraftforge.fml.common.Mod;
23+
24+
@Mod.EventBusSubscriber(modid = Oreganized.MOD_ID,bus= Mod.EventBusSubscriber.Bus.MOD)
25+
public class ModPotions {
26+
27+
public static MobEffect STUNNED=new MobEffect(MobEffectCategory.HARMFUL,0x3B3B63){
28+
29+
}.addAttributeModifier(Attributes.MOVEMENT_SPEED,"e9c4f6d8-3385-49bd-b99d-43c78d35bf1a",-1.0F, AttributeModifier.Operation.MULTIPLY_TOTAL);
30+
31+
public static MobEffect STUNNING=new MobEffect(MobEffectCategory.HARMFUL,0x3B3B63){
32+
@Override
33+
public boolean isDurationEffectTick(int p_19455_, int p_19456_) {
34+
int k = 300 >> p_19456_;
35+
if (k > 0) {
36+
return p_19455_ % k == 0;
37+
} else {
38+
return true;
39+
}
40+
}
41+
42+
@Override
43+
public void applyEffectTick(LivingEntity p_19467_, int p_19468_) {
44+
p_19467_.addEffect(new MobEffectInstance(STUNNED,6*20));
45+
p_19467_.addEffect(new MobEffectInstance(MobEffects.JUMP,6*20,200));
46+
}
47+
};
48+
49+
public static Potion STUNNING_POTION=new Potion("stunning_potion",new MobEffectInstance(STUNNING,40*20));
50+
public static Potion STUNNING_POTION_LONG=new Potion("stunning_potion_long",new MobEffectInstance(STUNNING,80*20));
51+
public static Potion STUNNING_POTION_POTENT=new Potion("stunning_potion_potent",new MobEffectInstance(STUNNING,40*20,1));
52+
53+
54+
@SubscribeEvent
55+
public static void registerEffects(RegistryEvent.Register<MobEffect> event){
56+
event.getRegistry().registerAll(STUNNED.setRegistryName("stunned"),STUNNING.setRegistryName("stunning"));
57+
}
58+
59+
@SubscribeEvent
60+
public static void registerPotions(RegistryEvent.Register<Potion> event){
61+
event.getRegistry().registerAll(STUNNING_POTION.setRegistryName("stunning_potion"),STUNNING_POTION_LONG.setRegistryName("stunning_potion_long"),
62+
STUNNING_POTION_POTENT.setRegistryName("stunning_potion_potent"));
63+
BrewingRecipeRegistry.addRecipe(new IBrewingRecipe() {
64+
@Override
65+
public boolean isInput(ItemStack input) {
66+
return PotionUtils.getPotion(input)== Potions.WATER;
67+
}
68+
69+
@Override
70+
public boolean isIngredient(ItemStack ingredient) {
71+
return ItemTags.getAllTags().getTag(new ResourceLocation("forge","ingots/lead")).contains(ingredient.getItem());
72+
}
73+
74+
@Override
75+
public ItemStack getOutput(ItemStack input, ItemStack ingredient) {
76+
if(PotionUtils.getPotion(input)== Potions.WATER&&ItemTags.getAllTags().getTag(new ResourceLocation("forge","ingots/lead")).contains(ingredient.getItem())){
77+
ItemStack out=new ItemStack(Items.POTION);
78+
PotionUtils.setPotion(out,STUNNING_POTION);
79+
return out;
80+
}else
81+
return ItemStack.EMPTY;
82+
}
83+
});
84+
BrewingRecipeRegistry.addRecipe(new IBrewingRecipe() {
85+
@Override
86+
public boolean isInput(ItemStack input) {
87+
return PotionUtils.getPotion(input)== STUNNING_POTION;
88+
}
89+
90+
@Override
91+
public boolean isIngredient(ItemStack ingredient) {
92+
return ingredient.getItem()==Items.REDSTONE;
93+
}
94+
95+
@Override
96+
public ItemStack getOutput(ItemStack input, ItemStack ingredient) {
97+
if(PotionUtils.getPotion(input)== STUNNING_POTION&&ingredient.getItem()==Items.REDSTONE){
98+
ItemStack out=new ItemStack(Items.POTION);
99+
PotionUtils.setPotion(out,STUNNING_POTION_LONG);
100+
return out;
101+
}else
102+
return ItemStack.EMPTY;
103+
}
104+
});
105+
BrewingRecipeRegistry.addRecipe(new IBrewingRecipe() {
106+
@Override
107+
public boolean isInput(ItemStack input) {
108+
return PotionUtils.getPotion(input)== STUNNING_POTION;
109+
}
110+
111+
@Override
112+
public boolean isIngredient(ItemStack ingredient) {
113+
return ingredient.getItem()==Items.GLOWSTONE_DUST;
114+
}
115+
116+
@Override
117+
public ItemStack getOutput(ItemStack input, ItemStack ingredient) {
118+
if(PotionUtils.getPotion(input)== STUNNING_POTION&&ingredient.getItem()==Items.GLOWSTONE_DUST){
119+
ItemStack out=new ItemStack(Items.POTION);
120+
PotionUtils.setPotion(out,STUNNING_POTION_POTENT);
121+
return out;
122+
}else
123+
return ItemStack.EMPTY;
124+
}
125+
});
126+
}
127+
128+
129+
}

0 commit comments

Comments
 (0)