Continue migration

This commit is contained in:
Aleksey 2021-04-14 09:31:07 +03:00
parent f03fd03bd0
commit de3bc706bd
11 changed files with 56 additions and 56 deletions

View file

@ -24,8 +24,8 @@ public class EndPotions {
} }
public static void register() { public static void register() {
BrewingAccessor.callRegisterPotionRecipe(Potions.AWKWARD, EndItems.ENDER_DUST, END_VEIL); BrewingAccessor.callAddMix(Potions.AWKWARD, EndItems.ENDER_DUST, END_VEIL);
BrewingAccessor.callRegisterPotionRecipe(END_VEIL, Items.REDSTONE, LONG_END_VEIL); BrewingAccessor.callAddMix(END_VEIL, Items.REDSTONE, LONG_END_VEIL);
BrewingAccessor.callRegisterPotionRecipe(Potions.AWKWARD, EndBlocks.MURKWEED.asItem(), Potions.NIGHT_VISION); BrewingAccessor.callAddMix(Potions.AWKWARD, EndBlocks.MURKWEED.asItem(), Potions.NIGHT_VISION);
} }
} }

View file

@ -27,20 +27,20 @@ public class EndArmorItem extends ArmorItem implements Patterned {
return; return;
} }
Multimap<Attribute, AttributeModifier> attributeModifiers = accessor.be_getAttributeModifiers(); Multimap<Attribute, AttributeModifier> attributeModifiers = accessor.getDefaultModifiers();
// In case Mojang or anyone else decided to fix this // In case Mojang or anyone else decided to fix this
if (attributeModifiers.keys().contains(Attributes.KNOCKBACK_RESISTANCE)) { if (attributeModifiers.keys().contains(Attributes.KNOCKBACK_RESISTANCE)) {
return; return;
} }
UUID uuid = accessor.be_getModifiers()[slot.getIndex()]; UUID uuid = accessor.getModifiers()[slot.getIndex()];
// Rebuild attributeModifiers to include knockback resistance // Rebuild attributeModifiers to include knockback resistance
ImmutableMultimap.Builder<Attribute, AttributeModifier> builder = ImmutableMultimap.builder(); ImmutableMultimap.Builder<Attribute, AttributeModifier> builder = ImmutableMultimap.builder();
builder.putAll(attributeModifiers); builder.putAll(attributeModifiers);
builder.put(Attributes.KNOCKBACK_RESISTANCE, new AttributeModifier(uuid, "Armor knockback resistance", knockbackResistance, AttributeModifier.Operation.ADDITION)); builder.put(Attributes.KNOCKBACK_RESISTANCE, new AttributeModifier(uuid, "Armor knockback resistance", knockbackResistance, AttributeModifier.Operation.ADDITION));
accessor.be_setAttributeModifiers(builder.build()); accessor.setDefaultModifiers(builder.build());
} }
@Override @Override

View file

@ -23,7 +23,7 @@ import ru.betterend.util.MHelper;
@Mixin(BlockBehaviour.class) @Mixin(BlockBehaviour.class)
public abstract class AbstractBlockMixin { public abstract class AbstractBlockMixin {
@Inject(method = "getDroppedStacks", at = @At("HEAD"), cancellable = true) @Inject(method = "getDrops", at = @At("HEAD"), cancellable = true)
public void be_getDroppedStacks(BlockState state, LootContext.Builder builder, CallbackInfoReturnable<List<ItemStack>> info) { public void be_getDroppedStacks(BlockState state, LootContext.Builder builder, CallbackInfoReturnable<List<ItemStack>> info) {
if (state.is(Blocks.GLOWSTONE)) { if (state.is(Blocks.GLOWSTONE)) {
ItemStack tool = builder.getParameter(LootContextParams.TOOL); ItemStack tool = builder.getParameter(LootContextParams.TOOL);

View file

@ -11,8 +11,8 @@ import ru.betterend.blocks.basis.EndAnvilBlock;
@Mixin(AnvilBlock.class) @Mixin(AnvilBlock.class)
public class AnvilBlockMixin { public class AnvilBlockMixin {
@Inject(method = "getLandingState", at = @At("HEAD"), cancellable = true) @Inject(method = "damage", at = @At("HEAD"), cancellable = true)
private static void be_getLandingState(BlockState fallingState, CallbackInfoReturnable<BlockState> info) { private static void be_damage(BlockState fallingState, CallbackInfoReturnable<BlockState> info) {
if (fallingState.getBlock() instanceof EndAnvilBlock) { if (fallingState.getBlock() instanceof EndAnvilBlock) {
IntegerProperty destructionProperty = ((EndAnvilBlock) fallingState.getBlock()).getDestructionProperty(); IntegerProperty destructionProperty = ((EndAnvilBlock) fallingState.getBlock()).getDestructionProperty();
int destruction = fallingState.getValue(destructionProperty); int destruction = fallingState.getValue(destructionProperty);

View file

@ -37,7 +37,7 @@ public abstract class AnvilScreenHandlerMixin extends ItemCombinerMenu implement
super(MenuType.ANVIL, syncId, playerInventory, ContainerLevelAccess.NULL); super(MenuType.ANVIL, syncId, playerInventory, ContainerLevelAccess.NULL);
} }
@Inject(method = "<init>(ILnet/minecraft/entity/player/PlayerInventory;Lnet/minecraft/screen/ScreenHandlerContext;)V", @Inject(method = "<init>(ILnet/minecraft/world/entity/player/Inventory;Lnet/minecraft/world/inventory/ContainerLevelAccess;)V",
at = @At("TAIL")) at = @At("TAIL"))
public void be_initAnvilLevel(int syncId, Inventory inventory, ContainerLevelAccess context, CallbackInfo info) { public void be_initAnvilLevel(int syncId, Inventory inventory, ContainerLevelAccess context, CallbackInfo info) {
if (context != ContainerLevelAccess.NULL) { if (context != ContainerLevelAccess.NULL) {
@ -57,14 +57,14 @@ public abstract class AnvilScreenHandlerMixin extends ItemCombinerMenu implement
@Shadow @Shadow
public abstract void createResult(); public abstract void createResult();
@Inject(method = "canTakeOutput", at = @At("HEAD"), cancellable = true) @Inject(method = "mayPickup", at = @At("HEAD"), cancellable = true)
protected void be_canTakeOutput(Player player, boolean present, CallbackInfoReturnable<Boolean> info) { protected void be_canTakeOutput(Player player, boolean present, CallbackInfoReturnable<Boolean> info) {
if (be_currentRecipe != null) { if (be_currentRecipe != null) {
info.setReturnValue(be_currentRecipe.checkHammerDurability(inputSlots, player)); info.setReturnValue(be_currentRecipe.checkHammerDurability(inputSlots, player));
} }
} }
@Inject(method = "onTakeOutput", at = @At("HEAD"), cancellable = true) @Inject(method = "onTake", at = @At("HEAD"), cancellable = true)
protected void be_onTakeOutput(Player player, ItemStack stack, CallbackInfoReturnable<ItemStack> info) { protected void be_onTakeOutput(Player player, ItemStack stack, CallbackInfoReturnable<ItemStack> info) {
if (be_currentRecipe != null) { if (be_currentRecipe != null) {
this.inputSlots.getItem(0).shrink(be_currentRecipe.getInputCount()); this.inputSlots.getItem(0).shrink(be_currentRecipe.getInputCount());
@ -89,7 +89,7 @@ public abstract class AnvilScreenHandlerMixin extends ItemCombinerMenu implement
} }
} }
@Inject(method = "updateResult", at = @At("HEAD"), cancellable = true) @Inject(method = "createResult", at = @At("HEAD"), cancellable = true)
public void be_updateOutput(CallbackInfo info) { public void be_updateOutput(CallbackInfo info) {
RecipeManager recipeManager = this.player.level.getRecipeManager(); RecipeManager recipeManager = this.player.level.getRecipeManager();
be_recipes = recipeManager.getRecipesFor(AnvilRecipe.TYPE, inputSlots, player.level); be_recipes = recipeManager.getRecipesFor(AnvilRecipe.TYPE, inputSlots, player.level);
@ -109,7 +109,7 @@ public abstract class AnvilScreenHandlerMixin extends ItemCombinerMenu implement
} }
} }
@Inject(method = "setNewItemName", at = @At("HEAD"), cancellable = true) @Inject(method = "setItemName", at = @At("HEAD"), cancellable = true)
public void be_setNewItemName(String string, CallbackInfo info) { public void be_setNewItemName(String string, CallbackInfo info) {
if (be_currentRecipe != null) { if (be_currentRecipe != null) {
info.cancel(); info.cancel();

View file

@ -11,12 +11,12 @@ import com.google.common.collect.Multimap;
@Mixin(ArmorItem.class) @Mixin(ArmorItem.class)
public interface ArmorItemAccessor { public interface ArmorItemAccessor {
@Accessor("MODIFIERS") @Accessor("ARMOR_MODIFIER_UUID_PER_SLOT")
UUID[] be_getModifiers(); UUID[] getModifiers();
@Accessor("attributeModifiers") @Accessor("defaultModifiers")
Multimap<Attribute, AttributeModifier> be_getAttributeModifiers(); Multimap<Attribute, AttributeModifier> getDefaultModifiers();
@Accessor("attributeModifiers") @Accessor("defaultModifiers")
void be_setAttributeModifiers(Multimap<Attribute, AttributeModifier> attributeModifiers); void setDefaultModifiers(Multimap<Attribute, AttributeModifier> attributeModifiers);
} }

View file

@ -13,19 +13,19 @@ import ru.betterend.interfaces.IBiomeArray;
public class BiomeArrayMixin implements IBiomeArray { public class BiomeArrayMixin implements IBiomeArray {
@Final @Final
@Shadow @Shadow
private Biome[] data; private Biome[] biomes;
@Final @Final
@Shadow @Shadow
private static int HORIZONTAL_SECTION_COUNT; private static int WIDTH_BITS;
@Final @Final
@Shadow @Shadow
public static int HORIZONTAL_BIT_MASK; public static int HORIZONTAL_MASK;
@Final @Final
@Shadow @Shadow
public static int VERTICAL_BIT_MASK; public static int VERTICAL_MASK;
@Override @Override
public void setBiome(Biome biome, BlockPos pos) { public void setBiome(Biome biome, BlockPos pos) {
@ -33,13 +33,13 @@ public class BiomeArrayMixin implements IBiomeArray {
int biomeY = pos.getY() >> 2; int biomeY = pos.getY() >> 2;
int biomeZ = pos.getZ() >> 2; int biomeZ = pos.getZ() >> 2;
int index = be_getArrayIndex(biomeX, biomeY, biomeZ); int index = be_getArrayIndex(biomeX, biomeY, biomeZ);
data[index] = biome; biomes[index] = biome;
} }
private int be_getArrayIndex(int biomeX, int biomeY, int biomeZ) { private int be_getArrayIndex(int biomeX, int biomeY, int biomeZ) {
int i = biomeX & HORIZONTAL_BIT_MASK; int i = biomeX & HORIZONTAL_MASK;
int j = Mth.clamp(biomeY, 0, VERTICAL_BIT_MASK); int j = Mth.clamp(biomeY, 0, VERTICAL_MASK);
int k = biomeZ & HORIZONTAL_BIT_MASK; int k = biomeZ & HORIZONTAL_MASK;
return j << HORIZONTAL_SECTION_COUNT + HORIZONTAL_SECTION_COUNT | k << HORIZONTAL_SECTION_COUNT | i; return j << WIDTH_BITS + WIDTH_BITS | k << WIDTH_BITS | i;
} }
} }

View file

@ -28,7 +28,7 @@ public class BoneMealItemMixin {
private static final Direction[] DIR = BlocksHelper.makeHorizontal(); private static final Direction[] DIR = BlocksHelper.makeHorizontal();
private static final MutableBlockPos POS = new MutableBlockPos(); private static final MutableBlockPos POS = new MutableBlockPos();
@Inject(method = "useOnBlock", at = @At("HEAD"), cancellable = true) @Inject(method = "useOn", at = @At("HEAD"), cancellable = true)
private void be_onUse(UseOnContext context, CallbackInfoReturnable<InteractionResult> info) { private void be_onUse(UseOnContext context, CallbackInfoReturnable<InteractionResult> info) {
Level world = context.getLevel(); Level world = context.getLevel();
BlockPos blockPos = context.getClickedPos(); BlockPos blockPos = context.getClickedPos();
@ -39,7 +39,7 @@ public class BoneMealItemMixin {
if (world.getBlockState(blockPos).is(EndTags.END_GROUND)) { if (world.getBlockState(blockPos).is(EndTags.END_GROUND)) {
boolean consume = false; boolean consume = false;
if (world.getBlockState(blockPos).is(Blocks.END_STONE)) { if (world.getBlockState(blockPos).is(Blocks.END_STONE)) {
BlockState nylium = beGetNylium(world, blockPos); BlockState nylium = be_getNylium(world, blockPos);
if (nylium != null) { if (nylium != null) {
BlocksHelper.setWithoutUpdate(world, blockPos, nylium); BlocksHelper.setWithoutUpdate(world, blockPos, nylium);
consume = true; consume = true;
@ -48,11 +48,11 @@ public class BoneMealItemMixin {
else { else {
if (!world.getFluidState(offseted).isEmpty() && endBiome) { if (!world.getFluidState(offseted).isEmpty() && endBiome) {
if (world.getBlockState(offseted).getBlock().equals(Blocks.WATER)) { if (world.getBlockState(offseted).getBlock().equals(Blocks.WATER)) {
consume = beGrowWaterGrass(world, blockPos); consume = be_growWaterGrass(world, blockPos);
} }
} }
else { else {
consume = beGrowGrass(world, blockPos); consume = be_growGrass(world, blockPos);
} }
} }
if (consume) { if (consume) {
@ -73,7 +73,7 @@ public class BoneMealItemMixin {
} }
} }
private boolean beGrowGrass(Level world, BlockPos pos) { private boolean be_growGrass(Level world, BlockPos pos) {
int y1 = pos.getY() + 3; int y1 = pos.getY() + 3;
int y2 = pos.getY() - 3; int y2 = pos.getY() - 3;
boolean result = false; boolean result = false;
@ -86,7 +86,7 @@ public class BoneMealItemMixin {
POS.setY(y); POS.setY(y);
BlockPos down = POS.below(); BlockPos down = POS.below();
if (world.isEmptyBlock(POS) && !world.isEmptyBlock(down)) { if (world.isEmptyBlock(POS) && !world.isEmptyBlock(down)) {
BlockState grass = beGetGrassState(world, down); BlockState grass = be_getGrassState(world, down);
if (grass != null) { if (grass != null) {
BlocksHelper.setWithoutUpdate(world, POS, grass); BlocksHelper.setWithoutUpdate(world, POS, grass);
result = true; result = true;
@ -98,7 +98,7 @@ public class BoneMealItemMixin {
return result; return result;
} }
private boolean beGrowWaterGrass(Level world, BlockPos pos) { private boolean be_growWaterGrass(Level world, BlockPos pos) {
int y1 = pos.getY() + 3; int y1 = pos.getY() + 3;
int y2 = pos.getY() - 3; int y2 = pos.getY() - 3;
boolean result = false; boolean result = false;
@ -111,7 +111,7 @@ public class BoneMealItemMixin {
POS.setY(y); POS.setY(y);
BlockPos down = POS.below(); BlockPos down = POS.below();
if (world.getBlockState(POS).is(Blocks.WATER) && world.getBlockState(down).is(EndTags.END_GROUND)) { if (world.getBlockState(POS).is(Blocks.WATER) && world.getBlockState(down).is(EndTags.END_GROUND)) {
BlockState grass = beGetWaterGrassState(world, down); BlockState grass = be_getWaterGrassState(world, down);
if (grass != null) { if (grass != null) {
BlocksHelper.setWithoutUpdate(world, POS, grass); BlocksHelper.setWithoutUpdate(world, POS, grass);
result = true; result = true;
@ -123,14 +123,14 @@ public class BoneMealItemMixin {
return result; return result;
} }
private BlockState beGetGrassState(Level world, BlockPos pos) { private BlockState be_getGrassState(Level world, BlockPos pos) {
BlockState state = world.getBlockState(pos); BlockState state = world.getBlockState(pos);
Block block = state.getBlock(); Block block = state.getBlock();
block = BonemealUtil.getGrass(EndBiomes.getBiomeID(world.getBiome(pos)), block, world.getRandom()); block = BonemealUtil.getGrass(EndBiomes.getBiomeID(world.getBiome(pos)), block, world.getRandom());
return block == null ? null : block.defaultBlockState(); return block == null ? null : block.defaultBlockState();
} }
private BlockState beGetWaterGrassState(Level world, BlockPos pos) { private BlockState be_getWaterGrassState(Level world, BlockPos pos) {
EndBiome biome = EndBiomes.getFromBiome(world.getBiome(pos)); EndBiome biome = EndBiomes.getFromBiome(world.getBiome(pos));
if (world.random.nextInt(16) == 0) { if (world.random.nextInt(16) == 0) {
return EndBlocks.CHARNIA_RED.defaultBlockState(); return EndBlocks.CHARNIA_RED.defaultBlockState();
@ -147,7 +147,7 @@ public class BoneMealItemMixin {
return null; return null;
} }
private void beShuffle(Random random) { private void be_shuffle(Random random) {
for (int i = 0; i < 4; i++) { for (int i = 0; i < 4; i++) {
int j = random.nextInt(4); int j = random.nextInt(4);
Direction d = DIR[i]; Direction d = DIR[i];
@ -156,8 +156,8 @@ public class BoneMealItemMixin {
} }
} }
private BlockState beGetNylium(Level world, BlockPos pos) { private BlockState be_getNylium(Level world, BlockPos pos) {
beShuffle(world.random); be_shuffle(world.random);
for (Direction dir : DIR) { for (Direction dir : DIR) {
BlockState state = world.getBlockState(pos.relative(dir)); BlockState state = world.getBlockState(pos.relative(dir));
if (BlocksHelper.isEndNylium(state)) if (BlocksHelper.isEndNylium(state))

View file

@ -9,7 +9,7 @@ import org.spongepowered.asm.mixin.gen.Invoker;
@Mixin(PotionBrewing.class) @Mixin(PotionBrewing.class)
public interface BrewingAccessor { public interface BrewingAccessor {
@Invoker @Invoker
static void callRegisterPotionRecipe(Potion input, Item item, Potion output) { static void callAddMix(Potion input, Item item, Potion output) {
throw new AssertionError("@Invoker dummy body called"); throw new AssertionError("@Invoker dummy body called");
} }
} }

View file

@ -42,8 +42,8 @@ public abstract class ChorusFlowerBlockMixin extends Block {
@Final @Final
private ChorusPlantBlock plantBlock; private ChorusPlantBlock plantBlock;
@Inject(method = "canPlaceAt", at = @At("HEAD"), cancellable = true) @Inject(method = "canSurvive", at = @At("HEAD"), cancellable = true)
private void beCanPlace(BlockState state, LevelReader world, BlockPos pos, CallbackInfoReturnable<Boolean> info) { private void be_canPlace(BlockState state, LevelReader world, BlockPos pos, CallbackInfoReturnable<Boolean> info) {
if (world.getBlockState(pos.below()).is(EndBlocks.CHORUS_NYLIUM)) { if (world.getBlockState(pos.below()).is(EndBlocks.CHORUS_NYLIUM)) {
info.setReturnValue(true); info.setReturnValue(true);
info.cancel(); info.cancel();
@ -51,13 +51,13 @@ public abstract class ChorusFlowerBlockMixin extends Block {
} }
@Inject(method = "randomTick", at = @At("HEAD"), cancellable = true) @Inject(method = "randomTick", at = @At("HEAD"), cancellable = true)
private void beOnTick(BlockState state, ServerLevel world, BlockPos pos, Random random, CallbackInfo info) { private void be_onTick(BlockState state, ServerLevel world, BlockPos pos, Random random, CallbackInfo info) {
if (world.getBlockState(pos.below()).is(EndTags.END_GROUND)) { if (world.getBlockState(pos.below()).is(EndTags.END_GROUND)) {
BlockPos up = pos.above(); BlockPos up = pos.above();
if (world.isEmptyBlock(up) && up.getY() < 256) { if (world.isEmptyBlock(up) && up.getY() < 256) {
int i = state.getValue(ChorusFlowerBlock.AGE); int i = state.getValue(ChorusFlowerBlock.AGE);
if (i < 5) { if (i < 5) {
this.grow(world, up, i + 1); this.placeGrownFlower(world, up, i + 1);
if (GeneratorOptions.changeChorusPlant()) { if (GeneratorOptions.changeChorusPlant()) {
BlocksHelper.setWithoutUpdate(world, pos, plantBlock.defaultBlockState().setValue(ChorusPlantBlock.UP, true).setValue(ChorusPlantBlock.DOWN, true).setValue(BlocksHelper.ROOTS, true)); BlocksHelper.setWithoutUpdate(world, pos, plantBlock.defaultBlockState().setValue(ChorusPlantBlock.UP, true).setValue(ChorusPlantBlock.DOWN, true).setValue(BlocksHelper.ROOTS, true));
} }
@ -70,8 +70,8 @@ public abstract class ChorusFlowerBlockMixin extends Block {
} }
} }
@Inject(method = "generate", at = @At("RETURN"), cancellable = true) @Inject(method = "generatePlant", at = @At("RETURN"), cancellable = true)
private static void beOnGenerate(LevelAccessor world, BlockPos pos, Random random, int size, CallbackInfo info) { private static void be_onGeneratePlant(LevelAccessor world, BlockPos pos, Random random, int size, CallbackInfo info) {
BlockState state = world.getBlockState(pos); BlockState state = world.getBlockState(pos);
if (GeneratorOptions.changeChorusPlant() && state.is(Blocks.CHORUS_PLANT)) { if (GeneratorOptions.changeChorusPlant() && state.is(Blocks.CHORUS_PLANT)) {
BlocksHelper.setWithoutUpdate(world, pos, state.setValue(BlocksHelper.ROOTS, true)); BlocksHelper.setWithoutUpdate(world, pos, state.setValue(BlocksHelper.ROOTS, true));
@ -79,13 +79,13 @@ public abstract class ChorusFlowerBlockMixin extends Block {
} }
@Shadow @Shadow
private static boolean isSurroundedByAir(LevelReader world, BlockPos pos, @Nullable Direction exceptDirection) { return false; } private static boolean allNeighborsEmpty(LevelReader world, BlockPos pos, @Nullable Direction exceptDirection) { return false; }
@Shadow @Shadow
private void grow(Level world, BlockPos pos, int age) {} private void placeGrownFlower(Level world, BlockPos pos, int age) {}
@Shadow @Shadow
private void die(Level world, BlockPos pos) {} private void placeDeadFlower(Level world, BlockPos pos) {}
@Override @Override
public VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext context) { public VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext context) {
@ -98,7 +98,7 @@ public abstract class ChorusFlowerBlockMixin extends Block {
} }
@Inject(method = "die", at = @At("HEAD"), cancellable = true) @Inject(method = "die", at = @At("HEAD"), cancellable = true)
private void beOnDie(Level world, BlockPos pos, CallbackInfo info) { private void be_onDie(Level world, BlockPos pos, CallbackInfo info) {
BlockState down = world.getBlockState(pos.below()); BlockState down = world.getBlockState(pos.below());
if (down.is(Blocks.CHORUS_PLANT) || down.is(EndTags.GEN_TERRAIN)) { if (down.is(Blocks.CHORUS_PLANT) || down.is(EndTags.GEN_TERRAIN)) {
world.setBlock(pos, this.defaultBlockState().setValue(BlockStateProperties.AGE_5, 5), 2); world.setBlock(pos, this.defaultBlockState().setValue(BlockStateProperties.AGE_5, 5), 2);

View file

@ -20,13 +20,13 @@ public class TagGroupLoaderMixin {
@Shadow @Shadow
private String entryType; private String entryType;
@Inject(method = "prepareReload", at = @At("RETURN"), cancellable = true) @Inject(method = "prepare", at = @At("RETURN"), cancellable = true)
public void be_prepareReload(ResourceManager manager, Executor prepareExecutor, CallbackInfoReturnable<CompletableFuture<Map<ResourceLocation, Tag.Builder>>> info) { public void be_prepareReload(ResourceManager manager, Executor executor, CallbackInfoReturnable<CompletableFuture<Map<ResourceLocation, Tag.Builder>>> info) {
CompletableFuture<Map<ResourceLocation, Tag.Builder>> future = info.getReturnValue(); CompletableFuture<Map<ResourceLocation, Tag.Builder>> future = info.getReturnValue();
info.setReturnValue(CompletableFuture.supplyAsync(() -> { info.setReturnValue(CompletableFuture.supplyAsync(() -> {
Map<ResourceLocation, Tag.Builder> map = future.join(); Map<ResourceLocation, Tag.Builder> map = future.join();
TagHelper.apply(entryType, map); TagHelper.apply(entryType, map);
return map; return map;
})); }, executor));
} }
} }