Return to site

Minecraft Classic Codes

broken image


  1. Minecraft Classic Codes Wiki
  2. Minecraft Classic Free

Minecraft is a game developed by Markus Persson. Visit the official site of the indie building game and browse through forums, FAQ, browser-based play, single player and multiplayer versions and server downloads for Windows, Mac, and Linux. Shop at the online store for Minecraft. Minecraft Discount Codes website view. Minecraft is a sandbox-styled independent game developed and published by Mojang. Released for the PC in 2009, it quickly grew into one of the most popular video game franchises, available now for PC, Android, Xbox 360.

It has been suggested that this page be split . Do not split pages until a consensus has been reached.[discuss]
Reason: Outdated and in-date information is being mixed, on the page of outdated server protocol. Note: It is 'Classic' protocol, not 'Current'
The contents of this page are not supported by Mojang Studios or the Minecraft Wiki.
This feature is exclusive to Java Edition.

Documentation on the server protocol used by the Minecraft Classic Creative server.

  • 1Minecraft.net Communication
  • 2Packet Protocol
  • 3Player Position

Minecraft.net Communication[edit]

Heartbeats[edit]

https://perphillcutthman1987.mystrikingly.com/blog/apple-safari-10. To be able to connect to a server in Minecraft Classic from the Server List, a server must broadcast to minecraft.net a so-called 'heartbeat' every few minutes.

The stock server broadcasts this heartbeat every 45 seconds.

A 'heartbeat' takes the form of an HTTP request to https://minecraft.net/heartbeat.jsp.After sending a heartbeat, the URL for the server is returned.

It is critical to a successful heartbeat that you leave out the 'www' in the HTTP request, as you are going to be targeting it as a URI, not a URL.

Let me download fortnite. It can be a GET or POST request. A table of the required parameters is below:

NameDetails
portPort number of the server. This is usually 25565
maxMaximum number of players on the server
nameThe name of the server
publicWhether the server is public (i.e. appears in the lobby) or not. Can be True or False, in that capitalization.
versionMinecraft version, this should be 7
saltA random, 16-character base-62 salt
usersNumber of users connected to the server

The simplest way to send a heartbeat is to open a TCP socket to port 80 on minecraft.net, and send the following (with the values changed, obviously):

GET /heartbeat.jsp?port=25565&max=32&name=My%20Server&public=True&version=7&salt=wo6kVAHjxoJcInKx&users=0, plus a CRLF(Carriage-return and Line feed). When will minecraft windows 10 update.

https://kiosktorrent.mystrikingly.com/blog/comburet-2-3-professional-disc-burning-app. Make sure any strings, like name, are escaped.

If everything goes well, in the response body you'll receive a URL to the server. Otherwise you'll get a nice HTML error message. There aren't any HTML headers to parse, as the HTTP version is not specified so HTTP/0.9 is used, which does not have headers.

User Authentication[edit]

The 'key' provided when a user joins the server can be compared to the MD5 checksum of the server's 'salt' plus the username to verify that the user is logged in to minecraft.net with that username. This is useful for establishing enough trust of the name provided to ban or op the player by name.

This is also the way that Notch prevents 'cracked,' or pirated, clients from accessing online servers. When a cracked client tries to connect to an online server, an error will come up at the connection screen saying, 'Failed to Connect: User Not Premium'

Note: This means that you should make sure your 'salt' is kept a secret and shared only with heartbeat.jsp. If your server's 'salt' is visible anywhere to users, it is trivial for users to produce valid-looking 'key's without being logged in to minecraft.net.

Packet Protocol[edit]

Every packet starts with a byte representing the Packet ID.

Protocol Data Types[edit]

TypeSize [bytes]Description
Byte1Single byte integer (0 to 255)
SByte1Single byte signed integer (-128 to 127)
Short2Signed integer, network order (-32768 to 32767)
String64US-ASCII/ISO646-US encoded string padded with spaces (0x20)
Byte array1024Binary data padded with null bytes (0x00)

Client → Server packets[edit]

Online
Packet IDPurposeField DescriptionField TypeNotes
0x00Player IdentificationPacket IDByteSent by a player joining a server with relevant information. Current protocol version is 0x07.
Protocol versionByte
UsernameString
Verification keyString
UnusedByte
0x05Set BlockPacket IDByteSent when a user changes a block. The mode field indicates whether a block was created (0x01) or destroyed (0x00).

Block type is always the type player is holding, (even when deleting).

Kincaid cheney numerical analysis solution manual. Client assumes that this command packet always succeeds, and so draws the new block immediately. To disallow block creation, server must send back Set Block packet with the old block type.

The XYZ coordinates of the block are just integers representing the coordinate of the block. (As opposed to player coordinates where the lower 5 bits are fractional coordinates)

XShort
YShort
ZShort
ModeByte
Block typeByte
0x08Position and OrientationPacket IDByteSent frequently (even while not moving) by the player with the player's current location and orientation. Player ID is always 255, referring to itself. Player coordinates are fixed-point values with the lowest 5 bits representing the fractional position (i.e. divide by 32 to get actual position in terms of block coordinates). The angle parameters are scaled such that a value of 255 would correspond to 360 degrees.
Player IDByte
XShort
YShort
ZShort
Yaw (Heading)Byte
PitchByte
0x0dMessagePacket IDByteContain chat messages sent by player.
Unused, maybe message colorByte (0xFF)
MessageString

Minecraft Classic Codes Wiki

Server → Client packets[edit]

Packet IDPurposeField DescriptionField TypeNotes
0x00Server IdentificationPacket IDByteResponse to a joining player. The user type indicates whether a player is an op (0x64) or not (0x00) Current protocol version is 0x07.
Protocol versionByte
Server nameString
Server MOTDString
User typeByte
0x01PingPacket IDByteSent to clients periodically. The only way a client can disconnect at the moment is to force it closed, which does not let the server know. The ping packet is used to determine if the connection is still open.
0x02Level InitializePacket IDByteNotifies player of incoming level data.
0x03Level Data ChunkPacket IDByteContains a chunk of gzipped map (not level.dat file). After decompression the map consists of an int(4 bytes) containing number of blocks + raw map array. (chunk is up to 1024 bytes, padded with 0x00s if less).
Chunk LengthShort
Chunk DataByte Array
Percent CompleteByte
0x04Level FinalizePacket IDByteSent after level data is complete and gives map dimensions. The y coordinate is how tall the map is.
X SizeShort
Y SizeShort
Z SizeShort
0x06Set BlockPacket IDByteSent to indicate a block change by physics or by players. In the case of a player change, the server will also echo the block change back to the player who initiated it.
XShort
YShort
ZShort
Block TypeByte
0x07Spawn PlayerPacket IDByteSent to indicate where a new player is spawning in the world. Position and orientation are encoded the same as for packet 0x08 below.
Player IDSByte
Player NameString
XShort
YShort
ZShort
Yaw (Heading)Byte
PitchByte
0x08Position and Orientation (Player Teleport)Packet IDByteSent with changes in player position and rotation. Teleports player it's sent to if player ID < 0 (For sending initial position in map, and /tp)
Player IDSByte
XShort
YShort
ZShort
Yaw (Heading)Byte
PitchByte
0x09Position and Orientation UpdatePacket IDByteSent with changes in player position and rotation. Sent when both position and orientation is changed at the same time.

Not required for server operation.

Player IDSByte
Change in XSByte
Change in YSByte
Change in ZSByte
Yaw (Heading)Byte
PitchByte
0x0aPosition UpdatePacket IDByteSent with changes in player position.

Not required for server operation.

Player IDSByte
Change in XSByte
Change in YSByte
Change in ZSByte
0x0bOrientation UpdatePacket IDByteSent with changes in player rotation.

Not required for server operation.

Player IDSByte
Yaw (Heading)Byte
PitchByte
0x0cDespawn PlayerPacket IDByteSent when player disconnects.
Player IDSByte
0x0dMessagePacket IDByteMessages sent by chat or from the console.
Player IDSByte
MessageString
0x0eDisconnect playerPacket IDByteSent to a player when they're disconnected from the server.
  1. 'Cheat detected: Distance' - happens not only when setting tile too far away from the player (how far is maximum distance and how it is measured?), but also when player moves and then immediately builds.
  2. 'Cheat detected: Tile type'
Disconnect reasonString
0x0fUpdate user typePacket IDByteSent when a player is opped/deopped

Will give or remove the client's ability of breaking Bedrock blocks

  1. User type can be either 100, which will allow the player, or 0, which will disallow the player to break Bedrock blocks
User typeByte

Player Position[edit]

Minecraft
Packet IDPurposeField DescriptionField TypeNotes
0x00Player IdentificationPacket IDByteSent by a player joining a server with relevant information. Current protocol version is 0x07.
Protocol versionByte
UsernameString
Verification keyString
UnusedByte
0x05Set BlockPacket IDByteSent when a user changes a block. The mode field indicates whether a block was created (0x01) or destroyed (0x00).

Block type is always the type player is holding, (even when deleting).

Kincaid cheney numerical analysis solution manual. Client assumes that this command packet always succeeds, and so draws the new block immediately. To disallow block creation, server must send back Set Block packet with the old block type.

The XYZ coordinates of the block are just integers representing the coordinate of the block. (As opposed to player coordinates where the lower 5 bits are fractional coordinates)

XShort
YShort
ZShort
ModeByte
Block typeByte
0x08Position and OrientationPacket IDByteSent frequently (even while not moving) by the player with the player's current location and orientation. Player ID is always 255, referring to itself. Player coordinates are fixed-point values with the lowest 5 bits representing the fractional position (i.e. divide by 32 to get actual position in terms of block coordinates). The angle parameters are scaled such that a value of 255 would correspond to 360 degrees.
Player IDByte
XShort
YShort
ZShort
Yaw (Heading)Byte
PitchByte
0x0dMessagePacket IDByteContain chat messages sent by player.
Unused, maybe message colorByte (0xFF)
MessageString

Minecraft Classic Codes Wiki

Server → Client packets[edit]

Packet IDPurposeField DescriptionField TypeNotes
0x00Server IdentificationPacket IDByteResponse to a joining player. The user type indicates whether a player is an op (0x64) or not (0x00) Current protocol version is 0x07.
Protocol versionByte
Server nameString
Server MOTDString
User typeByte
0x01PingPacket IDByteSent to clients periodically. The only way a client can disconnect at the moment is to force it closed, which does not let the server know. The ping packet is used to determine if the connection is still open.
0x02Level InitializePacket IDByteNotifies player of incoming level data.
0x03Level Data ChunkPacket IDByteContains a chunk of gzipped map (not level.dat file). After decompression the map consists of an int(4 bytes) containing number of blocks + raw map array. (chunk is up to 1024 bytes, padded with 0x00s if less).
Chunk LengthShort
Chunk DataByte Array
Percent CompleteByte
0x04Level FinalizePacket IDByteSent after level data is complete and gives map dimensions. The y coordinate is how tall the map is.
X SizeShort
Y SizeShort
Z SizeShort
0x06Set BlockPacket IDByteSent to indicate a block change by physics or by players. In the case of a player change, the server will also echo the block change back to the player who initiated it.
XShort
YShort
ZShort
Block TypeByte
0x07Spawn PlayerPacket IDByteSent to indicate where a new player is spawning in the world. Position and orientation are encoded the same as for packet 0x08 below.
Player IDSByte
Player NameString
XShort
YShort
ZShort
Yaw (Heading)Byte
PitchByte
0x08Position and Orientation (Player Teleport)Packet IDByteSent with changes in player position and rotation. Teleports player it's sent to if player ID < 0 (For sending initial position in map, and /tp)
Player IDSByte
XShort
YShort
ZShort
Yaw (Heading)Byte
PitchByte
0x09Position and Orientation UpdatePacket IDByteSent with changes in player position and rotation. Sent when both position and orientation is changed at the same time.

Not required for server operation.

Player IDSByte
Change in XSByte
Change in YSByte
Change in ZSByte
Yaw (Heading)Byte
PitchByte
0x0aPosition UpdatePacket IDByteSent with changes in player position.

Not required for server operation.

Player IDSByte
Change in XSByte
Change in YSByte
Change in ZSByte
0x0bOrientation UpdatePacket IDByteSent with changes in player rotation.

Not required for server operation.

Player IDSByte
Yaw (Heading)Byte
PitchByte
0x0cDespawn PlayerPacket IDByteSent when player disconnects.
Player IDSByte
0x0dMessagePacket IDByteMessages sent by chat or from the console.
Player IDSByte
MessageString
0x0eDisconnect playerPacket IDByteSent to a player when they're disconnected from the server.
  1. 'Cheat detected: Distance' - happens not only when setting tile too far away from the player (how far is maximum distance and how it is measured?), but also when player moves and then immediately builds.
  2. 'Cheat detected: Tile type'
Disconnect reasonString
0x0fUpdate user typePacket IDByteSent when a player is opped/deopped

Will give or remove the client's ability of breaking Bedrock blocks

  1. User type can be either 100, which will allow the player, or 0, which will disallow the player to break Bedrock blocks
User typeByte

Player Position[edit]

Fixed Point[edit]

Player position is represented via X, Y, and Z fixed-point coordinates. The fractional portion is 5 bits, so dividing the short integers received in position update packets by 32, you will have floating point coordinates for the player. This position corresponds to the center of the client viewport.

Standing On Things[edit]

The bottom of the player's feet is located 1.59375 (fixed-point: 51) units below the center of the viewport, so to position the player on top of a particular block you could send a teleport (0x08) packet specifying a Y value based on the block position as: (Y x 32 + 51)

Minecraft Classic Free

Orientation[edit]

A yaw value of 0 means the player is facing in the Z- (negative Z) direction. This value increases in a clockwise direction as seen from above. If we call the negative Z direction 'North', then a yaw of 64 means 'East', 128 means 'South', and 192 means 'West'.

A pitch value of 0 means level and this value increases in a downward direction. 64 is down, and 192 is up. Values of 65 to 191 should never occur because the player cannot look further up or down than the 64 → 0, 255 → 192 range. However, the Minecraft Classic client does not ignore invalid values, so it is possible to make players' heads 'upside-down'.

Color codes[edit]

This article is about classic server protocol. For the updated color codes used in the current version of Minecraft, see Formatting codes.

Messages sent from the server to the client can contain color codes, which allow coloring of text for various purposes.

An ampersand symbol (&) followed by a hex digit in the message tells the client to switch colors while displaying text. The current version of the game uses a section (§) symbol, but the 0.30 version uses ampersands. For the formatting codes for the current version of the game, see Formatting codes.

Color coding at the start of the message will only work if the player ID byte is less than 127. If it's 127 or higher, the game automatically adds &e before the message, making it yellow. However, color codes after the first character still work. If you use an ID below 127, it doesn't add a color code, so the ones you use will work.

Hex digit to color mapping.
SampleCodeCommon NameAlternate NameForeground ColorBackground Color
RGBHEXRGBHEX
&0BlackBlack000#000000#000000
&1Dark BlueNavy00170#00A0042#00002A
&2Dark GreenGreen01700#0A00420#002A00
&3TealTeal0170170#0AA04242#002A2A
&4Dark RedMaroon17000#A004200#2A0000
&5PurplePurple1700170#A0A42042#2A002A
&6Dark YellowGold1701700#AA042420#2A2A00
&7GraySilver170170170#AAA424242#2A2A2A
&8Dark GrayGray858585#555212121#151515
&9IndigoBlue8585255#55F212163#15153F
&aBright GreenLime8525585#5F5216321#153F15
&bCyanAqua85255255#5FF216363#153F3F
&cRedRed2558585#F55632121#3F1515
&dPinkPink25585255#F5F632163#3F153F
&eYellowYellow25525585#FF5636321#3F3F15
&fWhiteWhite255255255#FFF636363#3F3F3F
Versions
  • Demo
  • PC Gamer Demo(Beta 1.3)
Development
Version history
  • Classic
  • Removed features
  • Mentioned features
Technical
  • Known bugs
  • Commands
  • Data values
.minecraft
Development resources
  • Structure block file format
Legacy development resources
  • Classic server protocol
Multiplayer
Game customization
Retrieved from 'https://minecraft.gamepedia.com/Classic_server_protocol?oldid=1651794'




broken image