Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 07/10/20 in all areas

  1. Looks like you're trying to setup ore generation in your constructor, which is before any registry stuff has happened, so your ore doesn't exist. Try moving ore generation setup into FMLCommonSetupEvent Also, you should update to 1.15.2, as 1.14.4 is going to be out of support once there is a RB for 1.16.x.
    1 point
  2. https://plugins.jetbrains.com/plugin/8327-minecraft-development One of the 20+ options that apear when you right click a field/method/etc. is "Get SRG name". Edit: I should also note that IntelliJ will most likely recommend you the plugin if you use Forge (yay data collection), DO NOT INSTALL IT DIRECTLY FROM INTELLIJ, you will get a super outdated version, report some stupid issues on their GitHub, get told to update and regret your decisions, install it from the link.
    1 point
  3. You use the #build(Consumer) overload of your GrindingRecipeBuilder, which uses the registry name of the result ItemStack for the recipe ID. In all of your cases, the items come from vanilla Minecraft ("minecraft:diamond", "minecraft:glowstone", etc.), meaning the recipe ID is the same so they are stored under the "minecraft" namespace. Use the #build(Consumer, ResourceLocation) overload to pass in your own custom recipe ID ("opes:grinder/diamond" for 'data/opes/recipes/grinder/diamond').
    1 point
  4. Not sure but you did not pass your mod id into the resource location?
    1 point
  5. Maybe you could use ProjectileHelper#rayTraceEntities, otherwise, most of the logic for Minecraft#objectMouseOver is in Minecraft#getMouseOver.
    1 point
  6. It doesn't exist anymore, you have to make the methods manually, it looks a bit like this: public class MyMessage { int value; public MyMessage(int value) { this.value = value; } public static void encode(MyMessage msg, PacketBuffer buffer) { buffer.writeInt(msg.value); } public static MyMessage decode(PacketBuffer buffer) { return new MyMessage(buffer.readInt()); //Remember to read in the same oreder you wrote! } public static void handle(MyMessage msg, Supplier<NetworkEvent.Context> ctx) { if (ctx.get().getDirection() == NetworkDirection.PLAY_TO_SERVER) { //Checks if the packet's direction is to the server ctx.get().enqueueWork(() -> { //Your code goes here }); } ctx.get().setPacketHandled(true); } } I'm 99% sure that's correct, kinda freestyled it though. To send it use SimpleChannel#sendToServer, don't forget to register it with SimpleChannel#registerMessage, and don't worry if you don't understand it right away, it took me a while to fully understand packets in 1.15.
    1 point
  7. You post words. We read them at some undefined point in the future, then we post words. You at some undefined point later read those words and post new words. Eventually there are no more words to post and the thread stops being on the front page. All is well. No. Specifically. I am not sure that what you want to do is even possible, but it might be able to be done through a custom IRecipe implementation.
    1 point
  8. 1 point
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.