Fixed many bugs

This commit is contained in:
Tschipp 2023-07-06 21:00:51 +02:00
parent 1e5adfdc27
commit e1da67a250
5 changed files with 48 additions and 37 deletions

View File

@ -4,6 +4,7 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.Item;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.InterModComms;
import net.minecraftforge.fml.ModLoadingContext;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
@ -49,6 +50,8 @@ public class CarryOn
ModLoadingContext.get().registerConfig(ModConfig.Type.SERVER, Configs.SERVER_CONFIG);
info = ModLoadingContext.get().getActiveContainer().getModInfo();
InterModComms.sendTo("carryon", "blacklistBlock", () -> "minecraft:chest");
}
private void setup(final FMLCommonSetupEvent event)

View File

@ -166,7 +166,8 @@ public class RenderEvents
if (!stack.isEmpty() && (stack.getItem() == RegistrationHandler.itemTile && ItemCarryonBlock.hasTileData(stack) || stack.getItem() == RegistrationHandler.itemEntity && ItemCarryonEntity.hasEntityData(stack)))
{
Minecraft.getInstance().player.closeContainer();
event.setCanceled(true);
//Minecraft.getInstance().player.closeContainer();
Minecraft.getInstance().screen = null;
Minecraft.getInstance().mouseHandler.grabMouse();

View File

@ -203,7 +203,7 @@ public class Configs
s.comment("Blacklist. Read about the format here: https://github.com/Tschipp/CarryOn/wiki/Black---and-Whitelist-Config");
forbiddenTiles = s.comment("Blocks that cannot be picked up").defineList("blacklist.forbiddenTiles", Arrays.asList("#forge:immovable", "#forge:relocation_not_supported", "minecraft:end_portal", "minecraft:end_gateway", "minecraft:tall_grass", "minecraft:large_fern", "minecraft:peony", "minecraft:rose_bush", "minecraft:lilac", "minecraft:sunflower", "minecraft:*_bed", "minecraft:oak_door", "minecraft:iron_door", "minecraft:spruce_door", "minecraft:birch_door", "minecraft:jungle_door", "minecraft:acacia_door", "minecraft:dark_oak_door", "minecraft:waterlily", "minecraft:cake", "minecraft:nether_portal", "minecraft:tall_seagrass", "animania:block_trough", "animania:block_invisiblock", "colossalchests:*", "ic2:*", "bigreactors:*", "forestry:*", "tconstruct:*", "rustic:*", "botania:*", "astralsorcery:*", "quark:colored_bed_*", "immersiveengineering:*", "embers:block_furnace", "embers:ember_bore", "embers:ember_activator", "embers:mixer", "embers:heat_coil", "embers:large_tank", "embers:crystal_cell", "embers:alchemy_pedestal", "embers:boiler", "embers:combustor", "embers:catalzyer", "embers:field_chart", "embers:inferno_forge", "storagedrawers:framingtable", "skyresources:*", "lootbags:*", "exsartagine:*", "aquamunda:tank", "opencomputers:*", "malisisdoors:*", "industrialforegoing:*", "minecolonies:*", "thaumcraft:pillar*", "thaumcraft:infernal_furnace", "thaumcraft:placeholder*", "thaumcraft:infusion_matrix", "thaumcraft:golem_builder", "thaumcraft:thaumatorium*", "magneticraft:oil_heater", "magneticraft:solar_panel", "magneticraft:steam_engine", "magneticraft:shelving_unit", "magneticraft:grinder", "magneticraft:sieve", "magneticraft:solar_tower", "magneticraft:solar_mirror", "magneticraft:container", "magneticraft:pumpjack", "magneticraft:solar_panel", "magneticraft:refinery", "magneticraft:oil_heater", "magneticraft:hydraulic_press", "magneticraft:multiblock_gap", "refinedstorage:*", "mcmultipart:*", "enderstorage:*", "betterstorage:*", "practicallogistics2:*", "wearablebackpacks:*", "rftools:screen", "rftools:creative_screen", "create:*", "magic_doorknob:*", "iceandfire:*", "ftbquests:*", "waystones:*", "framedblocks:*", "securitycraft:*", "forgemultipartcbe:*", "integrateddynamics:cable",
"mekanismgenerators:wind_generator"), obj -> obj instanceof String);
"mekanismgenerators:wind_generator", "vm:vending_machine"), obj -> obj instanceof String);
forbiddenEntities = s.comment("Entities that cannot be picked up").defineList("blacklist.forbiddenEntities", Arrays.asList("minecraft:end_crystal", "minecraft:ender_dragon", "minecraft:ghast", "minecraft:shulker", "minecraft:leash_knot", "minecraft:armor_stand", "minecraft:item_frame", "minecraft:painting", "minecraft:shulker_bullet", "animania:hamster", "animania:ferret*", "animania:hedgehog*", "animania:cart", "animania:wagon", "mynko:*", "pixelmon:*", "mocreatures:*", "quark:totem", "vehicle:*",
"securitycraft:*", "taterzens:npc", "easy_npc:*", "minecolonies:*"), obj -> obj instanceof String ? true : false);

View File

@ -7,6 +7,7 @@ import net.minecraftforge.fml.InterModComms.IMCMessage;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
import net.minecraftforge.fml.event.lifecycle.InterModProcessEvent;
import tschipp.carryon.CarryOn;
import tschipp.carryon.common.handler.ListHandler;
import tschipp.carryon.common.handler.ModelOverridesHandler;
@ -18,43 +19,44 @@ public class IMCEvents
{
@SubscribeEvent(priority = EventPriority.LOW)
public static void serverLoad(FMLCommonSetupEvent event)
public static void serverLoad(InterModProcessEvent event)
{
Stream<IMCMessage> messages = InterModComms.getMessages(CarryOn.MODID);
messages.forEach(msg -> {
String method = msg.method();
Object obj = msg.messageSupplier().get();
ListHandler.IMCMessages.add(() -> {
String method = msg.method();
Object obj = msg.messageSupplier().get();
if (!(obj instanceof String str))
return;
if (!(obj instanceof String str))
return;
switch (method)
{
case "blacklistBlock":
ListHandler.FORBIDDEN_TILES.add(str);
break;
case "blacklistEntity":
ListHandler.FORBIDDEN_ENTITIES.add(str);
break;
case "whitelistBlock":
ListHandler.ALLOWED_TILES.add(str);
break;
case "whitelistEntity":
ListHandler.ALLOWED_ENTITIES.add(str);
break;
case "blacklistStacking":
ListHandler.FORBIDDEN_STACKING.add(str);
break;
case "whitelistStacking":
ListHandler.ALLOWED_STACKING.add(str);
break;
case "addModelOverride":
ModelOverridesHandler.parseOverride(str, 0);
break;
}
switch (method) {
case "blacklistBlock":
ListHandler.FORBIDDEN_TILES.add(str);
break;
case "blacklistEntity":
ListHandler.FORBIDDEN_ENTITIES.add(str);
break;
case "whitelistBlock":
ListHandler.ALLOWED_TILES.add(str);
break;
case "whitelistEntity":
ListHandler.ALLOWED_ENTITIES.add(str);
break;
case "blacklistStacking":
ListHandler.FORBIDDEN_STACKING.add(str);
break;
case "whitelistStacking":
ListHandler.ALLOWED_STACKING.add(str);
break;
case "addModelOverride":
ModelOverridesHandler.parseOverride(str, 0);
break;
}
});
});
}

View File

@ -6,7 +6,9 @@ import net.minecraft.tags.TagKey;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.level.block.Block;
import net.minecraftforge.fml.InterModComms;
import net.minecraftforge.registries.ForgeRegistries;
import tschipp.carryon.CarryOn;
import tschipp.carryon.common.config.Configs.Blacklist;
import tschipp.carryon.common.config.Configs.WhiteList;
@ -14,6 +16,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class ListHandler
{
@ -30,6 +33,7 @@ public class ListHandler
public static List<TagKey<Block>> ALLOWED_TILES_TAGS = new ArrayList<>();
public static List<TagKey<EntityType<?>>> FORBIDDEN_STACKING_TAGS = new ArrayList<>();
public static List<TagKey<EntityType<?>>> ALLOWED_STACKING_TAGS = new ArrayList<>();
public static List<Runnable> IMCMessages = new ArrayList<>();
public static boolean isForbidden(Block block)
{
@ -144,6 +148,11 @@ public class ListHandler
}
private static void processIMC() {
for(Runnable r : IMCMessages)
r.run();
}
@SuppressWarnings("deprecation")
public static void initConfigLists()
{
@ -160,9 +169,10 @@ public class ListHandler
ALLOWED_TILES.clear();
ALLOWED_TILES_TAGS.clear();
processIMC();
List<String> forbidden = new ArrayList<>(Blacklist.forbiddenTiles.get());
forbidden.add("#carryon:block_blacklist");
FORBIDDEN_TILES = new ArrayList<>();
for (int i = 0; i < forbidden.size(); i++)
{
@ -172,7 +182,6 @@ public class ListHandler
List<String> forbiddenEntity = new ArrayList<>(Blacklist.forbiddenEntities.get());
forbiddenEntity.add("#carryon:entity_blacklist");
FORBIDDEN_ENTITIES = new ArrayList<>();
for (int i = 0; i < forbiddenEntity.size(); i++)
{
@ -197,7 +206,6 @@ public class ListHandler
List<String> allowedEntities = new ArrayList<>(WhiteList.allowedEntities.get());
allowedEntities.add("#carryon:entity_whitelist");
ALLOWED_ENTITIES = new ArrayList<>();
for (int i = 0; i < allowedEntities.size(); i++)
{
if (!allowedEntities.get(i).startsWith("#"))
@ -221,7 +229,6 @@ public class ListHandler
List<String> allowedBlocks = new ArrayList<>(WhiteList.allowedBlocks.get());
allowedBlocks.add("#carryon:block_whitelist");
ALLOWED_TILES = new ArrayList<>();
for (int i = 0; i < allowedBlocks.size(); i++)
{
if (!allowedBlocks.get(i).startsWith("#"))
@ -230,7 +237,6 @@ public class ListHandler
List<String> forbiddenStacking = new ArrayList<>(Blacklist.forbiddenStacking.get());
forbiddenStacking.add("#carryon:stacking_blacklist");
FORBIDDEN_STACKING = new ArrayList<>();
for (int i = 0; i < forbiddenStacking.size(); i++)
{
@ -255,7 +261,6 @@ public class ListHandler
List<String> allowedStacking = new ArrayList<>(WhiteList.allowedStacking.get());
allowedStacking.add("#carryon:stacking_whitelist");
ALLOWED_STACKING = new ArrayList<>();
for (int i = 0; i < allowedStacking.size(); i++)
{
if (!allowedStacking.get(i).startsWith("#"))