Fixed many bugs
This commit is contained in:
parent
1e5adfdc27
commit
e1da67a250
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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("#"))
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user