Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Leaderboard

Popular Content

Showing content with the highest reputation since 09/28/21 in all areas

  1. Xironite Minecraft Server [1.8.x – 1.17.x] Xironite is a server dedicated to interacting with our community through hosting events and listening to player feedback! Our main feature is Towny! Towny gives our players a chance to work together and try to make the largest town while recruiting more players to help them. If competition is more your speed, you can compete against other towns in a variety of contests! You can do anything you want, from creating the largest town with your friends to dominating the economy and skill leaderboards! Xironite also adds a tonne of features to Survival, making it feel fresh once again. From custom enchants and tools to dungeons and bosses that will test your skills, Xironite has plenty to keep you busy! On top of all that, our player ranks can be earned in-game through playtime and resource gathering. No need to pay for cool perks! Xironite is constantly evolving based on player feedback and ideas from our amazing management. Join now before you miss our next event! How to Join? Join now using our IP: mc.xironite.org Features Bosses Dungeons Crates & Lootbags Events Robust Anti-Cheat Friendly & Active Community Custom Enchants Custom Tools & Armour PyroMining & PyroFishing Player Feedback & Suggestions Custom Textures ...and much more! Social Media Discord Instagram TikTok YouTube
    35 points
  2. From the forge discord:
    2 points
  3. As shown on the wiki you can specify a scale for the model: https://minecraft.fandom.com/wiki/Model#Item_models
    1 point
  4. RenderGameOverlayEvent has been reworked in 1.17, introducing the OverlayRegistry. It allows mods to register custom elements to the HUD ahead of time, without having to listen for events. If you want to modify existing layers, there is now RenderGameOverlayEvent.PreLayer, which includes the IIngameOverlay instance being rendered. ForgeIngameGui contains all the elements of the vanilla HUD which you can compare to.
    1 point
  5. after use debugger in your repo i found the error: that's your error compare this with the vanilla ItemModelProperty for the Shield it should be:
    1 point
  6. your copper shield json "extends" your wood shield, inside i found this error: wood_shield, line 17, translation y should be 2 wood_shield, line 22, translation y should be -2 wood_shield_blocking, line 17, translation y should be 5 wood_shield_blocking, line 22, translation y should be 5 i'm not sure if this values cause the error but you can change them and test again
    1 point
  7. no, it's an error in your json models check them or use the vanilla one for testing
    1 point
  8. The two fields are modified using forge patches: https://github.com/MinecraftForge/MinecraftForge/blob/be5446b91c17a3dbed880028741c430610bd59f1/patches/minecraft/net/minecraft/world/level/storage/loot/LootPool.java.patch#L7-L11 https://github.com/MinecraftForge/MinecraftForge/blob/be5446b91c17a3dbed880028741c430610bd59f1/patches/minecraft/net/minecraft/world/level/storage/loot/LootTable.java.patch#L7-L8 As such you cannot AT them. Use reflection and/or method handles.
    1 point
  9. Something is blocking your connection to launcher.mojang.com. Have you simply tried again today? Can you reach the URL shown in the error in your browser?
    1 point
  10. Client side commands must be, by definition, initiated from the client.
    1 point
  11. The mod causing this error is Extra Anvils. The error occurs because of how the mod gives a rainbow effect to text with some timing trickery. I believe this could be OS-related.
    1 point
  12. Hey... I had this similar issue. ScaledResolution can be gotten from the Minecraft param and drawCenterString also takes a matrixstack which you can get from the event. Extend from AbstractGui instead of Gui public class GuiNotif extends AbstractGui { String text = "Hello world!"; public GuiNotif(Minecraft mc, MatrixStack ms) { int width = mc.getWindow().getGuiScaledWidth(); int height = mc.getWindow().getGuiScaledHeight(); drawCenteredString(ms, mc.font , text, width / 2, (height / 2) - 4, 10526880 ); } } and in the event handler function you pass the matrixstack. if (event.type != ElementType.EXPERIENCE) return; new GuiNotif(Minecraft.getInstance(), event.getMatrixStack() );
    1 point
  13. you need to create a SpecialRecipe for it, take a look at the ShulkerBoxColoringRecipe or the BannerDuplicateRecipe
    1 point
  14. You can override the fill method in your item group and sort the list if you want to have it sorted regardless of mods being added or removed from the world.
    1 point
  15. What a strange choice of exception to throw here. Which symptoms did you observe that made you think this was the case? Not actually the problem here.
    1 point
  16. If you have MixinBootstrap installed try removing it, it's a mod made to provide mixin support when Forge can't or doesn't... but it's not smart enough to disable itself when Forge DOES provide mixin support... and they conflict
    1 point
  17. Yes. These mods are badly programmed and do not run properly on servers.
    1 point
  18. error in ToroHealth, make sure the mod is up to date, if it is report the bug to the mod author
    1 point
  19. nope, minecraft looks automatically in the correct folder of the assets and the datapack so like for block models in assets/mod_id/models/block/block_name.json loot tables in data/mod_id/loot_tables/block_name.json and so on but you should use the Data Generator
    1 point
  20. advancedcompass cannot run on a server. Report this bug to the mod author.
    1 point
  21. There is no way to not have JSON files for all blocks. They are necessary to describe how the block should be rendered. You can use data generation to generate these JSON files for you.
    1 point
  22. the condition would disable the recipe, so yes that's the "correct way"
    1 point
  23. 1.12 != 1.16.4, there are new ways to modify vanilla things (via Events), you should use it, since it is unnecessary to use outdated things as i can see you understand how to use Events, so why do you not use the PlayerEvent.HarvestCheck? you should only use the textures, models, etc. and throw the rest away
    1 point
  24. do something like that and use RegisterCapabilitiesEvent to register your Cap
    1 point
  25. you have to add them via dependencies screach for it in the gradle sub forum there are many threads about this topic
    1 point
  26. 1. Not afaik. 2. The entity is was already added and deferred to load at the correct time already. Follow the event call and you'll see that entities are loaded at a very specific point when processing. Trying to add your own entity at any point in this process would mean you could be loading a chunk that's already loading. 3. No, that is much more difficult.
    1 point
  27. Both are perfectly valid options. In fact DeferredRegister uses registry events behind the scenes. DeferredRegister makes it easier to not "mess up" and do things incorrectly, so it is usually the recommended way.
    1 point
  28. Reading the javadoc on the event tells you: "Note: This event may be called before the underlying Chunk is promoted to ChunkStatus#FULL. You will cause chunk loading deadlocks if you don't delay your world interactions." As such, you should probably keep a queue of entities added along with the world and position you would like it to spawn at. Then, on the next tick in probably WorldTickEvent, check if the chunk is loaded at the position of spawning and if so spawn the entity. Otherwise, recycle into the queue until next tick.
    1 point
  29. Add a "false" condition to the recipe: { "conditions":[ { "type": "forge:false" } ], // rest of the recipe file here }
    1 point
  30. You very much misunderstood me. I am not acting from a high horse. I am just confused why you ask for advice, but then do not take it when it is given.
    1 point
  31. Keep avoiding answering my question by asking other unrelated questions. But i'll humor you. It's been something we've been thinking of doing ever since the first person ran the wrong jar. So probably about the 1.3 days. So, now answer my question.
    1 point
  32. Okay so you are using 1.16. That means you should use Java 8. The pastebin link shows you are trying to use a JRE, a JDK is required for Java development.
    1 point
  33. Java 16 is required for 1.17.
    1 point
  34. The forge read the docs wiki is a little out of date. It is a lot easier now. I learnt how to do this from reverse engineering minecraft's and forge's code. I use blender to create my model. A fantastic tutorial on how to create pixel art based models in blender can be found here: To export: go to File>Export->Wavefront (.obj) Your settings should reflect this. This will convert the Blender coordinate system into Minecraft's. When you export your model you will get two files, an obj and a mtl. e.g. block_name.obj and block_name.mtl. The obj file describes the shape of the model while mtl file describes how it looks. Keep both files next to each other. Go into your mod resource directory and place these two files where you want them, e.g. assets/modid/models/block/path Within block_name.obj, make sure the mtllib points to the mtl file. Remember, your obj and mtl file should be next to each other. It should read: mtllib block_name.mtl Still within block_name.obj, make sure the correct material library is being loaded (Ill show you where this is declared in a sec.) (Just scroll down until you find the line, don't write your own) usemtl block_name_mat Your block_name.mtl file should look like something like this when you export it. If it doesn't have all of these lines, don't worry, Minecraft doesn't care too much about these numbers. # Blender MTL File: 'bloomery.blend' # Material Count: 1 newmtl block_name_mat Ns 323.999994 Ka 1.000000 1.000000 1.000000 Kd 0.800000 0.800000 0.800000 Ks 0.500000 0.500000 0.500000 Ke 0.000000 0.000000 0.000000 Ni 1.000000 d 1.000000 illum 2 Pretty much everything here can stay as is. "newmtl" is where we declare the material the obj loads with "usemtl". Make sure these match. Next we need to let Minecraft know where to find out texture. Still within block_name.mtl add a map_Kd line below newmtl. If you forget this line, Forge will still load your model, but it will be all white. newmtl block_name_mat map_Kd modid:block/path/block_name Ns 323.999994 Ka 1.000000 1.000000 1.000000 Kd 0.800000 0.800000 0.800000 Ks 0.500000 0.500000 0.500000 Ke 0.000000 0.000000 0.000000 Ni 1.000000 d 1.000000 illum 2 Place your texture within assets/modid/textures/block/path. The map_Kd should point to this location. Next, create a blockstate file for your block as normal. [block_name.json]. This will load a json model file. This has to be next to your obj and mtl files. { "variants": { "": { "model": "modid:block/path/block_name" } } } Block Model [block_name.json] { "loader": "forge:obj", "model": "modid:models/block/path/block_name.obj", "flip-v": true } Enabling flip-v will depend your model file. This just flips the way the texture is applied. If your texture looks upside down, change this to false. Your assets folder structure should look like this now: assets/modid/ blockstates/ block_name.json models/block/path/ block_name.json block_name.obj block_name.mtl textures/block/path/ block_name.png
    1 point
  35. You can add them using ClientChatEvent, but you won't have the fancy autocompletion.
    1 point
  36. Ah, yeah you're right. Vanilla does have a few of these dirty "quick fixes" hidden away in the guts of the code. @Deprecated public static RenderType getChunkRenderType(BlockState blockStateIn) { Block block = blockStateIn.getBlock(); if (block instanceof LeavesBlock) { return fancyGraphics ? RenderType.getCutoutMipped() : RenderType.getSolid(); } else { RenderType rendertype = TYPES_BY_BLOCK.get(block); return rendertype != null ? rendertype : RenderType.getSolid(); } } and public static boolean canRenderInLayer(BlockState state, RenderType type) { Block block = state.getBlock(); if (block instanceof LeavesBlock) { return fancyGraphics ? type == RenderType.getCutoutMipped() : type == RenderType.getSolid(); } else { java.util.function.Predicate<RenderType> rendertype; synchronized (RenderTypeLookup.class) { rendertype = blockRenderChecks.get(block.delegate); } return rendertype != null ? rendertype.test(type) : type == RenderType.getSolid(); } }
    1 point
  37. For anyone looking, the following code will rotate a VoxelShape around an axis: public static VoxelShape rotateShape(Direction from, Direction to, VoxelShape shape) { VoxelShape[] buffer = new VoxelShape[]{ shape, VoxelShapes.empty() }; int times = (to.getHorizontalIndex() - from.getHorizontalIndex() + 4) % 4; for (int i = 0; i < times; i++) { buffer[0].forEachBox((minX, minY, minZ, maxX, maxY, maxZ) -> buffer[1] = VoxelShapes.or(buffer[1], VoxelShapes.create(1-maxZ, minY, minX, 1-minZ, maxY, maxX))); buffer[0] = buffer[1]; buffer[1] = VoxelShapes.empty(); } return buffer[0]; }
    1 point
  38. I wouldn't say I know enough Java to pr Forge, so I will instead make my suggestion here. I think it would be useful if there was a ShieldBlockEvent of some sort, which is fired when an an attack is blocked by a shield. I would assume you could get the DamageSource of the attack along with the shield item from the event.
    1 point
  39. JavaScript is not relevant for Minecraft modding, Minecraft mods are written in Java (Java is to JavaScript like car is to carpet). MCreator is not a good tool for making mods. If you want to make mods, you need to learn Java.
    1 point
  40. You're not going to make this work. Sorry! Here's the code that handles whether or not the player can wear a pumpkin: public static EntityEquipmentSlot getSlotForItemStack(ItemStack stack) { if (stack.getItem() != Item.getItemFromBlock(Blocks.PUMPKIN) && stack.getItem() != Items.SKULL) { if (stack.getItem() instanceof ItemArmor) { return ((ItemArmor)stack.getItem()).armorType; } else if (stack.getItem() == Items.ELYTRA) { return EntityEquipmentSlot.CHEST; } else { return stack.getItem().isShield(stack, null) ? EntityEquipmentSlot.OFFHAND : EntityEquipmentSlot.MAINHAND; } } else { return EntityEquipmentSlot.HEAD; } } Which is in EntityLiving.class You'll have to instead create an item that is a subclass ItemArmor, that when right clicked, creates your block in the world (think about how Cake works, or Seeds). Your hat-block would then not have an accompanying ItemBlock, and would instead drop the hat armor when broken.
    1 point
×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.