Jump to content

Recommended Posts

Posted

I'm very new to Minecraft modding, and one thing that's still causing me some confusion is the client/server dichotomy. From what I understand (via reading the Forge documentation), they're separate and it's very bad to do things on the wrong side. My questions are:

  • How do I know which side to do something on?
  • How do I know when it matters? Does every single statement need to be prefaced with something like if (world.isRemote()) {}?
  • How can I check that I've done things correctly? There's a 'runServer' thing in IntelliJ, but it says I need to agree to the EULA somehow and I don't know how to do that.
  • Where can I go to learn more? (I've already read the Forge documentation.)
Posted
1 hour ago, Syric said:

How do I know which side to do something on?

Things related to input and graphics are done on the client. Most other things related to the actual logic of the game should be done on the server.

1 hour ago, Syric said:

How do I know when it matters? Does every single statement need to be prefaced with something like if (world.isRemote()) {}?

A bit of common sense goes a long way. For example, if you want to damage the player, you only want to do that on the server, since it is the server that keeps track of all the players and their state. If you want to place a block, you have to do it on the server, otherwise you end up with 'ghost-blocks' etc.

1 hour ago, Syric said:

How can I check that I've done things correctly? There's a 'runServer' thing in IntelliJ, but it says I need to agree to the EULA somehow and I don't know how to do that.

When you use runServer for the first time a text file called eula.txt should be generated, which you have to edit to set 'eula=true' and then run the server again. But using runServer is not guaranteed to catch all errors related to sides, since it will only crash if you are using a method on the physical server that only exists on the physical client (for instance rendering methods).

1 hour ago, Syric said:

Where can I go to learn more? (I've already read the Forge documentation.)

This page explains it in pretty good detail.

  • Thanks 1
Posted (edited)
4 hours ago, Syric said:

How can I check that I've done things correctly? There's a 'runServer' thing in IntelliJ, but it says I need to agree to the EULA somehow and I don't know how to do that.

3 hours ago, vemerion said:

When you use runServer for the first time a text file called eula.txt should be generated, which you have to edit to set 'eula=true' and then run the server again. But using runServer is not guaranteed to catch all errors related to sides, since it will only crash if you are using a method on the physical server that only exists on the physical client (for instance rendering methods).

the files of the server are created in the run folder of your forge mdk.
As @vemerion has already explained you have to accept the eula, you also have to know that you are not logged into your IDE-Minecraft with a mojang account,
which is why you have to set the option "online-mode" in the server server.properties file to false (Edit: this file is created at the second start after the eula has been accepted),
otherwise you cannot join the server.

Edited by Luis_ST
  • Thanks 1

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
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
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.

Announcements



×
×
  • Create New...

Important Information

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