From 3fa6b5bc9d445bfc9e03da4f71def9e2dd15df9b Mon Sep 17 00:00:00 2001 From: Devan-Kerman Date: Fri, 4 Sep 2020 17:49:41 -0500 Subject: [PATCH] god forgive me, for I have sinned 2 --- .../dan200/computercraft/ComputerCraft.java | 65 ++++++++++++++----- .../data/c/tags/items/black_dyes.json | 6 ++ .../data/c/tags/items/blue_dyes.json | 6 ++ .../data/c/tags/items/brown_dyes.json | 6 ++ .../data/c/tags/items/cyan_dyes.json | 6 ++ .../data/c/tags/items/ender_pearls.json | 6 ++ .../data/c/tags/items/glass_panes.json | 22 +++++++ .../data/c/tags/items/gold_blocks.json | 6 ++ .../data/c/tags/items/gold_ingots.json | 6 ++ .../data/c/tags/items/gray_dyes.json | 6 ++ .../data/c/tags/items/green_dyes.json | 6 ++ .../data/c/tags/items/light_blue_dyes.json | 6 ++ .../data/c/tags/items/light_gray_dyes.json | 6 ++ .../data/c/tags/items/lime_dyes.json | 6 ++ .../data/c/tags/items/magenta_dyes.json | 6 ++ .../data/c/tags/items/orange_dyes.json | 6 ++ .../data/c/tags/items/pink_dyes.json | 6 ++ .../data/c/tags/items/purple_dyes.json | 6 ++ .../resources/data/c/tags/items/red_dyes.json | 6 ++ .../data/c/tags/items/redstone_dusts.json | 6 ++ .../resources/data/c/tags/items/stones.json | 9 +++ .../data/c/tags/items/white_dyes.json | 6 ++ .../data/c/tags/items/wooden_chests.json | 7 ++ .../data/c/tags/items/yellow_dyes.json | 6 ++ .../computercraft/recipes/turtle_normal.json | 2 +- .../java/badhtmlparser/BadHtmlParser.java | 18 +---- 26 files changed, 209 insertions(+), 34 deletions(-) create mode 100644 src/main/resources/data/c/tags/items/black_dyes.json create mode 100644 src/main/resources/data/c/tags/items/blue_dyes.json create mode 100644 src/main/resources/data/c/tags/items/brown_dyes.json create mode 100644 src/main/resources/data/c/tags/items/cyan_dyes.json create mode 100644 src/main/resources/data/c/tags/items/ender_pearls.json create mode 100644 src/main/resources/data/c/tags/items/glass_panes.json create mode 100644 src/main/resources/data/c/tags/items/gold_blocks.json create mode 100644 src/main/resources/data/c/tags/items/gold_ingots.json create mode 100644 src/main/resources/data/c/tags/items/gray_dyes.json create mode 100644 src/main/resources/data/c/tags/items/green_dyes.json create mode 100644 src/main/resources/data/c/tags/items/light_blue_dyes.json create mode 100644 src/main/resources/data/c/tags/items/light_gray_dyes.json create mode 100644 src/main/resources/data/c/tags/items/lime_dyes.json create mode 100644 src/main/resources/data/c/tags/items/magenta_dyes.json create mode 100644 src/main/resources/data/c/tags/items/orange_dyes.json create mode 100644 src/main/resources/data/c/tags/items/pink_dyes.json create mode 100644 src/main/resources/data/c/tags/items/purple_dyes.json create mode 100644 src/main/resources/data/c/tags/items/red_dyes.json create mode 100644 src/main/resources/data/c/tags/items/redstone_dusts.json create mode 100644 src/main/resources/data/c/tags/items/stones.json create mode 100644 src/main/resources/data/c/tags/items/white_dyes.json create mode 100644 src/main/resources/data/c/tags/items/wooden_chests.json create mode 100644 src/main/resources/data/c/tags/items/yellow_dyes.json diff --git a/src/main/java/dan200/computercraft/ComputerCraft.java b/src/main/java/dan200/computercraft/ComputerCraft.java index 0205aa184..1f1cdc90a 100644 --- a/src/main/java/dan200/computercraft/ComputerCraft.java +++ b/src/main/java/dan200/computercraft/ComputerCraft.java @@ -6,7 +6,8 @@ package dan200.computercraft; -import static dan200.computercraft.shared.ComputerCraftRegistry.*; +import static dan200.computercraft.shared.ComputerCraftRegistry.ModBlocks; +import static dan200.computercraft.shared.ComputerCraftRegistry.init; import java.nio.file.Paths; import java.util.Collections; @@ -22,13 +23,22 @@ import dan200.computercraft.core.apis.AddressPredicate; import dan200.computercraft.core.apis.http.options.Action; import dan200.computercraft.core.apis.http.options.AddressRule; import dan200.computercraft.core.apis.http.websocket.Websocket; -import dan200.computercraft.shared.ComputerCraftRegistry; +import dan200.computercraft.shared.common.ColourableRecipe; import dan200.computercraft.shared.computer.core.ClientComputerRegistry; import dan200.computercraft.shared.computer.core.ServerComputerRegistry; +import dan200.computercraft.shared.computer.recipe.ComputerUpgradeRecipe; +import dan200.computercraft.shared.data.BlockNamedEntityLootCondition; +import dan200.computercraft.shared.data.HasComputerIdLootCondition; +import dan200.computercraft.shared.data.PlayerCreativeLootCondition; +import dan200.computercraft.shared.media.recipes.DiskRecipe; +import dan200.computercraft.shared.media.recipes.PrintoutRecipe; import dan200.computercraft.shared.peripheral.monitor.MonitorRenderer; import dan200.computercraft.shared.pocket.peripherals.PocketModem; import dan200.computercraft.shared.pocket.peripherals.PocketSpeaker; +import dan200.computercraft.shared.pocket.recipes.PocketComputerUpgradeRecipe; import dan200.computercraft.shared.proxy.ComputerCraftProxyCommon; +import dan200.computercraft.shared.turtle.recipes.TurtleRecipe; +import dan200.computercraft.shared.turtle.recipes.TurtleUpgradeRecipe; import dan200.computercraft.shared.turtle.upgrades.TurtleAxe; import dan200.computercraft.shared.turtle.upgrades.TurtleCraftingTable; import dan200.computercraft.shared.turtle.upgrades.TurtleHoe; @@ -38,15 +48,19 @@ import dan200.computercraft.shared.turtle.upgrades.TurtleSpeaker; import dan200.computercraft.shared.turtle.upgrades.TurtleSword; import dan200.computercraft.shared.turtle.upgrades.TurtleTool; import dan200.computercraft.shared.util.Config; -import net.fabricmc.fabric.api.client.itemgroup.FabricItemGroupBuilder; -import net.fabricmc.loader.api.FabricLoader; -import net.minecraft.item.ItemGroup; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Identifier; +import dan200.computercraft.shared.util.ImpostorRecipe; +import dan200.computercraft.shared.util.ImpostorShapelessRecipe; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import net.minecraft.item.ItemGroup; +import net.minecraft.item.ItemStack; +import net.minecraft.util.Identifier; +import net.minecraft.util.registry.Registry; + import net.fabricmc.api.ModInitializer; +import net.fabricmc.fabric.api.client.itemgroup.FabricItemGroupBuilder; +import net.fabricmc.loader.api.FabricLoader; public final class ComputerCraft implements ModInitializer { public static final String MOD_ID = "computercraft"; @@ -61,15 +75,14 @@ public final class ComputerCraft implements ModInitializer { "172.16.0.0/12", "192.168.0.0/16", "fd00::/8", - }; - public static List httpRules = Collections.unmodifiableList( Stream.concat( - Stream.of( DEFAULT_HTTP_BLACKLIST ) - .map( x -> AddressRule.parse( x, Action.DENY.toPartial() ) ) - .filter( Objects::nonNull ), - Stream.of( DEFAULT_HTTP_WHITELIST ) - .map( x -> AddressRule.parse( x, Action.ALLOW.toPartial() ) ) - .filter( Objects::nonNull ) - ).collect( Collectors.toList() ) ); + }; + public static List httpRules = Collections.unmodifiableList(Stream.concat(Stream.of(DEFAULT_HTTP_BLACKLIST) + .map(x -> AddressRule.parse(x, Action.DENY.toPartial())) + .filter(Objects::nonNull), + Stream.of(DEFAULT_HTTP_WHITELIST) + .map(x -> AddressRule.parse(x, Action.ALLOW.toPartial())) + .filter(Objects::nonNull)) + .collect(Collectors.toList())); public static boolean commandRequireCreative = false; public static MonitorRenderer monitorRenderer = MonitorRenderer.BEST; public static final int terminalWidth_computer = 51; @@ -144,8 +157,26 @@ public final class ComputerCraft implements ModInitializer { @Override public void onInitialize() { - Config.load(Paths.get(FabricLoader.getInstance().getConfigDir().toFile().getPath(), MOD_ID + ".json5")); + Config.load(Paths.get(FabricLoader.getInstance() + .getConfigDir() + .toFile() + .getPath(), MOD_ID + ".json5")); ComputerCraftProxyCommon.init(); + Registry.register(Registry.RECIPE_SERIALIZER, new Identifier(ComputerCraft.MOD_ID, "colour"), ColourableRecipe.SERIALIZER); + Registry.register(Registry.RECIPE_SERIALIZER, new Identifier(ComputerCraft.MOD_ID, "computer_upgrade"), ComputerUpgradeRecipe.SERIALIZER); + Registry.register(Registry.RECIPE_SERIALIZER, + new Identifier(ComputerCraft.MOD_ID, "pocket_computer_upgrade"), + PocketComputerUpgradeRecipe.SERIALIZER); + Registry.register(Registry.RECIPE_SERIALIZER, new Identifier(ComputerCraft.MOD_ID, "disk"), DiskRecipe.SERIALIZER); + Registry.register(Registry.RECIPE_SERIALIZER, new Identifier(ComputerCraft.MOD_ID, "printout"), PrintoutRecipe.SERIALIZER); + Registry.register(Registry.RECIPE_SERIALIZER, new Identifier(ComputerCraft.MOD_ID, "turtle"), TurtleRecipe.SERIALIZER); + Registry.register(Registry.RECIPE_SERIALIZER, new Identifier(ComputerCraft.MOD_ID, "turtle_upgrade"), TurtleUpgradeRecipe.SERIALIZER); + Registry.register(Registry.RECIPE_SERIALIZER, new Identifier(ComputerCraft.MOD_ID, "impostor_shaped"), ImpostorRecipe.SERIALIZER); + Registry.register(Registry.RECIPE_SERIALIZER, new Identifier(ComputerCraft.MOD_ID, "impostor_shapeless"), ImpostorShapelessRecipe.SERIALIZER); + Registry.register(Registry.LOOT_CONDITION_TYPE, new Identifier( ComputerCraft.MOD_ID, "block_named" ), BlockNamedEntityLootCondition.TYPE); + Registry.register(Registry.LOOT_CONDITION_TYPE, new Identifier( ComputerCraft.MOD_ID, "player_creative" ), PlayerCreativeLootCondition.TYPE); + Registry.register(Registry.LOOT_CONDITION_TYPE, new Identifier( ComputerCraft.MOD_ID, "has_id" ), HasComputerIdLootCondition.TYPE); init(); } + } diff --git a/src/main/resources/data/c/tags/items/black_dyes.json b/src/main/resources/data/c/tags/items/black_dyes.json new file mode 100644 index 000000000..26b4e622b --- /dev/null +++ b/src/main/resources/data/c/tags/items/black_dyes.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:black_dye" + ] +} diff --git a/src/main/resources/data/c/tags/items/blue_dyes.json b/src/main/resources/data/c/tags/items/blue_dyes.json new file mode 100644 index 000000000..d22bad7b3 --- /dev/null +++ b/src/main/resources/data/c/tags/items/blue_dyes.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:blue_dye" + ] +} diff --git a/src/main/resources/data/c/tags/items/brown_dyes.json b/src/main/resources/data/c/tags/items/brown_dyes.json new file mode 100644 index 000000000..eaa513928 --- /dev/null +++ b/src/main/resources/data/c/tags/items/brown_dyes.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:brown_dye" + ] +} diff --git a/src/main/resources/data/c/tags/items/cyan_dyes.json b/src/main/resources/data/c/tags/items/cyan_dyes.json new file mode 100644 index 000000000..e9abb1523 --- /dev/null +++ b/src/main/resources/data/c/tags/items/cyan_dyes.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:cyan_dye" + ] +} diff --git a/src/main/resources/data/c/tags/items/ender_pearls.json b/src/main/resources/data/c/tags/items/ender_pearls.json new file mode 100644 index 000000000..98e6e7034 --- /dev/null +++ b/src/main/resources/data/c/tags/items/ender_pearls.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:ender_pearl" + ] +} diff --git a/src/main/resources/data/c/tags/items/glass_panes.json b/src/main/resources/data/c/tags/items/glass_panes.json new file mode 100644 index 000000000..0e953d099 --- /dev/null +++ b/src/main/resources/data/c/tags/items/glass_panes.json @@ -0,0 +1,22 @@ +{ + "replace": false, + "values": [ + "minecraft:green_stained_glass_pane", + "minecraft:light_blue_stained_glass_pane", + "minecraft:gray_stained_glass_pane", + "minecraft:red_stained_glass_pane", + "minecraft:lime_stained_glass_pane", + "minecraft:yellow_stained_glass_pane", + "minecraft:blue_stained_glass_pane", + "minecraft:pink_stained_glass_pane", + "minecraft:light_gray_stained_glass_pane", + "minecraft:orange_stained_glass_pane", + "minecraft:glass_pane", + "minecraft:purple_stained_glass_pane", + "minecraft:white_stained_glass_pane", + "minecraft:magenta_stained_glass_pane", + "minecraft:brown_stained_glass_pane", + "minecraft:black_stained_glass_pane", + "minecraft:cyan_stained_glass_pane" + ] +} diff --git a/src/main/resources/data/c/tags/items/gold_blocks.json b/src/main/resources/data/c/tags/items/gold_blocks.json new file mode 100644 index 000000000..c67537a25 --- /dev/null +++ b/src/main/resources/data/c/tags/items/gold_blocks.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:gold_block" + ] +} diff --git a/src/main/resources/data/c/tags/items/gold_ingots.json b/src/main/resources/data/c/tags/items/gold_ingots.json new file mode 100644 index 000000000..d95117008 --- /dev/null +++ b/src/main/resources/data/c/tags/items/gold_ingots.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:gold_ingot" + ] +} diff --git a/src/main/resources/data/c/tags/items/gray_dyes.json b/src/main/resources/data/c/tags/items/gray_dyes.json new file mode 100644 index 000000000..41ac3efcb --- /dev/null +++ b/src/main/resources/data/c/tags/items/gray_dyes.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:gray_dye" + ] +} diff --git a/src/main/resources/data/c/tags/items/green_dyes.json b/src/main/resources/data/c/tags/items/green_dyes.json new file mode 100644 index 000000000..117da17a2 --- /dev/null +++ b/src/main/resources/data/c/tags/items/green_dyes.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:green_dye" + ] +} diff --git a/src/main/resources/data/c/tags/items/light_blue_dyes.json b/src/main/resources/data/c/tags/items/light_blue_dyes.json new file mode 100644 index 000000000..5abfe433a --- /dev/null +++ b/src/main/resources/data/c/tags/items/light_blue_dyes.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:light_blue_dye" + ] +} diff --git a/src/main/resources/data/c/tags/items/light_gray_dyes.json b/src/main/resources/data/c/tags/items/light_gray_dyes.json new file mode 100644 index 000000000..1efbe1882 --- /dev/null +++ b/src/main/resources/data/c/tags/items/light_gray_dyes.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:light_gray_dye" + ] +} diff --git a/src/main/resources/data/c/tags/items/lime_dyes.json b/src/main/resources/data/c/tags/items/lime_dyes.json new file mode 100644 index 000000000..a5c6cadfd --- /dev/null +++ b/src/main/resources/data/c/tags/items/lime_dyes.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:lime_dye" + ] +} diff --git a/src/main/resources/data/c/tags/items/magenta_dyes.json b/src/main/resources/data/c/tags/items/magenta_dyes.json new file mode 100644 index 000000000..b53ca3614 --- /dev/null +++ b/src/main/resources/data/c/tags/items/magenta_dyes.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:magenta_dye" + ] +} diff --git a/src/main/resources/data/c/tags/items/orange_dyes.json b/src/main/resources/data/c/tags/items/orange_dyes.json new file mode 100644 index 000000000..ce9bdea4a --- /dev/null +++ b/src/main/resources/data/c/tags/items/orange_dyes.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:orange_dye" + ] +} diff --git a/src/main/resources/data/c/tags/items/pink_dyes.json b/src/main/resources/data/c/tags/items/pink_dyes.json new file mode 100644 index 000000000..62eab2038 --- /dev/null +++ b/src/main/resources/data/c/tags/items/pink_dyes.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:pink_dye" + ] +} diff --git a/src/main/resources/data/c/tags/items/purple_dyes.json b/src/main/resources/data/c/tags/items/purple_dyes.json new file mode 100644 index 000000000..a0cc925d7 --- /dev/null +++ b/src/main/resources/data/c/tags/items/purple_dyes.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:purple_dye" + ] +} diff --git a/src/main/resources/data/c/tags/items/red_dyes.json b/src/main/resources/data/c/tags/items/red_dyes.json new file mode 100644 index 000000000..c02a69287 --- /dev/null +++ b/src/main/resources/data/c/tags/items/red_dyes.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:red_dye" + ] +} diff --git a/src/main/resources/data/c/tags/items/redstone_dusts.json b/src/main/resources/data/c/tags/items/redstone_dusts.json new file mode 100644 index 000000000..7f9d96f1a --- /dev/null +++ b/src/main/resources/data/c/tags/items/redstone_dusts.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:redstone" + ] +} diff --git a/src/main/resources/data/c/tags/items/stones.json b/src/main/resources/data/c/tags/items/stones.json new file mode 100644 index 000000000..82e678731 --- /dev/null +++ b/src/main/resources/data/c/tags/items/stones.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "minecraft:diorite", + "minecraft:granite", + "minecraft:cobblestone", + "minecraft:andesite" + ] +} diff --git a/src/main/resources/data/c/tags/items/white_dyes.json b/src/main/resources/data/c/tags/items/white_dyes.json new file mode 100644 index 000000000..59601ecf1 --- /dev/null +++ b/src/main/resources/data/c/tags/items/white_dyes.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:white_dye" + ] +} diff --git a/src/main/resources/data/c/tags/items/wooden_chests.json b/src/main/resources/data/c/tags/items/wooden_chests.json new file mode 100644 index 000000000..0777fa5ba --- /dev/null +++ b/src/main/resources/data/c/tags/items/wooden_chests.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "minecraft:trapped_chest", + "minecraft:chest" + ] +} diff --git a/src/main/resources/data/c/tags/items/yellow_dyes.json b/src/main/resources/data/c/tags/items/yellow_dyes.json new file mode 100644 index 000000000..4d4b0c28a --- /dev/null +++ b/src/main/resources/data/c/tags/items/yellow_dyes.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:yellow_dye" + ] +} diff --git a/src/main/resources/data/computercraft/recipes/turtle_normal.json b/src/main/resources/data/computercraft/recipes/turtle_normal.json index 55a938876..b540a2fe9 100644 --- a/src/main/resources/data/computercraft/recipes/turtle_normal.json +++ b/src/main/resources/data/computercraft/recipes/turtle_normal.json @@ -6,7 +6,7 @@ "#I#" ], "key": { - "#": { "tag": "c:iron_ingotsiron" }, + "#": { "tag": "c:iron_ingots" }, "C": { "item": "computercraft:computer_normal" }, "I": { "tag": "c:wooden_chests" } }, diff --git a/src/test/java/badhtmlparser/BadHtmlParser.java b/src/test/java/badhtmlparser/BadHtmlParser.java index 8abfbc14d..4cf9fdaa4 100644 --- a/src/test/java/badhtmlparser/BadHtmlParser.java +++ b/src/test/java/badhtmlparser/BadHtmlParser.java @@ -32,22 +32,8 @@ public class BadHtmlParser { System.out.println(IDS); - print("white_dyes"); - print("orange_dyes"); - print("magenta_dyes"); - print("light_blue_dyes"); - print("yellow_dyes"); - print("lime_dyes"); - print("pink_dyes"); - print("gray_dyes"); - print("light_gray_dyes"); - print("cyan_dyes"); - print("purple_dyes"); - print("blue_dyes"); - print("brown_dyes"); - print("green_dyes"); - print("red_dyes"); - print("black_dyes"); + print("wooden_chests"); + print("gold_blocks"); // todo replace dyes by hand }