Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 03/23/22 in all areas

  1. Introduction Xironite is an interactive Towny server dedicated to keeping a close-knit community through hosting weekly 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 by recruiting residents to help them. If competition is more your speed, you can compete against other towns in a variety of contests! You can create the largest town with the best buildings with your friends or dominate the economy and skill leaderboards! Additionally, we have moved forward towards becoming a Network, where we feature a Creative server. Our new Creative server is perfect for building freely with friends, sketching out builds, and planning your town layout in advance! Xironite also adds numerous features to Survival, making it feel fresh once again. We are able to accomplish this with classes & professions, custom textures, custom enchants, custom weapons & tools, custom bosses & mobs, dungeons, custom Iris world, and so much more! Xironite has plenty to keep you busy by catering to all of your entertainment needs in Minecraft. On top of all that, our player rank perks and other donor store related items can be earned in-game through playtime and resource gathering. No need to pay to win! Xironite is constantly evolving based on player feedback and ideas from our amazing management. Join now today and don’t miss out on our next event! How to Join? Join now using our IP: mc.xironite.org Notable Features Custom Bosses & Mobs Tournaments Dungeons Crates & Lootbags Consistent Events Robust Anti-Cheat Quests Player Economy Casino Friendly & Active Community Custom Enchants Custom Tools & Armor Custom Iris World Classes & Professions PyroMining & PyroFishing Player Feedback & Suggestions Custom Textures ...and much more! Social Media Outlets Discord Instagram YouTube TikTok
    52 points
  2. Xironite Minecraft Server [1.8.x – 1.18.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
    31 points
  3. Don't ask awkward questions. Mojang code is PERFECT, and NEVER NEEDS FIXING.
    9 points
  4. From a user standpoint, I don't see much reason to use 1.19.2 over 1.19.3. The lack of content changes means there is no reason to not migrate to 1.19.3 other than mods that never got a chance to update (and to me, it seems unlikely someone who jumped on 1.19.2 would not also jump on 1.19.3) On the other hand, 1.18.2 has been around long enough to build up a decent select of mods. I would rather give it more time for those mods to stabilize and expand then have another short-lived LTS version.
    6 points
  5. I can appreciate the conundrum this is creating for Forge and the need to make a decision. However; I believe another aspect that needs serious consideration and focus is the balancing of LTS to serve the needs of the 'large mod' devs and the modded community QOL vs the eternal chase of the newest shiny version number. If "LTS" is going to start changing even faster than it used to and end up on the same Major version as Latest then "LTS" will no longer have any useful meaning and should just be called something else so as to not be mocking everyone. I have known several mod devs over the last decade who finally gave up modding even though they loved it because of the constant version grind. They were working on large mods that had great potential for even more development but it felt to the devs like they were spending most of their time updating their mods for the next version instead of being able to work on the features and improving the infrastructure. Sure, updating simple mods as well as essentially complete mods may not be too bad most of the time, except for when more "game-breaking" changes are made by Mojang which affect their mod. But even then it becomes a ridiculous maintenance chase which is not at all conducive to the development of new and improved mods. One aspect of Minecraft modding that has singularly contributed so very much to the modded experience and development are the `Mod Islands` that we are all familiar with. Examples being; beta 1.7.3, 1.7.10, and 1.12.2. Of which I believe 1.18.2 could be a great choice for the next one for various reasons. Modding was able to continue and build up on these levels permitting a large and varied selection of mods and experiences for players as well as time for developers to work on large mod projects which are amazing. These are Modded Ecosystem versions of Minecraft. I hate asking anything that would make more difficulty for your team, but I sincerely believe that another LTS level, perhaps VLTS (Very Long Term Support) or ELTS (Ecosystem Long Term Support), that could be attached to a selected final Major version which has certain qualities, would contribute an incredible amount to the Minecraft Modded community, both for the mod devs as well as the community members looking for a stable/large & varied mod ecosystem that can offer them more than just the handful of new baubles that a new rolling and buggy mc version will give them. I'd argue that the people Most concerned with always playing the bleeding edge version of mc are not the only ones who the entire modding system and community should be bent to serve at all costs. Doing so at the expense of what I spoke about in the last paragraphs would do the entire community a great disservice and knee-cap the best possible mod development. Please consider VLTS/ELTS, or at the very least keeping LTS as the final version of the prior Major version for some sane degree of mod community and dev stability. This will have benefits far outweighing trying to maintain some past rules technicalities at the expense of the entire purpose of the project and community. Thank you for all you have done over the years and are planning to continue doing. We all owe you a great debt of gratitude. P.S. Adding ELTS could be considered a mod community investment project; creation of a Stable Nursery for new mod and mod ecosystem development. This would be an incredibly attractive place for devs to be able to catch their breath and just focus on pure mod development, and for players to just build and enjoy collections of mods with increasing options for more mods and synergies without the dark pattern of feeling like they have to jump to the newest "version" of mc pulling at them as much, which makes them lose mods again and again which actually reduces the draw of modded vs vanilla. tbh; The modding community shouldn't be run into the ground by the marketing needs of Mojang and Microsoft. They have their legitimate concerns and things they need to do, but those are not the same thing as what best serves the modding community.
    3 points
  6. I feel like making the .0 version LTS is risky because judging by the past .0 versions contain more bugs than other versions. My suggestion would be having the latest version of the previous major version (1.18.2) as LTS and the latest of the current major version (1.19.3) as current and adding the previous minor version (1.19.2) as a sort of MTS that gets unsupported as soon as a new version (major or minor) drops.
    3 points
  7. As a note, the plan is to have 1.19.3's first RB be January 1st. Because I like that date and it gives people time to look at things during Christmas break. So this poll will stay open until that time and be what we do.
    3 points
  8. Hi, We've had a strange pattern of spam bots flooding our forums recently; they seem to take over accounts that have not been touched in over a year through some unknown mechanism. We have no reason to believe we have been breached, there is no evidence of intrusion or malicious access. It simply appears that these accounts were poorly secured. As a precaution, we've decided to reset the password of every account on the forum. If you're unable to access your email account, you may reach out to us for a manual reset and change of email account (as long as you can prove you own that account!). Please remember best security practices; use a password manager and strong, automatically generated passwords (we recommend keepass, lastpass, or dashlane), and don't reuse passwords across sites. If you feel like this is too much hassle, we've also enabled the option for you to link a Google account and use it to log in, with no password required (after the initial reset, that is) Sorry for the inconvenience, but we believe this is a necessary step to secure our systems. Thanks.
    3 points
  9. Rules: Support is only provided for the current latest and LTS versions. Currently this is 1.19 and 1.18.2 respectively. Asking about versions other than Latest and LTS is against the rules and will get your thread locked. Providing support for versions other than Latest and LTS is against the rules and will earn you a warning and eventually a ban. Do not post in existing support threads even if you think you have the same problem. No two problems are alike. "But the crash looks the same" does not matter. You must include the log files in your post, otherwise we cannot help you. Use a service like Pastebin.com or GitHub Gist. Do not use a file sharing service like Mediafire, Google Drive, Dropbox, etc. and do not attach the file to your forum post. When asking about a problem with the installer: The installer log will be created in the same place as the installer and be called either installer.log or have the same name as the installer, but ".log" on the end. Otherwise: See "How do I get the debug.log" below. Piracy ("cracked launchers") are strictly forbidden and you will be banned for using them. Buy the game. How do I get the debug.log? Using Mojang's launcher directly: Using the Curseforge launcher: How do I install Forge? Make sure you have Java installed. Download the Forge Installer from the official Files page. Double-click the Installer to run it. If this does not work even if you have Java installed, you can use Jarfix (Windows only) or run the file from the command line instead. Make sure the Minecraft Launcher is not running. Choose the "Install Client" option and click "Ok". It is highly recommended you run any modded versions in separate folders using the Game Directory setting in the vanilla launcher. This will store all your save files, configs, mods, etc. in whatever folder you specify (instead of just .minecraft) so they do not interfere with your vanilla installation (or other modded versions you may have installed) and vice versa. To set it, click "Edit Profile" in your launcher and in the settings screen that pops up, modify the "Game Directory" setting How do I install Java? This depends on your operating system. We recommend using Adoptium. Why are mods not loaded from /mods/<version number> anymore? This feature was superseded by a vanilla launcher feature called Installations. Use the "Game directory" option to change where mods, worlds, configurations, etc. are stored. How do I set up a Forge server? Follow steps 1-3 of "How do I install Forge". Choose the "Install Server", select an empty directory and click "Ok". The generated server installation operates like a normal Minecraft server, except that you must run the forge-xxx.jar file instead of minecraft_server.xxx.jar. Do not rename the generated files, it will break your installation.
    3 points
  10. You should be using events, there is an event for "Player right clicked with an item" (PlayerUseEvent or InteractEvent or something along those lines), and an event to add text to existing item tooltips, although I can't remember what the events actually are off the top of my head. In your event handler, you need to check that the item is a stick, then perform your logic. It means that you don't have to replace the vanilla stick.
    2 points
  11. Apologies for the poor explanation on my part. If you want to use a feature, you can't easily use a template. You would need to get it through the StructureTemplateManager through the ServerLevel through the WorldGenLevel, load the data, and then generate it. TelepathicGrunt does have a tutorial on creating a custom structure through which you could use to add an extra spawn check if there is air around you. Though, imo, you're still better off with a feature since you should be able to more safely check whether you can replace the block there.
    2 points
  12. I'd say in general that dropping 1.18 is the better option. Not because 1.18 is an old version that needs to die, but rather because I think the LTS should serve as a gap between technical changes between versions. It probably seems more likely for someone stuck on 1.19.2 to have trouble moving onto 1.19.3 if the LTS version didn't stick with it and provide updates that can help the modder in question bridge their mod to the newer version. But yeah, incredibly scuffed versioning schema from Mojang nonetheless.
    2 points
  13. Favourite server, been around for 3 years and have never once gotten bored or tired of it because there's so much to do!
    2 points
  14. Best place ever, I live here now and my address is X:12943 Z:1203. Rent is cheap and wouldn't want to live anywhere else. Best server
    2 points
  15. Best minecraft server. This season gonna be epic
    2 points
  16. I love this server! Since the first time I've joined, staff & players have always been a close-knit family! Not to mention, all the custom aspects of it make it seem almost like a modded server :D
    2 points
  17. Are you going to pay for the extra people to do this? If not, do you think it is fair to divert effort from the more recent versions to support your version? forge-1.16.x has been supported for about 22 months, which is nearly twice as long as Mojang supported the vanilla version. Try getting Mojang to fix a bug in 1.16.5 that isn't a security issue. 🙂 NOTE: I am not associated with forge and played no part in this decision. The above is just my opinion based on my experience with how limited resources get deployed in software projects.
    2 points
  18. Use EntityRenderersEvent.AddLayers to add a RenderLayer to the renderer of the entity type(s) you want to change. Then in your RenderLayer.render() draw your stuff. You get passed a reference to the entity so you can access whatever data you want.
    2 points
  19. The problem is that 3d graphics are all built with triangles, so you can't get a hue-tinted diagonal line when the end points are black and white. You need to construct the quad in such a way that the diagonal edge uses the other two corners (you should be able to do this simply by moving your first vert to be last, or vice versa).
    2 points
  20. This is kind of hard to get them because items or blocks don't belong to tags, but tags belong to them : basically, an item (or a block) has a list of tags associated to it. Luckily, there's another way to get the tag rather than looping through every item in the game and check if it has the tag you want : // This is to get the values of a tag that is bound to items : ForgeRegistries.ITEMS.tags().getTag([THE TAG YOU WANT]).stream().toList(); // Returns a List<Item> // ^ // Should be a TagKey<Item> // To get a tag that is bound to blocks : ForgeRegistries.BLOCKS.tags().getTag([THE TAG YOU WANT]).stream().toList(); // Returns a List<Block> // ^ // Should be a TagKey<Block> Hope it helps
    2 points
  21. This is a bug with IntelliJ currently: https://youtrack.jetbrains.com/issue/IDEA-292250. Workaround is to change the ForgeGradle dependency in your build.gradle as follows: classpath(group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.+', changing: true) { exclude group: 'org.apache.logging.log4j' } classpath 'org.apache.logging.log4j:log4j-api:2.11.2' classpath 'org.apache.logging.log4j:log4j-core:2.11.2'
    2 points
  22. Hi, this article is more of a experience sharing instead of a tutorial, the code themselves should be self-explanatory, and the way I do things may not be the best practice, or most efficient. Product: I started with the textures, we need the textures/icons that are being rendered to the world, and the ones for the UI. The blue textures are used when the option is hovered. Then, we need to find out where the mouse is at and which one is selected, we can check the distance and angle from the screen center and decide which part it is on: private int getHoveringType(Minecraft minecraft) { double mX = minecraft.mouseHelper.getMouseX(); double mY = minecraft.mouseHelper.getMouseY(); double actualW = minecraft.getMainWindow().getWidth() / 2.0F; double actualH = minecraft.getMainWindow().getHeight() / 2.0F; double mX2 = mX - actualW; double mY2 = mY - actualH; double angle = AVAWeaponUtil.getAngleFromCoord(mX2, -mY2) + 30; if (Math.sqrt(mX2 * mX2 + mY2 * mY2) <= 15 * minecraft.getMainWindow().getGuiScaleFactor()) return -1; if (angle > 360 || angle <= 60) return 0; return ((int) angle / 60); } public static double getAngleFromCoord(double x, double y) { double angle; angle = abs(atan2(x, y) * 180.0D / PI); if (x < 0) angle = 360 - angle; return angle; } In this case the angle is 60 because 360 / 6 options = 60, and if the mouse is within radius of 15 from the screen center then no action is performed (-1) And then the rendering can be done. @Override public void render(Minecraft minecraft, PlayerEntity player, MatrixStack stack, IPlayerAction capability, float screenWidth, float screenHeight) { float x = screenWidth / 2.0F; float y = screenHeight / 2.0F; float size = 60; int type = getHoveringType(minecraft); AVAClientUtil.blit(stack, type == -1 ? UI_BG_LIT : UI_BG, x - size, y - size, x + size, y + size); for (int i = 0; i < 6; i++) { stack.push(); stack.translate(x, y, 0.0F); stack.rotate(Vector3f.ZP.rotationDegrees(i * 60)); stack.translate(-x, -y, 0.0F); AVAClientUtil.blit(stack, type == i ? UI_BG_2_LIT : UI_BG_2, x - size, y - size, x + size, y + size); stack.pop(); } AVAClientUtil.blit(stack, UI_BG_ICON_LAYER, x - size, y - size, x + size, y + size); } public static void blit(MatrixStack stack, @Nullable ResourceLocation texture, float x1, float y1, float x2, float y2) { if (texture != null) Minecraft.getInstance().getTextureManager().bindTexture(texture); Matrix4f matrix = stack.getLast().getMatrix(); Tessellator tessellator = Tessellator.getInstance(); BufferBuilder bufferbuilder = tessellator.getBuffer(); bufferbuilder.begin(7, DefaultVertexFormats.POSITION_TEX); bufferbuilder.pos(matrix, x1, y2, 0.0F).tex(0.0F, 1.0F).endVertex(); bufferbuilder.pos(matrix, x2, y2, 0.0F).tex(1.0F, 1.0F).endVertex(); bufferbuilder.pos(matrix, x2, y1, 0.0F).tex(1.0F, 0.0F).endVertex(); bufferbuilder.pos(matrix, x1, y1, 0.0F).tex(0.0F, 0.0F).endVertex(); tessellator.draw(); } If the type is -1, then the circle at the center use the blue texture. Otherwise if the type equals the index of the option, it uses the blue texture (or just use RenderSystem.color4f). By rotating an identical texture we don't need to have 6 different textures for each option. public static boolean ACTIVE = false; public static Vector3d VEC = null; @Override public void tick(Minecraft minecraft, PlayerEntity player) { if (minecraft.isGameFocused() && minecraft.currentScreen == null && AVAClientConfig.ENABLE_PING_HOTKEY.get()) { if (AVAClientUtil.middleMouseDown()) { if (!ACTIVE) { Vector3d eye = AVAWeaponUtil.getEyePositionFor(player); BlockRayTraceResult result = player.world.rayTraceBlocks(new RayTraceContext(eye, eye.add(player.getLookVec().scale(100.0F)), RayTraceContext.BlockMode.VISUAL, RayTraceContext.FluidMode.NONE, player)); if (result.getType() != RayTraceResult.Type.MISS) { ACTIVE = true; minecraft.mouseHelper.ungrabMouse(); if (minecraft.gameSettings.keyBindPickBlock.getKey().getKeyCode() == GLFW.GLFW_MOUSE_BUTTON_MIDDLE) AVAClientUtil.unpressKeybind(minecraft.gameSettings.keyBindPickBlock); VEC = result.getHitVec(); } } } else { int type = getHoveringType(minecraft); if (ACTIVE && VEC != null && type != -1) AVAPackets.INSTANCE.sendToServer(new PingMessage(VEC, ActivePingEffect.Type.values()[type])); reset(minecraft); } } else reset(minecraft); } If player's focusing, the middle mouse is down, then we check if there's terrain (block) in player's sight within 100 blocks, if not, reset the vec, regrab the mouse and set active to false. MouseHelper#ungrabMouse call allows players to move mouse around the screen. Once we have the VEC set (where the ping will occur), we can render a line between the center of the screen and the ping location. (White line) { ActiveRenderInfo info = minecraft.gameRenderer.getActiveRenderInfo(); Vector3f view = info.getViewVector(); Vector3d vec = info.getProjectedView().add(view.getX(), view.getY(), view.getZ()); drawLine(stack, (float) vec.x, (float) vec.y, (float) vec.z, (float) pingVec.x, (float) pingVec.y, (float) pingVec.z, 255, 255, 255, 1.0F) } public static void drawLine(MatrixStack stack, float x1, float y1, float z1, float x2, float y2, float z2, int r, int g, int b, float a) { AVAClientUtil.drawTransparent(true); IRenderTypeBuffer.Impl impl = IRenderTypeBuffer.getImpl(Tessellator.getInstance().getBuffer()); IVertexBuilder builder = impl.getBuffer(RenderType.LINES); Vector3d view = Minecraft.getInstance().gameRenderer.getActiveRenderInfo().getProjectedView(); stack.push(); stack.translate(-view.x, -view.y, -view.z); Matrix4f matrix = stack.getLast().getMatrix(); builder.pos(matrix, x1, y1, z1).color(r, g, b, (int) (a * 255.0F)).endVertex(); builder.pos(matrix, x2, y2, z2).color(r, g, b, (int) (a * 255.0F)).endVertex(); stack.pop(); impl.finish(); AVAClientUtil.drawTransparent(false); RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F); } If you did not add the look offset to the camera position it will not be visible. Then we send a packet to the server to notify all other players that I've ping the location. Once players receives the location of the pings, it's time to render them. RenderSystem.disableDepthTest(); AVAClientUtil.drawTransparent(true); Vector3d view = Minecraft.getInstance().gameRenderer.getActiveRenderInfo().getProjectedView(); Vector3d vec = activePing.getVec(); double distance = activePing.getVec().distanceTo(view); if (distance > 100.0F) continue; renderObjectAt(minecraft, activePing, world, stack, (float) (distance / 20.0F), 0.0F, activePing.getTexture()); double x = vec.x - view.getX(); double y = vec.y - view.getY(); double z = vec.z - view.getZ(); stack.push(); stack.translate(x, y, z); stack.rotate(minecraft.getRenderManager().getCameraOrientation()); stack.rotate(Vector3f.ZP.rotationDegrees(180.0F)); float size = (float) (distance / 200.0F); stack.scale(size, size, size); IRenderTypeBuffer.Impl impl = IRenderTypeBuffer.getImpl(Tessellator.getInstance().getBuffer()); String text = AVACommonUtil.round(distance, 2) + "m"; minecraft.fontRenderer.func_243247_a(new StringTextComponent(text), -minecraft.fontRenderer.getStringWidth(text) / 2.0F, 10, AVAConstants.AVA_HUD_TEXT_WHITE, false, stack.getLast().getMatrix(), impl, true, 0, 15728880); impl.finish(); stack.pop(); private static void renderObjectAt(Minecraft minecraft, EnvironmentObjectEffect object, World world, MatrixStack stack, float size, float offsetScale, ResourceLocation texture) { Vector3d vec = object.getVec(); stack.push(); Vector3d view = Minecraft.getInstance().gameRenderer.getActiveRenderInfo().getProjectedView(); double x = vec.x - view.getX(); double y = vec.y - view.getY(); double z = vec.z - view.getZ(); if (Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2) + Math.pow(z, 2)) > 100.0F) return; stack.translate(x, y, z); Direction direction = object.getDirection(); if (direction != null) { Vector3i offset = direction.getDirectionVec(); stack.translate(offset.getX() * offsetScale, offset.getY() * offsetScale, offset.getZ() * offsetScale); rotateByDirection(stack, direction); } else { stack.rotate(minecraft.getRenderManager().getCameraOrientation()); stack.rotate(Vector3f.ZP.rotationDegrees(180.0F)); } if (object.doBlend()) { Color colour = new Color(world.getBlockState(object.getPos()).getMaterialColor(world, object.getPos()).colorValue); RenderSystem.color4f(colour.getRed() / 255.0F, colour.getGreen() / 255.0F, colour.getBlue() / 255.0F, object.getTransparency()); } AVAClientUtil.blit(stack, texture, -size, -size, size, size); RenderSystem.color4f(1.0F, 1.0F, 1.0f, 1.0F); stack.pop(); } In the code I change the size of the object according to the distance ( (distance / 20.0F) ), so the object will stay at similar size no matter the distance between them, and so does the text size. The direction is always null, and doBlend is false. They are used in my other renderings.
    2 points
  23. I had the same problem with "Hawla/Waila" and "Jade", that they don't work with each other I only saw at second glance when I read the text on curseforge. And from the file names they seem to be visually two different mods.
    2 points
  24. 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
    2 points
  25. You installed CreativeCore, Jei and Comforts for 1.19.2. Make sure all other Mods you have installed are compatible with 1.19.
    1 point
  26. Thank you, for some reasone I didn't tried that and I thought it wasn't necessary since you override it 😅 Added outside the base object, now it works
    1 point
  27. One of these mods has injected some bad code into the Minecraft class. From what is being accessed I would guess is it better_loading_screen? But it could be anything mentioned above. NOTE: For some bizarre reason better loading screen has 2 different v1.4.0 jars, one is for 1.16 the other for 1.18 - make sure you have the correct one. https://www.curseforge.com/minecraft/mc-mods/betterloadingscreen/files If that doesn't fix it, you are probably going to have to rebuild this modpack from scratch and test each mod works individually. That way you will know which mod causes the problem and not hit roadblocks like this.
    1 point
  28. Mods like Radium are not recommended to use. Those magic performance Mods increasing the game performance by breaking game logic. This "new game logic" can then lead issues and conflicts with other Mods. If you don't need Radium to 100% then you should remove it.
    1 point
  29. This seems to have fixed the x-ray issue. Thanks!
    1 point
  30. Try adding a call to '.noOcclusion()' on the BlockBehaviour.Properties when you create the block.
    1 point
  31. 21:35:31[ERROR] [ne.mi.ev.EventSubclassTransformer/EVENTBUS]: An error occurred building event handler java.lang.RuntimeException: Attempted to load class net/minecraft/client/gui/screens/Screen for invalid dist DEDICATED_SERVER -- snip -- at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?] {} at com.minecraftserverzone.jrhc.setup.capabilities.PlayerStatsProvider.serializeNBT(PlayerStatsProvider.java:38) ~[jrhc-1-18-x.jar%2371!/:1-18-x] {re:classloading} Looks like an issue with the jrhc mod. It is trying to load client/gui classes on the server. Check you have the latest version then contact the mod author.
    1 point
  32. general advice: hit ctrl+space after the dot (before the method name). you get a list of methods. how many take a single argument of type Hand and return nothing? i'm guessing you're using old game version so we likely won't help you more.
    1 point
  33. This latest one (released yesterday) says it supports 1.19, 1.19.1 and 1.19.2: https://www.curseforge.com/minecraft/mc-mods/wthit-forge/files/3944308
    1 point
  34. Just make sure you have the latest/correct version of wthit for your version of minecraft. https://www.curseforge.com/minecraft/mc-mods/wthit-forge/files/all?filter-game-version=1738749986%3a73407 If that doesn't fix it, contact the mod author. It's already 10 posts into this question and all there is guesswork because the original poster didn't post the full error message or the logs.
    1 point
  35. Hwyla is also a fork of Waila, make sure you use the latest version of the Mod.
    1 point
  36. This stuff is not that difficult to find: Server.getPlayerList().getBans() BanPlayerCommands PardonCommand
    1 point
  37. At least one of your installed Mods is written for an older version of Minecraft. Make sure you use the latest versions of the Mods you using. Post debug.log from the logs folder for further informations.
    1 point
  38. Not to the vanilla overworld. Things you can do include; * override/replace the vanilla overworld using the datapack mechanism - not recommended for a mod to do by default * use a WorldPreset to create a new "world type" that appears in the "create new world screen" and has a copy of the vanilla overworld with your biome included * use an existing library mod like: https://www.curseforge.com/minecraft/mc-mods/terrablender There are probably other options along similar lines.
    1 point
  39. It's a file in the logs folder of your game directory. The file can also be named debug if you have file extensions disabled. If you using CurseForge you need to enable the debug.log in the settings.
    1 point
  40. Like warjort already said, this is not possible to check easily. You can attempt to break any block, the block then determines how far along you are at breaking it (BlockState#getDestroyProgress). Unbreakable blocks like bedrock just keep returning 0 here no matter how long you mine them for, but this is not easy to detect. See ServerPlayerGameMode#incrementDestroyProgress and where it is used as well.
    1 point
  41. Looks like an issue with Cataclysm and Assembly Line Machines.
    1 point
  42. They just sent a generic packet to the minecraft port which immediately disconnected them because their "hello" was garbage, so no problem there. You might have a problem if they actually found a vulnerability on a different port. But this is getting off topic for this forum.
    1 point
  43. I am not sure I understand what you are doing, but entity hitboxes are controlled by Entity.getDimensions(Pose). See Entity.refreshDimensions() for the full logic. For how the game determines what to interact with, see GameRenderer.pick()
    1 point
  44. The reviveCaps() worked for me. I'm using forge 37.0.67. My Clone Event: public static void onDeath(PlayerEvent.Clone event) { if (event.isWasDeath()) { event.getOriginal().reviveCaps(); event.getOriginal().getCapability(ModCapabilityImpl.MOD_CAPABILITY).ifPresent(oldStore -> { event.getEntity().getCapability(ModCapabilityImpl.MOD_CAPABILITY).ifPresent(newStore -> { newStore.copyForRespawn((ModCapabilityImpl) oldStore); }); }); event.getOriginal().invalidateCaps(); } } In my IModCapability: void copyForRespawn(ModCapabilityImpl oldStore); In my ModCapabilityImpl: @Override public void copyForRespawn(ModCapabilityImpl oldStore) { this.value = oldStore.value; } Hope this helps!
    1 point
  45. Could you provide some examples? I'm simply using mixins because I know it works and I've seen many examples of people using them to successfully create packet events: https://github.com/Hexeption/Nitro-Client/blob/master/src/main/java/uk/co/hexeption/client/mixin/mixins/MixinNetworkManager.java, https://github.com/cabaletta/baritone/blob/master/src/launch/java/baritone/launch/mixins/MixinNetworkManager.java, https://git.liquidbounce.net/CCBlueX/LiquidBase/blob/4b53d25e2893dbc5521d9a831a652b792f7803ea/src/main/java/net/ccbluex/liquidbase/injection/mixins/MixinNetworkManager.java, https://www.programcreek.com/java-api-examples/?code=ImpactDevelopment/ClientAPI/ClientAPI-master/src/main/java/clientapi/load/mixin/MixinNetworkManager.java, http://codingdict.com/sources/java/net.minecraft.network/53728.html
    1 point
  46. I’d welcome any examples of a better way to do this?
    1 point
  47. For anyone else looking for this in the future, create mixins for net.minecraft.network.NetworkManager like so: @Inject(method = "sendPacket(Lnet/minecraft/network/Packet;)V", at = @At("HEAD"), cancellable = true) private void onSendPacket(Packet<?> packet, CallbackInfo callbackInfo) { //System.out.println("Packet Sent: " + packet.toString()); PacketSent event = new PacketSent(packet); MinecraftForge.EVENT_BUS.post(event); if (event.isCanceled() && callbackInfo.isCancellable()) { callbackInfo.cancel(); } packet = event.packet; } @Inject(method = "channelRead0", at = @At("HEAD"), cancellable = true) private void onChannelRead(ChannelHandlerContext context, Packet<?> packet, CallbackInfo callbackInfo) { //System.out.println("Packet Recieved: " + packet.toString()); PacketRecieved event = new PacketRecieved(packet); MinecraftForge.EVENT_BUS.post(event); if (event.isCanceled() && callbackInfo.isCancellable()) { callbackInfo.cancel(); } packet = event.packet; } PacketSent and PacketRecieved are custom events that you can make yourself by making a class that extends Event.
    1 point
×
×
  • Create New...

Important Information

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