Skip to content

Commit

Permalink
Fix the game crash caused by top
Browse files Browse the repository at this point in the history
- fixed #335
  • Loading branch information
TartaricAcid committed Oct 9, 2021
1 parent b64e86c commit a2af392
Show file tree
Hide file tree
Showing 17 changed files with 53 additions and 43 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ public TouhouLittleMaid() {
InitContainer.CONTAINER_TYPE.register(FMLJavaModLoadingContext.get().getModEventBus());
InitSounds.SOUNDS.register(FMLJavaModLoadingContext.get().getModEventBus());
InitRecipes.RECIPE_SERIALIZERS.register(FMLJavaModLoadingContext.get().getModEventBus());
FMLJavaModLoadingContext.get().getModEventBus().register(new CommandRegistry());
ModLoadingContext.get().registerConfig(ModConfig.Type.COMMON, Config.initConfig());
DeferredWorkQueue.runLater(NetworkHandler::init);
EXTENSIONS = AnnotatedInstanceUtil.getModExtensions();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,10 @@
import net.minecraft.block.RotatedPillarBlock;
import net.minecraft.util.Direction;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.ModList;
import vazkii.patchouli.api.IStateMatcher;
import vazkii.patchouli.api.PatchouliAPI;

public final class MultiblockRegistry {
private static final String PATCHOULI_MOD_ID = "patchouli";
private static final ResourceLocation ID = new ResourceLocation(TouhouLittleMaid.MOD_ID, "altar");
private static final String[][] TEMPLATE = new String[][]{
{" ", " R", " R", " R", " R", " R", " R", " ",},
Expand All @@ -23,11 +21,9 @@ public final class MultiblockRegistry {
};

public static void init() {
if (ModList.get().isLoaded(PATCHOULI_MOD_ID)) {
PatchouliAPI.IPatchouliAPI api = PatchouliAPI.get();
IStateMatcher oakLogMatcher = api.predicateMatcher(Blocks.OAK_LOG.defaultBlockState(), state -> state.getValue(RotatedPillarBlock.AXIS) == Direction.Axis.Y);
IStateMatcher redWoolMatcher = api.predicateMatcher(Blocks.RED_WOOL.defaultBlockState(), Predicates.alwaysTrue());
api.registerMultiblock(ID, api.makeMultiblock(TEMPLATE, 'O', oakLogMatcher, 'R', redWoolMatcher, ' ', api.anyMatcher()));
}
PatchouliAPI.IPatchouliAPI api = PatchouliAPI.get();
IStateMatcher oakLogMatcher = api.predicateMatcher(Blocks.OAK_LOG.defaultBlockState(), state -> state.getValue(RotatedPillarBlock.AXIS) == Direction.Axis.Y);
IStateMatcher redWoolMatcher = api.predicateMatcher(Blocks.RED_WOOL.defaultBlockState(), Predicates.alwaysTrue());
api.registerMultiblock(ID, api.makeMultiblock(TEMPLATE, 'O', oakLogMatcher, 'R', redWoolMatcher, ' ', api.anyMatcher()));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,11 @@

import com.github.tartaricacid.touhoulittlemaid.compat.top.provider.MaidProvider;
import mcjty.theoneprobe.api.ITheOneProbe;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.InterModComms;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.InterModEnqueueEvent;

import javax.annotation.Nullable;
import java.util.function.Function;

@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
public final class TheOneProbeInfo implements Function<ITheOneProbe, Void> {
private static final String TOP_ID = "theoneprobe";

@SubscribeEvent
public static void onEnqueueIMC(final InterModEnqueueEvent event) {
InterModComms.sendTo(TOP_ID, "getTheOneProbe", TheOneProbeInfo::new);
}

@Nullable
@Override
public Void apply(@Nullable ITheOneProbe probe) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import com.github.tartaricacid.touhoulittlemaid.entity.passive.EntityMaid;
import com.github.tartaricacid.touhoulittlemaid.init.InitEntities;
import com.google.common.base.Predicates;
import com.google.common.collect.ImmutableSet;
import net.minecraft.entity.Entity;
import net.minecraft.entity.ai.brain.memory.MemoryModuleType;
Expand Down Expand Up @@ -30,9 +29,12 @@ public Set<MemoryModuleType<?>> requires() {

@Override
protected void doTick(ServerWorld worldIn, EntityMaid maid) {
if (!maid.isTame()) {
return;
}
List<Entity> allEntities = worldIn.getEntitiesOfClass(Entity.class,
maid.getBoundingBox().inflate(HORIZONTAL_SEARCH_RANGE, VERTICAL_SEARCH_RANGE, HORIZONTAL_SEARCH_RANGE),
Predicates.alwaysTrue());
Entity::isAlive);
allEntities.sort(Comparator.comparingDouble(maid::distanceToSqr));
List<Entity> optional = allEntities.stream()
.filter(e -> maid.canPickup(e, true))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ public MaidPickupEntitiesTask(Predicate<EntityMaid> predicate, int maxDistToWalk

@Override
protected boolean checkExtraStartConditions(ServerWorld worldIn, EntityMaid owner) {
return predicate.test(owner);
return owner.isTame() && predicate.test(owner);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;

import static com.github.tartaricacid.touhoulittlemaid.init.MaidGroup.MAIN_TAB;
import static com.github.tartaricacid.touhoulittlemaid.item.MaidGroup.MAIN_TAB;

public final class InitItems {
public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, TouhouLittleMaid.MOD_ID);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.github.tartaricacid.touhoulittlemaid.init;
package com.github.tartaricacid.touhoulittlemaid.init.registry;

import com.github.tartaricacid.touhoulittlemaid.command.RootCommand;
import com.github.tartaricacid.touhoulittlemaid.command.arguments.HandleTypeArgument;
Expand All @@ -7,17 +7,15 @@
import net.minecraftforge.event.RegisterCommandsEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;

@Mod.EventBusSubscriber
public class CommandRegistry {
public final class CommandRegistry {
@SubscribeEvent
public static void onServerStaring(RegisterCommandsEvent event) {
RootCommand.register(event.getDispatcher());
}

@SubscribeEvent
public void preInit(FMLCommonSetupEvent event) {
public static void registerArgumentTypes() {
ArgumentTypes.register("touhou_little_maid:handle_types", HandleTypeArgument.class, new ArgumentSerializer<>(HandleTypeArgument::type));
}
}
Original file line number Diff line number Diff line change
@@ -1,20 +1,19 @@
package com.github.tartaricacid.touhoulittlemaid.event;
package com.github.tartaricacid.touhoulittlemaid.init.registry;

import com.github.tartaricacid.touhoulittlemaid.capability.PowerCapability;
import com.github.tartaricacid.touhoulittlemaid.compat.patchouli.MultiblockRegistry;
import com.github.tartaricacid.touhoulittlemaid.entity.info.ServerCustomPackLoader;
import net.minecraftforge.common.capabilities.CapabilityManager;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;

@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
public final class CommonSetupEvent {
public final class CommonRegistry {
@SubscribeEvent
public static void onSetupEvent(FMLCommonSetupEvent event) {
event.enqueueWork(ServerCustomPackLoader::reloadPacks);
event.enqueueWork(CommonSetupEvent::registerCapability);
event.enqueueWork(MultiblockRegistry::init);
event.enqueueWork(CommonRegistry::registerCapability);
event.enqueueWork(CommandRegistry::registerArgumentTypes);
}

private static void registerCapability() {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.github.tartaricacid.touhoulittlemaid.init.registry;

import com.github.tartaricacid.touhoulittlemaid.compat.patchouli.MultiblockRegistry;
import com.github.tartaricacid.touhoulittlemaid.compat.top.TheOneProbeInfo;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.InterModComms;
import net.minecraftforge.fml.ModList;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.InterModEnqueueEvent;


@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
public final class CompatRegistry {
private static final String TOP = "theoneprobe";
private static final String PATCHOULI = "patchouli";

@SubscribeEvent
public static void onEnqueue(final InterModEnqueueEvent event) {
event.enqueueWork(() -> InterModComms.sendTo(TOP, "getTheOneProbe", TheOneProbeInfo::new));
event.enqueueWork(() -> checkModLoad(PATCHOULI, MultiblockRegistry::init));
}

private static void checkModLoad(String modid, Runnable runnable) {
if (ModList.get().isLoaded(modid)) {
runnable.run();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
import javax.annotation.Nullable;
import java.util.List;

import static com.github.tartaricacid.touhoulittlemaid.init.MaidGroup.MAIN_TAB;
import static com.github.tartaricacid.touhoulittlemaid.item.MaidGroup.MAIN_TAB;

public class ItemChair extends Item {
private static final String DEFAULT_MODEL_ID = "touhou_little_maid:cushion";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;

import static com.github.tartaricacid.touhoulittlemaid.init.MaidGroup.MAIN_TAB;
import static com.github.tartaricacid.touhoulittlemaid.item.MaidGroup.MAIN_TAB;

public class ItemDamageableBauble extends Item {
public ItemDamageableBauble(int durability) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import net.minecraft.util.text.TranslationTextComponent;
import net.minecraft.world.World;

import static com.github.tartaricacid.touhoulittlemaid.init.MaidGroup.MAIN_TAB;
import static com.github.tartaricacid.touhoulittlemaid.item.MaidGroup.MAIN_TAB;

public class ItemExtinguisher extends Item {
public ItemExtinguisher() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import java.util.List;
import java.util.function.Predicate;

import static com.github.tartaricacid.touhoulittlemaid.init.MaidGroup.MAIN_TAB;
import static com.github.tartaricacid.touhoulittlemaid.item.MaidGroup.MAIN_TAB;

public class ItemHakureiGohei extends ShootableItem {
public ItemHakureiGohei() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

import java.util.Map;

import static com.github.tartaricacid.touhoulittlemaid.init.MaidGroup.MAIN_TAB;
import static com.github.tartaricacid.touhoulittlemaid.item.MaidGroup.MAIN_TAB;

public class ItemMaidBackpack extends Item {
private static final Map<Integer, ItemMaidBackpack> ITEM_BY_LEVEL = Maps.newHashMap();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import net.minecraft.item.BlockItemUseContext;
import net.minecraft.item.Item;

import static com.github.tartaricacid.touhoulittlemaid.init.MaidGroup.MAIN_TAB;
import static com.github.tartaricacid.touhoulittlemaid.item.MaidGroup.MAIN_TAB;
import static net.minecraftforge.common.util.Constants.BlockFlags.*;

public class ItemMaidBed extends BlockItem {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;

import static com.github.tartaricacid.touhoulittlemaid.init.MaidGroup.MAIN_TAB;
import static com.github.tartaricacid.touhoulittlemaid.item.MaidGroup.MAIN_TAB;

public class ItemNormalBauble extends Item {
public ItemNormalBauble() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.github.tartaricacid.touhoulittlemaid.init;
package com.github.tartaricacid.touhoulittlemaid.item;

import com.github.tartaricacid.touhoulittlemaid.TouhouLittleMaid;
import net.minecraft.item.Item;
Expand Down

0 comments on commit a2af392

Please sign in to comment.