Connection fixed, inventory screwed up

This commit is contained in:
catfoolyou 2025-03-27 11:58:25 -04:00
parent 27a91f4260
commit d7ce60ce3b
10 changed files with 24541 additions and 24978 deletions

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="18" />
<bytecodeTargetLevel target="17" />
</component>
</project>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_18" default="true" project-jdk-name="corretto-18" project-jdk-type="JavaSDK" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="corretto-18" project-jdk-type="JavaSDK" />
</project>

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@ -93,9 +93,10 @@ public class WorkerNetworkManager implements INetworkManager {
//System.out.println("[Server][" + ipcChannel + "]: packet '" + pkt.getClass().getSimpleName() + "' recieved");
try {
//System.out.println("processing packet with nethandler " + theNetHandler.getClass().getSimpleName());
pkt.processPacket(theNetHandler); // This is a problem
}catch(Throwable t) {
System.out.println(theNetHandler.getClass().getSimpleName());
System.out.println(theNetHandler.getClass().getSimpleName() + " fucked up");
System.err.println("Could not process minecraft packet 0x" + Integer.toHexString(pkt.getPacketId()) + " class '" + pkt.getClass().getSimpleName() + "' on channel 'NET|" + ipcChannel + "'");
t.printStackTrace();
}

View File

@ -118,14 +118,7 @@ public class EntityPlayerMP extends EntityPlayer implements ICrafting
if (par1NBTTagCompound.hasKey("playerGameType"))
{
if (true) // FIX THIS SHIT
{
this.theItemInWorldManager.setGameType(MinecraftServer.getServer().getGameType());
}
else
{
this.theItemInWorldManager.setGameType(EnumGameType.getByID(par1NBTTagCompound.getInteger("playerGameType")));
}
this.theItemInWorldManager.setGameType(MinecraftServer.getServer().getGameType());
}
}
@ -187,58 +180,46 @@ public class EntityPlayerMP extends EntityPlayer implements ICrafting
Iterator var3 = this.destroyedItemsNetCache.iterator();
int var4 = 0;
while (var3.hasNext() && var4 < var1)
{
var2[var4++] = ((Integer)var3.next()).intValue();
while (var3.hasNext() && var4 < var1) {
var2[var4++] = ((Integer) var3.next()).intValue();
var3.remove();
}
this.playerNetServerHandler.sendPacketToPlayer(new Packet29DestroyEntity(var2));
}
if (!this.loadedChunks.isEmpty())
{
if (!this.loadedChunks.isEmpty()) {
ArrayList var6 = new ArrayList();
Iterator var7 = this.loadedChunks.iterator();
ArrayList var8 = new ArrayList();
while (var7.hasNext() && var6.size() < 5)
{
ChunkCoordIntPair var9 = (ChunkCoordIntPair)var7.next();
while (var7.hasNext() && var6.size() < this.renderDistance / 2) {
ChunkCoordIntPair var9 = (ChunkCoordIntPair) var7.next();
var7.remove();
if (var9 != null && this.worldObj.blockExists(var9.chunkXPos << 4, 0, var9.chunkZPos << 4))
{
if (var9 != null && this.worldObj.blockExists(var9.chunkXPos << 4, 0, var9.chunkZPos << 4)) {
var6.add(this.worldObj.getChunkFromChunkCoords(var9.chunkXPos, var9.chunkZPos));
var8.addAll(((WorldServer)this.worldObj).getAllTileEntityInBox(var9.chunkXPos * 16, 0, var9.chunkZPos * 16, var9.chunkXPos * 16 + 16, 256, var9.chunkZPos * 16 + 16));
}
}
if (!var6.isEmpty())
{
if (!var6.isEmpty()) {
this.playerNetServerHandler.sendPacketToPlayer(new Packet56MapChunks(var6));
Iterator var10 = var8.iterator();
while (var10.hasNext())
{
TileEntity var5 = (TileEntity)var10.next();
while (var10.hasNext()) {
TileEntity var5 = (TileEntity) var10.next();
this.sendTileEntityToPlayer(var5);
}
var10 = var6.iterator();
while (var10.hasNext())
{
Chunk var11 = (Chunk)var10.next();
while (var10.hasNext()) {
Chunk var11 = (Chunk) var10.next();
this.getServerForPlayer().getEntityTracker().func_85172_a(this, var11);
}
}
}
/*if (this.field_143005_bX > 0L && this.mcServer.func_143007_ar() > 0 && EaglerAdapter.steadyTimeMillis() - this.field_143005_bX > (long)(this.mcServer.func_143007_ar() * 1000 * 60))
{
this.playerNetServerHandler.kickPlayerFromServer("You have been idle for too long!");
}*/
}
public void onUpdateEntity()
@ -277,7 +258,7 @@ public class EntityPlayerMP extends EntityPlayer implements ICrafting
while (var7.hasNext())
{
ScoreObjective var9 = (ScoreObjective)var7.next();
this.getWorldScoreboard().func_96529_a(this.getEntityName(), var9).func_96651_a(Arrays.asList(new EntityPlayer[] {this}));
this.getWorldScoreboard().func_96529_a(this.getEntityName(), var9).func_96651_a(Arrays.asList(this));
}
}
@ -946,15 +927,6 @@ public class EntityPlayerMP extends EntityPlayer implements ICrafting
return this.chatVisibility;
}
/**
* on recieving this message the client (if permission is given) will download the requested textures
*/
public void requestTexturePackLoad(String par1Str, int par2)
{
String var3 = par1Str + "\u0000" + par2;
this.playerNetServerHandler.sendPacketToPlayer(new Packet250CustomPayload("MC|TPack", var3.getBytes()));
}
/**
* Return the position for this command sender.
*/

View File

@ -50,14 +50,14 @@ public class NetLoginHandler extends NetHandler {
* network packets unless the timeout has occurred.
*/
public void handlePackets() {
System.out.println("[SP-Server][LOGIN][HANDLE][" + clientUsername + "]");
if (this.field_72544_i) { // FIX THIS SHIT!!! this.field_72544_i
//System.out.println("[SP-Server][LOGIN][HANDLE][" + clientUsername + "]");
if (this.field_72544_i) { // FIX THIS SHIT!!!
this.initializePlayerConnection();
return;
}
if (this.loginTimer++ == 600) {
this.kickUser("Took too long to log in");
if (this.loginTimer++ == 600 && finishedProcessing == false) {
//this.kickUser("Took too long to log in");
} else {
this.myTCPConnection.processReadPackets(); // problem
}
@ -86,6 +86,7 @@ public class NetLoginHandler extends NetHandler {
}
public void handleClientProtocol(Packet2ClientProtocol par1Packet2ClientProtocol) {
System.out.println("handling client protocol, netloginhandler");
this.clientUsername = par1Packet2ClientProtocol.getUsername();
int var2 = 64 << 3 - par1Packet2ClientProtocol.getViewDistance();
if(var2 > 400) {
@ -111,7 +112,9 @@ public class NetLoginHandler extends NetHandler {
}
public void handleClientCommand(Packet205ClientCommand par1Packet205ClientCommand) {
System.out.println("handling client command");
if (par1Packet205ClientCommand.forceRespawn == 0) {
System.out.println("actually handling client command");
if (this.field_92079_k) {
this.kickUser("Duplicate login");
return;
@ -130,6 +133,7 @@ public class NetLoginHandler extends NetHandler {
* otherwise they are packet255'd
*/
public void initializePlayerConnection() {
System.out.println("Init player connection");
String var1 = this.mcServer.getConfigurationManager().allowUserToConnect(this.clientUsername);
if (var1 != null) {
@ -151,6 +155,7 @@ public class NetLoginHandler extends NetHandler {
}
this.finishedProcessing = true;
System.out.println(this.finishedProcessing);
}
public void handleErrorMessage(String par1Str, Object[] par2ArrayOfObj) {

View File

@ -571,6 +571,7 @@ public class NetServerHandler extends NetHandler
public void handleBlockItemSwitch(Packet16BlockItemSwitch par1Packet16BlockItemSwitch)
{
System.out.println("handleBlockItemSwitch");
if (par1Packet16BlockItemSwitch.id >= 0 && par1Packet16BlockItemSwitch.id < InventoryPlayer.getHotbarSize())
{
this.playerEntity.inventory.currentItem = par1Packet16BlockItemSwitch.id;
@ -801,8 +802,6 @@ public class NetServerHandler extends NetHandler
public void handleWindowClick(Packet102WindowClick par1Packet102WindowClick)
{
//this.playerEntity.func_143004_u();
if (this.playerEntity.openContainer.windowId == par1Packet102WindowClick.window_Id && this.playerEntity.openContainer.isPlayerNotUsingContainer(this.playerEntity))
{
ItemStack var2 = this.playerEntity.openContainer.slotClick(par1Packet102WindowClick.inventorySlot, par1Packet102WindowClick.mouseClick, par1Packet102WindowClick.holdingShift, this.playerEntity);

View File

@ -62,54 +62,51 @@ public abstract class ServerConfigurationManager
public void initializeConnectionToPlayer(INetworkManager par1INetworkManager, EntityPlayerMP par2EntityPlayerMP)
{
System.out.println("player connection initialized");
if(par2EntityPlayerMP.username.equals(mcServer.getServerOwner())) {
viewDistance = par2EntityPlayerMP.renderDistance;
}
NBTTagCompound var3 = this.readPlayerDataFromFile(par2EntityPlayerMP);
par2EntityPlayerMP.setWorld(this.mcServer.worldServerForDimension(par2EntityPlayerMP.dimension));
par2EntityPlayerMP.theItemInWorldManager.setWorld((WorldServer)par2EntityPlayerMP.worldObj);
par2EntityPlayerMP.theItemInWorldManager.setWorld((WorldServer) par2EntityPlayerMP.worldObj);
String var4 = "local";
/*if (par1INetworkManager.getSocketAddress() != null)
{
var4 = par1INetworkManager.getSocketAddress().toString();
}*/
this.mcServer.getLogAgent().logInfo(par2EntityPlayerMP.getCommandSenderName() + "[" + var4 + "] logged in with entity id " + par2EntityPlayerMP.entityId + " at (" + par2EntityPlayerMP.posX + ", " + par2EntityPlayerMP.posY + ", " + par2EntityPlayerMP.posZ + ")");
this.mcServer.getLogAgent().logInfo(par2EntityPlayerMP.username + " [" + var4 + "] logged in with entity id " + par2EntityPlayerMP.entityId + " at (" + par2EntityPlayerMP.posX + ", " + par2EntityPlayerMP.posY + ", " + par2EntityPlayerMP.posZ + ")");
WorldServer var5 = this.mcServer.worldServerForDimension(par2EntityPlayerMP.dimension);
ChunkCoordinates var6 = var5.getSpawnPoint();
this.func_72381_a(par2EntityPlayerMP, (EntityPlayerMP)null, var5);
this.func_72381_a(par2EntityPlayerMP, (EntityPlayerMP) null, var5);
NetServerHandler var7 = new NetServerHandler(this.mcServer, par1INetworkManager, par2EntityPlayerMP);
var7.sendPacketToPlayer(new Packet1Login(par2EntityPlayerMP.entityId, var5.getWorldInfo().getTerrainType(), par2EntityPlayerMP.theItemInWorldManager.getGameType(), var5.getWorldInfo().isHardcoreModeEnabled(), var5.provider.dimensionId, var5.difficultySetting, var5.getHeight(), this.getMaxPlayers()));
//var7.sendPacketToPlayer(new Packet250CustomPayload("MC|Brand", this.getServerInstance().getServerModName().getBytes(Charset.UTF_8)));
var7.sendPacketToPlayer(new Packet6SpawnPosition(var6.posX, var6.posY, var6.posZ));
var7.sendPacketToPlayer(new Packet202PlayerAbilities(par2EntityPlayerMP.capabilities));
var7.sendPacketToPlayer(new Packet16BlockItemSwitch(par2EntityPlayerMP.inventory.currentItem));
this.func_96456_a((ServerScoreboard)var5.getScoreboard(), par2EntityPlayerMP);
this.updateTimeAndWeatherForPlayer(par2EntityPlayerMP, var5);
this.sendChatMsg(StatCollector.translateToLocalFormatted(EnumChatFormatting.YELLOW + "multiplayer.player.joined", new Object[] {par2EntityPlayerMP.getTranslatedEntityName()}));
this.sendPacketToAllPlayers(new Packet3Chat(EnumChatFormatting.YELLOW + par2EntityPlayerMP.getTranslatedEntityName() + EnumChatFormatting.YELLOW + " joined the game."));
this.playerLoggedIn(par2EntityPlayerMP);
var7.setPlayerLocation(par2EntityPlayerMP.posX, par2EntityPlayerMP.posY, par2EntityPlayerMP.posZ, par2EntityPlayerMP.rotationYaw, par2EntityPlayerMP.rotationPitch);
var7.sendPacketToPlayer(new Packet4UpdateTime(var5.getTotalWorldTime(), var5.getWorldTime(), var5.getGameRules().getGameRuleBooleanValue("doDaylightCycle")));
if (this.mcServer.getTexturePack().length() > 0)
{
par2EntityPlayerMP.requestTexturePackLoad(this.mcServer.getTexturePack(), this.mcServer.textureSize());
// System.out.println("what the fuck??");
// par2EntityPlayerMP.requestTexturePackLoad(this.mcServer.getTexturePack(), this.mcServer.textureSize());
}
Iterator var8 = par2EntityPlayerMP.getActivePotionEffects().iterator();
while (var8.hasNext())
{
PotionEffect var9 = (PotionEffect)var8.next();
while (var8.hasNext()) {
PotionEffect var9 = (PotionEffect) var8.next();
var7.sendPacketToPlayer(new Packet41EntityEffect(par2EntityPlayerMP.entityId, var9));
}
par2EntityPlayerMP.addSelfToInternalCraftingInventory();
if (var3 != null && var3.hasKey("Riding"))
{
if (var3 != null && var3.hasKey("Riding")) {
Entity var10 = EntityList.createEntityFromNBT(var3.getCompoundTag("Riding"), var5);
if (var10 != null)
{
if (var10 != null) {
var10.forceSpawn = true;
var5.spawnEntityInWorld(var10);
par2EntityPlayerMP.mountEntity(var10);