Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

In the source code for the native commands I see:

public String getCommandUsage(ICommandSender sender)
    {
        return "commands.kill.usage";
    }

(as an example from the CommandKill class)...

 

I have been trying to find the file that contains the help string for "commands.kill.usage" to no avail. How do I edit or create my own for my own commands?

 

 

 

Up till now I have just put the help text directly in the return statement, such as return "Command <Argument | Argument> usage"; etc.

In the source code for the native commands I see:

public String getCommandUsage(ICommandSender sender)
    {
        return "commands.kill.usage";
    }

(as an example from the CommandKill class)...

 

I have been trying to find the file that contains the help string for "commands.kill.usage" to no avail. How do I edit or create my own for my own commands?

 

Up till now I have just put the help text directly in the return statement, such as return "Command <Argument | Argument> usage"; etc.

They are localized in/from the lang files.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

  • Author

Had to reopen this question because I ran into an issue. I went ahead and created the en_US.lang file and saved it in UTF-8 with BOM. I saved the file in src/main/java/assets/testmod/lang/en_US.lang

(For the record I have tried also saving it under assets.testmod.lang in the resources file too). I have refreshed and reloaded the project...nothing.

 

Inside en_US.lang I have:

commands.testmod.usage=/testmod <command> <arguments>

 

then in my command file I have

@Override
  public String getCommandUsage(ICommandSender sender) {
    return "commands.testmod.usage";
  }

 

however, when I run /help testmod I get the string "Usage: commands.testmod.usage" rather than what it should be "/testmod <command> <arguments>". I do not understand what I am doing incorrectly.

  • Author

Everything I have read said that it needed to be "en_US.lang". However, I changed it to lowercase per your suggestion and it still isn't working. I get usage: commands.testmod.usage.

 

There seemed to be debate as to whether it should be in the src folder or the resources folder though. right now I have it in both...

Everything I have read said that it needed to be "en_US.lang". However, I changed it to lowercase per your suggestion and it still isn't working. I get usage: commands.testmod.usage.

 

There seemed to be debate as to whether it should be in the src folder or the resources folder though. right now I have it in both...

Post your lang file.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

  • Author

commands.testmod.usage=/testmod <command> /test <command> /tm <command>
commands.testmod.setpos1.usage=/testmod setpos1 sets position 1.
commands.testmod.setpos2.usage=/testmod setpos2 sets position 2.

 

this is all that is in it. File currently saved as en_us.lang. Inside assets.testmod.lang.

1.11 does require resource file names to be lowercase (en_us.lang), but Forge will add mod resources to the resource pack list using the LegacyV2Adapter class if they don't have a pack.mcmeta file or they have one that specifies pack_format as 2 (see FMLClientHandler#addModAsResource).

 

LegacyV2Adapter will load mixed case (en_US.lang) lang files, but will still require all other file names to be lowercase.

 

In summary: If you have a pack.mcmeta file with pack_format 3, use lowercase lang file names; otherwise use mixed case lang file names.

 

The assets folder belongs in src/main/resources (so it's copied to the compiled JAR), not in src/main/java (it's not source code that needs to be compiled).

Edited by Choonster
Fixed formatting errors caused by forum migration

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

  • Author

Well I seem to have gotten it working but in order to do so I had to just create an entirely new testmod. I don't have the slightest clue what was wrong with the first testmod but nothing I was doing would allow the .lang file to be recognized.

 

I should note that the first testmod file had somehow been built into it's own gradle project and was independent of my Minecraft Forge gradle project (although it could still use the forge classes etc). I closed that testmod gradle project and recoded a testmod in the Minecraft Forge src file and my .lang file is being read properly now.

 

I must have somehow screwed something up, I wish I knew what. Hopefully it continues to work for me.

 

Thanks Choonster and Animefan for the helps.

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...

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.