User Tools

Site Tools


minecraft:mod:bta-sides

This is an old revision of the document!


Beta 1.7.3 doesn't have the same uniform sidedness that modern Minecraft does. It doesn't run a dummy local server in singleplayer. This can be jarring if you've become used to writing exclusively serverside code with the expectation that it will also work in singleplayer for free.

BTA might change netcode in the future, but as of 7.1-pre1a, you essentially have 3 sides to consider:

side PlayerController EntityPlayer World
SP client
client.player.controller.PlayerControllerSP extends client.player.controller.PlayerController
client.entity.player.EntityPlayerSP extends core.entity.player.EntityPlayer
core.world.World
MP client
client.player.controller.PlayerControllerMP extends client.player.controller.PlayerController
client.entity.player.EntityClientPlayerMP extends client.entity.player.EntityPlayerSP
client.world.WorldClient extends core.world.World
MP server
server.world.PlayerController
server.entity.player.EntityPlayerMP extends core.entity.player.EntityPlayer
server.world.WorldServer extends core.world.World

Additionally, MP client tracks other players as client.entity.player.EntityOtherPlayerMP extends core.entity.player.EntityPlayer, and multi-dimensioned servers can encounter server.world.WorldServerMulti extends server.world.WorldServer.

A big thing to consider is some of your code intended for SP might run in an MP client context. This can end up desyncing your locally replicated state. Make sure this case never occurs or include instanceof guards.

minecraft/mod/bta-sides.1708182459.txt.gz · Last modified: 2024/02/17 15:07 by raccoon

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki