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

[SOLVED] Help Getting Started


Recommended Posts

Hi, I'm new to modding and java. I've done a fair bit of python in the past, but that knowledge isn't really getting me anywhere at the moment.

When I've tried to learn a new programming language in the past, I usually start with the most basic thing of "Hello World" and gradually add to the code learning new things along the way, but with modding, I'm struggling to do even that.

I was wondering if anyone could provide me with a simple bit of code that I can play around with and learn from?

I was hoping for something like 'on keypress H, prints("Hello World") in the minecraft chat.

Link to comment
Share on other sites

4 hours ago, diesieben07 said:

The MDK comes with an example mod that shows how to subscribe to events and basic stuff like that.

Thanks, I've been playing around with that for a while as you recommended.

The problem now is that I don't really understand how to implement listeners.

So, on the initial load, it plays my code as I would expect it to. But for anything like checking for keypresses, I get no results. I assume that's because the script runs through once on the initial load and in order to keep it checking for inputs, you would need some sort of loop. How does it keep checking for key inputs without just crashing in an endless loop? And how do I implement a simple listener that would check for those keyinputs?

Link to comment
Share on other sites

1 hour ago, diesieben07 said:

You can use KeyInputEvent to get notified of keyboard input. I would also advise you to use a KeyMapping, so that the user can rebind your key. But this is not necessary if you are just experimenting.

Ahh!! After hours of trying, I finally got it to work. That's proper satisfying. Thanks for your help. Looking forward to experimenting more with this.

Link to comment
Share on other sites

  • sammysmalls changed the title to [SOLVED] Help Getting Started

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • accidentally knocked a cord loose while loading in better minecraft and now when i launch i get an error saying 3 mods have failed to load correctly.
    • 2b2t is the king of anarchy servers in the eyes of many in the Minecraft community. The server is synonymous with the culture at this point and almost defines the genre altogether. There are absolutely zero rules in what is often humorously described as the "oldest anarchy server in Minecraft" by the community. The server also features a huge selection of some serious YouTube names who have claimed 2b2t as their home, including the likes of FitMC and Salc1. 2b2t is an absolute must-try for any players wanting to get their feet wet in the ruthlessly intense world of pure anarchy servers. The only slight downside to this server is the ridiculously long queue times in place due to its unparalleled recent success and popularity.
    • I'm trying to make a block that is slippery in one direction: its friction depends on the angle of your motion. I've got it to work perfectly for nonplayer entities, but (once again), the player poses a different issue because of siding. My testing indicates that calling getDeltaMovement is giving (0, -1, 0) on serverside when it shouldn't be, and this screws up the calculation. How can I get accurate information here? @Override public float getFriction(BlockState state, LevelReader level, BlockPos pos, @org.jetbrains.annotations.Nullable Entity entity) { if (entity == null) { return 0.7F; } //Get a unit vector in the appropriate direction Vec3 axisUnitVector = Vec3.ZERO; if (state.getValue(AXIS) == Direction.Axis.X) { axisUnitVector = new Vec3(1, 0, 0); } else if (state.getValue(AXIS) == Direction.Axis.Z) { axisUnitVector = new Vec3(0, 0, 1); } //The block can't be placed vertically //Take the dot product of that vector with a unit vector in the direction of the entity's movement //This effectively just returns the cosine of the angle between the entity's vector and the chosen axis //i.e. 0 when perpendicular, 1 when parallel, etc. Vec3 normalizedMovement = entity.getDeltaMovement().normalize(); double dotProduct = Math.abs(normalizedMovement.dot(axisUnitVector)); //Produce a string for reporting String vectorString = "(" + StringUtils.truncate(String.valueOf(normalizedMovement.x), 4) + "," + StringUtils.truncate(String.valueOf(normalizedMovement.y), 4) + "," + StringUtils.truncate(String.valueOf(normalizedMovement.z), 4) + ")"; //Friction ranges from 0.6 to 1 depending on that cosine double finalMultiplier = Mth.lerp(dotProduct, 0.6, 1); chatPrint("Friction: " + StringUtils.truncate(String.valueOf(finalMultiplier), 5) + ", dot:" + StringUtils.truncate(String.valueOf(dotProduct), 5) + ", vector:" + vectorString + (level.isClientSide() ? "clientside" : "serverside"), (Level) level); return (float) finalMultiplier; } Walking on the block in the slippery direction produces this output: [CHAT] Friction: 0.6, dot:0.0, vector:(0.0,-1.0,0.0) serverside [CHAT] Friction: 0.981, dot:0.953, vector:(-0.0,-0.3,-0.9) clientside [CHAT] Friction: 0.6, dot:0.0, vector:(0.0,-1.0,0.0) serverside [CHAT] Friction: 0.981, dot:0.952, vector:(-0.0,-0.3,-0.9) clientside [CHAT] Friction: 0.6, dot:0.0, vector:(0.0,-1.0,0.0) serverside [CHAT] Friction: 0.981, dot:0.952, vector:(-0.0,-0.3,-0.9) clientside [CHAT] Friction: 0.6, dot:0.0, vector:(0.0,-1.0,0.0) serverside [CHAT] Friction: 0.981, dot:0.952, vector:(-0.0,-0.3,-0.9) clientside [CHAT] Friction: 0.6, dot:0.0, vector:(0.0,-1.0,0.0) serverside [CHAT] Friction: 0.980, dot:0.952, vector:(-0.0,-0.3,-0.9) clientside [CHAT] Friction: 0.6, dot:0.0, vector:(0.0,-1.0,0.0) serverside [CHAT] Friction: 0.980, dot:0.952, vector:(-0.0,-0.3,-0.9) clientside [CHAT] Friction: 0.6, dot:0.0, vector:(0.0,-1.0,0.0) serverside [CHAT] Friction: 0.980, dot:0.952, vector:(-0.0,-0.3,-0.9) clientside  
    • The 1.19 optifine previews are not compatible with forge, see the release notes: https://optifine.net/changelog?f=preview_OptiFine_1.19_HD_U_H8_pre2.jar
  • Topics

×
×
  • Create New...

Important Information

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