20

I have a small Minecraft server (beta 1.5), and every time I log in via offline mode from a client, my name is "Player". How can I change that?

I know of a way to do it in Windows but it doesn't help.

The major problem is when others connect to my server they take "Player" as a name and it kicks me off.

The server's property is set to:

online-mode=false

I can't change this to true.

I'm running the latest version of Ubuntu, and running the client from the terminal using the following command (EDIT: running with sudo, not a good idea, I know...need to get that fixed):

sudo ./minecraft-1.5.jar

EDIT: I found the code that I was talking about but it never worked for me:

java -cp ~/.minecraft/bin/minecraft.jar:~/.minecraft/bin/lwjgl.jar:~/.minecraft/bin/lwjgl_util.jar:~/.minecraft/bin/jinput.jar: -Djava.library.path=~/.minecraft/bin/natives -Xmx1024M -Xms512M net.minecraft.client.Minecraft '"'$USER'"'

and for Windows:

java -Xms512m -Xmx1024m -cp "%APPDATA%\.minecraft\bin\*" -Djava.library.path="%APPDATA%\.minecraft\bin\natives" net.minecraft.client.Minecraft '"'%1'"'

Latest update: it works!

I didn't realize that the first part (starting with -cp), was the folder that I ran my game from was the wrong directory, remember that I start the game with sudo, that was the reason I failed, it should have been:

/root/.minecraft/bin/*

Also I have to run this with 'sudo' or it won't work...the errors pile up, which as it turns out, and I didn't realize, is because it couldn't find any main class files, which I figured out rereading the man for 'java'

As a side win, this code now allows me to press the "Quit" button which was missing because of the way I started the game in the terminal.

4
  • 9
    Is there a reason you're running Minecraft as root?
    – user3389
    Commented Jun 14, 2011 at 9:41
  • 2
    yea, i found that my keyboard doesnt work without sudo... Commented Jun 14, 2011 at 17:54
  • i posted the code i found, windows works but linux, no...if any1 understands how the java works let me know (at least the ':' parts) Commented Jun 14, 2011 at 18:22
  • Bug solution in short: don't use tildes.
    – xfs
    Commented Jun 17, 2011 at 13:02

5 Answers 5

12

I don't have access to Minecraft on Linux at the moment, but that command line looks suspicious. Give this a try:

java -Xms512m -Xmx1024m -cp "$HOME/.minecraft/bin/*" -Djava.library.path="$HOME/.minecraft/bin/natives" net.minecraft.client.Minecraft "$USER"

If it still isn't working for you, knowing what does happen (error messages, lets you in but has wrong name, …) would be helpful for further troubleshooting. :-)

Edited: Work on Ubuntu 12.04 x32

*P.S.: after "$USER" you can also add "$PASSWORD" "$SERVER" *

13
  • pastebin.com/MVDvj1xM <-- error log
    – user8949
    Commented Jun 15, 2011 at 0:49
  • Not possible without modification to jars. No builtin support for command-line parameters.
    – xfs
    Commented Jun 15, 2011 at 5:23
  • @xfs, the code above, doesnt modify jar file, instead its supposed to inject a name, original files stay the same Commented Jun 15, 2011 at 6:44
  • That asterisk (…/bin/*) is expanded by the shell; you need to quote it so java sees it correctly.
    – Fred Nurk
    Commented Jun 15, 2011 at 8:59
  • 1
    Java does its own expansion, according to the java manpage: "As a special convenience, a class path element containing a basename of * is considered equivalent to specifying a list of all the files in the directory with the extension .jar or .JAR (a java program cannot tell the difference between the two invocations)."
    – Fred Nurk
    Commented Jun 15, 2011 at 23:36
5

TL;DR: Use a launcher which can modify the name. Or use some long-winded terminal command to manipulate it.

Long answer:

The offline mode in the Minecraft server does not require players to authenticate with the Minecraft account database. However, when you:

  • Directly run the minecraft.jar file
  • Use the "Play Offline" function of the original Minecraft launcher.

Your in-game name would be "Player".

The only way to change this is to:

  • Use an un-offical launcher which can change the name (eg. MinecraftSP)
  • The command line
  • Editing the source code and recompiling it

When you do any of these methods successfully, your in-game name will then be different, without requiring to authenticate with the Minecraft account database for verification. This verification is done with servers with online-mode=true, thus people who use these methods are unable to join those servers.

Please note that when you use any of these methods in conjunction with the Minecraft files (minecraft.jar and others), it is illegal if you did not buy the game.

17
  • 5
    On what grounds is changing a string in the bytecode illegal?
    – Kevin Reid
    Commented Jun 14, 2011 at 14:34
  • 2
    what a person does with software after purchase, in terms of modding isnt illigal(if its my server), anyway this isnt an answer. Also, the way u say is illigal, is by having a .minecraft folder in ure home folder isnt an illigal jar file, the jar is always original, non modded (at least in this case). Commented Jun 14, 2011 at 18:00
  • 1
    AN example of this low level modding is: if i were to use google chrome to edit a string on this page, its only limited to me, upon refresh it would disappear, as i only changed a string on how i see it, no laws broken, only what i see it different, like the server which is mine Commented Jun 14, 2011 at 18:07
  • 2
    @bckbck: there is no illigal launchers, you run minecraft in linux with a script, aka launcher", the way i wanna start minecraft is my business, it canot be illigal, ie: inside my bash script: sleep 5s; echo "this is my launcher"; sudo ./minecraft.jar; exit 0; Commented Jun 15, 2011 at 6:48
  • 2
    @krack I have updated my answer
    – user8949
    Commented Jun 15, 2011 at 12:41
2

Although the title only mentions linux, the OP mentions Windows, and searching brought me here.

I thought I might share my Windows offline name changing solution which I use for testing my plugins when I need multiple clients connected all under different names, naturally.

@SET /P IGN=IGN=
@java -Xms512m -Xmx512m -cp "%APPDATA%/.minecraft/bin/*" -Djava.library.path="%APPDATA%/.minecraft/bin/natives" net.minecraft.client.Minecraft %IGN%

I put the above into a file named Offline.bat When I double click that file, it will open a command window and prompt you to enter the In-Game Name (IGN) you wish to use. Simply enter the name you want to use in and press enter to launch Minecraft in offline mode with that name.

1

I was googling offline mode minecraft mac, this was the first site on the list. Thanks to the Unix code I was able make an easy workaround the the info here. I wrote a simple and ugly AppleScript for mac/osx to accomplish the same if you have it installed in the default path. I'm working off of OS X 10.6.8, so I'm unsure if it will work with other versions.

Copy + Paste to new applescript, compile, save as application, launch.

property user_name : "Player"
display dialog "Enter A User Name" default answer "" buttons {"Cancel", "Continue"} default button 2
set the user_name to text returned of the result

set UsrApp to (path to current user folder)
set UsrApp_unx to POSIX path of UsrApp

set MineScript to "java -cp " & UsrApp_unx & "Library/Application\\ Support/minecraft/bin/minecraft.jar:" & UsrApp_unx & "Library/Application\\ Support/minecraft/bin/lwjgl.jar:" & UsrApp_unx & "Library/Application\\ Support/minecraft/bin/lwjgl_util.jar:" & UsrApp_unx & "Library/Application\\ Support/minecraft/bin/jinput.jar: -Djava.library.path=" & UsrApp_unx & "Library/Application\\ Support/minecraft/bin/natives -Xmx1024M -Xms512M net.minecraft.client.Minecraft '" & user_name & "'"

do shell script MineScript

Edit: Also works in Lion

1
  • The code posted above is not the correct syntax for Mac OSX 10.6.8 with Java 1.6.0.29. I am working on the correct syntax but I don't know AppleScript. Can you post a corrected (working) version of the code if you get a chance? Thanks
    – kpuffs
    Commented Jan 11, 2012 at 18:49
1

For Linux, if you use sudo, the ~ will be the root home folder, so it needs to be:

sudo java -cp /home/"username"/.minecraft/bin/minecraft.jar:/home/"username"/.minecraft/bin/lwjgl.jar:/home/"username"/.minecraft/bin/lwjgl_util.jar:~/.minecraft/bin/jinput.jar: -Djava.library.path=/home/"username"/.minecraft/bin/natives -Xmx1024M -Xms512M net.minecraft.client.Minecraft '"'$USER'"'

Where it says "username", substitute your user name without the quotes.

It worked for me on Ubuntu 11.04.

1
  • 2
    You should not need to use sudo to play minecraft. In fact, I'd recommend AGAINST it.
    – Broam
    Commented Feb 3, 2012 at 13:53

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .