Jump to content

[1.10.2] Custom Machine Slots Going Crazy


Villfuk02

Recommended Posts

Can anyone help me? I'm trying to make it, when the progress is more than power_needed, it places output in the 5th slot and removes 1 item from the first 4. BUT it sometimes outputs, or removes the items too early, or even does output nothing/2 items at once/doubles the itemstack already there. WTF is going on???

 

I think it is something with the client not syncing with server ¯\_(ツ)_/¯

 

TileEntityManualMill:

package com.villfuk02.essence.tileentities;

import org.xml.sax.InputSource;

import com.villfuk02.essence.init.ModItems;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.network.Packet;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ITickable;
import net.minecraft.util.math.MathHelper;

public class TileEntityManualMill extends TileEntity implements IInventory, ITickable {

public static final int fuel_slots = 0;
public static final int input_slots = 4;
public static final int output_slots = 1;
public static final int total_slots = input_slots + output_slots + fuel_slots;

public static final int first_fuel_slot = 0;
public static final int first_input_slot = first_fuel_slot + fuel_slots;
public static final int first_output_slot = first_input_slot + input_slots;

private static int recipe_count = 3;

public boolean powered = false;

private ItemStack[] itemStacks = new ItemStack[total_slots];
private String customName;
private static ItemStack[] inputs = {new ItemStack(Items.FEATHER),new ItemStack(Items.STRING),new ItemStack(Items.GLOWSTONE_DUST),new ItemStack(Items.PAPER),new ItemStack(Blocks.LEAVES),new ItemStack(Blocks.TALLGRASS),new ItemStack(Items.WHEAT),new ItemStack(Items.MELON),new ItemStack(Blocks.LEAVES2),new ItemStack(Blocks.TALLGRASS),new ItemStack(Items.WHEAT),new ItemStack(Items.MELON)};
private static ItemStack[] outputs = {new ItemStack(ModItems.essence_dust, 1, 0),new ItemStack(ModItems.essence_dust, 1, 1),new ItemStack(ModItems.essence_dust, 1, 1)};

private int speed;
private int cache_speed = -1;
private int max_speed = 80;
private int power_needed = 16000;	
private int progress;
private int rotation;
private int rotation_stage;

private int max_essence = 1000;
private int essence;
private int essence_type;


public int getSpeed(){
	return rotation;
}

public boolean getPowered(){
	return powered;
}

public double fractionProgress(){
	double fraction = ((double)progress / (double)power_needed);
	return MathHelper.clamp_double(fraction, 0.0, 1.0);
}

public int getRotationStage() {
	return rotation_stage;
}


@Override
public void update(){		
	if(powered){
		speed++;
	}else if(speed > 0){
		speed -=2;
	}
	if (speed > max_speed)
		speed = max_speed;
	if (speed < 0)
		speed = 0;
	if(validRecipe()){
		if(speed > 0){
			rotation += speed;
			progress += speed;
		} else{
			progress -= 20;
		}

		if (progress <0)
			progress = 0;
		if (progress >= power_needed){
			finishRecipe();
			progress = 0;
			markDirty();
		}

		rotation_stage = ((int)((double)rotation / 37.5)) % 4;

		if (rotation > 149)
			rotation -= 150;			

	}else {
		progress = 0;
	}
	powered = false;
}

private boolean validRecipe(){
	ItemStack result = null;
	boolean valid = false;
	result = getOutput(itemStacks[0],itemStacks[1],itemStacks[2],itemStacks[3]);
	if (result != null) {
		ItemStack outputStack = itemStacks[4];
		if (outputStack == null){
			valid = true;				
		}else if (outputStack.getItem() == result.getItem() && outputStack.getMetadata() == result.getMetadata() && ItemStack.areItemStackTagsEqual(outputStack, result)){
			int combinedSize = outputStack.stackSize + result.stackSize;
			if (combinedSize <= 64 && combinedSize <= outputStack.getMaxStackSize()){
				valid = true;
			}
		}
	}
	markDirty();
	return valid;
}

private void finishRecipe(){

	for(int i = 0; i < 4; i++){
		itemStacks[i].stackSize--;
		if (itemStacks[i].stackSize <= 0){
			itemStacks[i] = null;
		}
	}
	if (itemStacks[4] == null){
		itemStacks[4] = getOutput(itemStacks[0],itemStacks[1],itemStacks[2],itemStacks[3]);
	}else{
		itemStacks[4].stackSize += getOutput(itemStacks[0],itemStacks[1],itemStacks[2],itemStacks[3]).stackSize;
	}
	markDirty();
}

public static ItemStack getOutput(ItemStack in1, ItemStack in2, ItemStack in3, ItemStack in4){
	ItemStack result = null;
	ItemStack[] in = {in1, in2, in3, in4};
	if (in1 == null || in2 == null || in3 == null || in4 == null){
		return null;
	}else{
		for(int x = 0; x < recipe_count; x++){
			for (int a = 0; a < 4; a++){
				if (in[a].getItem() == inputs[4*x].getItem()){
					for (int b = 0; b < 4; b++){
						if (in[b].getItem() == inputs[4*x + 1].getItem()){
							for (int c = 0; c < 4; c++){
								if (in[c].getItem() == inputs[4*x + 2].getItem()){
									for (int d = 0; d < 4; d++){
										if (in[d].getItem() == inputs[4*x + 3].getItem()){
											result = outputs[x];
										}				

									}
								}				

							}
						}				

					}
				}				

			}
		}
		if (in1.getItem() == ModItems.essence_dust && in2.getItem() == ModItems.essence_dust && in3.getItem() == ModItems.essence_dust && in4.getItem() == ModItems.essence_dust){
			int data = in1.getMetadata();
			if (in2.getMetadata() == data && in3.getMetadata() == data && in4.getMetadata() == data)
				result = new ItemStack(ModItems.essence_dust, 3, data);
		}
	}

	return result;

}


public String getCustomName(){
	return this.customName;
}

public void setCustomName(String customName){
	this.customName = customName;
}



@Override
public String getName() {
	return this.hasCustomName() ? this.customName : "Manual Essence Mill";
}

@Override
public boolean hasCustomName() {
	return this.customName != null && !this.customName.equals("");
}

@Override
public int getSizeInventory() {
	return 5;
}

@Override
public ItemStack getStackInSlot(int index) {
	if(index < 0 || index >= this.getSizeInventory()){
		return null;
	}
	return this.itemStacks[index];
}

@Override
public ItemStack decrStackSize(int index, int count) {
		if(this.getStackInSlot(index)!= null){
			ItemStack itemStack;

			if (this.getStackInSlot(index).stackSize <= count) {
				itemStack = this.getStackInSlot(index);
				this.setInventorySlotContents(index, null);
				this.markDirty();
				return itemStack;
			}else{
				itemStack = this.getStackInSlot(index).splitStack(count);

				if(this.getStackInSlot(index).stackSize <= 0){
					this.setInventorySlotContents(index, null);
				}else{
					this.setInventorySlotContents(index, this.getStackInSlot(index));
				}
				this.markDirty();
				return itemStack;
			}
		} else {
			return null;
		}
}

@Override
public ItemStack removeStackFromSlot(int index) {
	ItemStack stack = this.getStackInSlot(index);
	this.setInventorySlotContents(index, null);
	return stack;
}

@Override
public void setInventorySlotContents(int index, ItemStack stack) {
	if (index < 0 || index >= this.getSizeInventory())

		return;
	if (stack != null && stack.stackSize > this.getInventoryStackLimit())
		stack.stackSize = this.getInventoryStackLimit();

	if (stack != null && stack.stackSize == 0)
		stack = null;

	this.itemStacks[index] = stack;
	this.markDirty();

}

@Override
public int getInventoryStackLimit() {
	return 64;
}

@Override
public boolean isUseableByPlayer(EntityPlayer player) {
	return this.worldObj.getTileEntity(this.getPos()) == this && player.getDistanceSq(this.pos.add(0.5, 0.5, 0.5)) <= 64;
}

@Override
public void openInventory(EntityPlayer player) {
}

@Override
public void closeInventory(EntityPlayer player) {
}

@Override
public boolean isItemValidForSlot(int index, ItemStack stack) {
	return true;	
}

@Override
public int getField(int id) {
	int value = 0;
	if (id == 0)
		value = progress;
	if (id == 1)
		value = speed;
	if (id == 2)
		value = rotation;
	if (id == 3)
		value = essence;
	if (id == 4)
		value = essence_type;
	return value;
}

@Override
public void setField(int id, int value) {
	if (id == 0)
		progress = value;
	if (id == 1)
		speed = value;
	if (id == 2)
		rotation = value;
	if (id == 3)
		essence = value;
	if (id == 4)
		essence_type = value;		
}

@Override
public int getFieldCount() {
	return 5;
}

@Override
public void clear() {
	for(int i = 0; i < this.getSizeInventory(); i++){
		this.setInventorySlotContents(i, null);
	}
}



@Override
public NBTTagCompound writeToNBT(NBTTagCompound nbt){
	super.writeToNBT(nbt);

	NBTTagList list = new NBTTagList();
	for (int i = 0; i < this.getSizeInventory(); i++){
		if (this.getStackInSlot(i) != null){
			NBTTagCompound stackTag = new NBTTagCompound();
			stackTag.setByte("Slot", ((byte)i));
			this.getStackInSlot(i).writeToNBT(stackTag);
			list.appendTag(stackTag);
		}
	}
	nbt.setTag("Items", list);
	nbt.setInteger("progress", progress);
	nbt.setInteger("speed", speed);
	nbt.setInteger("rotation", rotation);

	if (this.hasCustomName()){
		nbt.setString("CustomName",this.getCustomName());
	}
	return nbt;
}

@Override
public void readFromNBT(NBTTagCompound nbt){
	super.readFromNBT(nbt);

	NBTTagList list = nbt.getTagList("Items", 10);
	for(int i = 0; i < list.tagCount(); ++i){
		NBTTagCompound stackTag = list.getCompoundTagAt(i);
		int slot = stackTag.getByte("Slot") & 255;
		this.setInventorySlotContents(slot, ItemStack.loadItemStackFromNBT(stackTag));

	}

	progress = nbt.getInteger("progress");
	speed = nbt.getInteger("speed");
	rotation = nbt.getInteger("rotation");

	if(nbt.hasKey(customName, ){
		this.setCustomName(nbt.getString("CustomName"));

	}
}




}

 

 

ContainerManualMill:

package com.villfuk02.essence.gui;

import com.villfuk02.essence.tileentities.TileEntityManualMill;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.IContainerListener;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

public class ContainerManualMill extends Container{

private TileEntityManualMill te;

private int [] cachedFields;

private final int hotbar = 9;
private final int inventory_rows = 3;
private final int inventory_columns = 9;
private final int inventory = inventory_rows * inventory_columns;	
private final int player_slots = hotbar + inventory;

public final int input_slots = 4;
public final int output_slots = 1;
public final int machine_slots = input_slots + output_slots;

private final int first_player_index = 0;
private final int first_machine_index = first_player_index;

public ContainerManualMill(InventoryPlayer player, TileEntityManualMill te){
	this.te = te;

	//Hotbar
	for(int x = 0; x < hotbar; x++){
		addSlotToContainer(new Slot(player, x, 8 + 18 * x, 183));
	}
	//Inventory
	for(int y = 0; y < inventory_rows; y++){
		for(int x = 0; x < inventory_columns; x++){
			addSlotToContainer(new Slot(player, hotbar + x + y * inventory_columns, 8 + 18 * x, 125 + y * 18));
		}
	}
	//Machine
	for (int x = 0; x < input_slots; x++){
		addSlotToContainer(new Slot(te, first_machine_index + x, 44 + 24 * x, 19));
	}
	addSlotToContainer(new Slot(te, first_machine_index + input_slots, 80, 97));
}


@Override
public boolean canInteractWith(EntityPlayer player) {
	return this.te.isUseableByPlayer(player);
}

@Override
public ItemStack transferStackInSlot (EntityPlayer player, int fromSlot) {
	ItemStack previous = null;
	Slot slot = (Slot)this.inventorySlots.get(fromSlot);

	if(slot != null && slot.getHasStack()){
		ItemStack current = slot.getStack();
		previous = current.copy();

		if(fromSlot < 15){
			if(!this.mergeItemStack(current, 36, 41, true))
				return null;
		} else {
			if (!this.mergeItemStack(current, 0, 36, false))
				return null;
		}


		if (current.stackSize == 0)
			slot.putStack((ItemStack)null);
		else
			slot.onSlotChanged();

		if (current.stackSize == previous.stackSize)
			return null;
		slot.onPickupFromSlot(player, current);
	}
	return previous;
}

@Override
public void detectAndSendChanges(){
	super.detectAndSendChanges();

	boolean haveFieldsChanged = false;
	boolean fieldChanged[] = new boolean[this.te.getFieldCount()];
	if(cachedFields == null){
		cachedFields = new int[this.te.getFieldCount()];
		haveFieldsChanged = true;
	}
	for(int i = 0; i < cachedFields.length; i++){
		if(haveFieldsChanged || cachedFields[i] != this.te.getField(i)){
			cachedFields[i] = this.te.getField(i);
			haveFieldsChanged = true;
		}
	}

	for(int i = 0; i < this.listeners.size(); i++){
		IContainerListener iListener = (IContainerListener)this.listeners.get(i);
		for(int fieldID = 0; fieldID < this.te.getFieldCount(); ++fieldID){
			if(fieldChanged[fieldID]){
				iListener.sendProgressBarUpdate(this, fieldID, cachedFields[fieldID]);
			}
		}
	}

}

@SideOnly(Side.CLIENT)
@Override
public void updateProgressBar(int id, int data){
	this.te.setField(id, data);
}


}

 

GuiManualMill:

package com.villfuk02.essence.gui;

import java.util.ArrayList;
import java.util.List;

import com.villfuk02.essence.client.Reference;
import com.villfuk02.essence.tileentities.TileEntityManualMill;

import io.netty.util.concurrent.ProgressiveFuture;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

@SideOnly(Side.CLIENT)
public class GuiManualMill extends GuiContainer{

private static final ResourceLocation texture = new ResourceLocation(Reference.MOD_ID + ":" + "textures/gui/container/manual_mill_gui.png");
private TileEntityManualMill entity;
private InventoryPlayer player;

public GuiManualMill(InventoryPlayer player, TileEntityManualMill entity) {
	super(new ContainerManualMill(player, entity));

	xSize = 176;
	ySize = 207;

	this.entity = entity;
	this.player = player;
}

final int progress_bar_xpos = 78;
final int progress_bar_ypos = 38;
final int progress_bar_icon_u = 176;
final int progress_bar_icon_v = 0;
final int progress_bar_width = 20;
final int progress_bar_height = 58;

final int gear_xpos = 80;
final int gear_ypos = 58;
final int gear_icon_u = 0;
final int gear_icon_v = 210;
final int gear_width = 16;
final int gear_height = 16;


@Override
protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY) {
	Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
	GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f);
	drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, xSize, ySize);
	double progress = entity.fractionProgress();
	this.drawTexturedModalRect(this.guiLeft + progress_bar_xpos, this.guiTop + progress_bar_ypos, progress_bar_icon_u, progress_bar_icon_v, progress_bar_width, (int)(progress * (double)progress_bar_height));
	int rotate = entity.getRotationStage();
	this.drawTexturedModalRect(this.guiLeft + gear_xpos, this.guiTop + gear_ypos, gear_icon_u + rotate * 16, gear_icon_v, gear_width, gear_height);

}

@Override
protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY){
	super.drawGuiContainerForegroundLayer(mouseX, mouseY);
	String s = this.entity.getName();
	String spd = this.entity.getSpeed() + " RPM";
	this.fontRendererObj.drawString(s, 88 - this.fontRendererObj.getStringWidth(s) / 2, 6, 4210752);
	this.fontRendererObj.drawString(this.player.getDisplayName().getUnformattedText(), 8, 115, 4210752);
	this.fontRendererObj.drawString(spd, 8, 90, 4210752);

	List<String> text = new ArrayList<String>();
	if(isInRect(guiLeft + progress_bar_xpos, guiTop + progress_bar_ypos, progress_bar_width, progress_bar_height, mouseX, mouseY)){
		text.add("Progress: ");
		int percentage = (int)(entity.fractionProgress() * 100.0);
		text.add(percentage + "%");
	}

	if(!text.isEmpty()){
		drawHoveringText(text, mouseX - guiLeft, mouseY - guiTop, fontRendererObj);
	}
}

public static boolean isInRect(int x, int y, int xSize, int ySize,int mouseX, int mouseY){
	return((mouseX >= x && mouseX <= x + xSize)&&(mouseY >= y && mouseY <= y + ySize));
}

}

 

 

BlockManualMill:

package com.villfuk02.essence.blocks;

import java.util.Random;

import com.villfuk02.essence.client.Reference;
import com.villfuk02.essence.gui.GuiHandler;
import com.villfuk02.essence.init.ModBlocks;
import com.villfuk02.essence.tileentities.TileEntityComparingChest;
import com.villfuk02.essence.tileentities.TileEntityManualMill;

import net.minecraft.block.BlockContainer;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.MapColor;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.InventoryHelper;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;

public class BlockManualMill extends BlockContainer{

public BlockManualMill(String unlocalizedName, String registryName) {
	super(Material.IRON);
	this.setUnlocalizedName(unlocalizedName);
	this.setRegistryName(new ResourceLocation(Reference.MOD_ID, registryName));
	this.setHardness(3.0f);
	this.setResistance(40.0f);
	this.setHarvestLevel("pickaxe", 0);
	this.setSoundType(SoundType.METAL);
}

@Override
public void breakBlock(World world, BlockPos pos, IBlockState state) {
	TileEntityComparingChest te = (TileEntityComparingChest)world.getTileEntity(pos);
	InventoryHelper.spawnItemStack(world, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(Item.getItemFromBlock(ModBlocks.manual_mill), 1, 0, te.writeToNBT(new NBTTagCompound())));
	super.breakBlock(world, pos, state);
}

@Override
public MapColor getMapColor(IBlockState state) {
	return MapColor.STONE;
}

@Override
public TileEntity createNewTileEntity(World worldIn, int meta) {
	return new TileEntityManualMill();
}

@Override
public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) {
	if (worldIn.isRemote){
		return true;
	}
	playerIn.openGui(Reference.MOD_ID, GuiHandler.MANUAL_MILL_GUI, worldIn, pos.getX(), pos.getY(), pos.getZ());
	return true;
}



@Override
public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) {
	if (stack.hasDisplayName()){
		((TileEntityManualMill)world.getTileEntity(pos)).setCustomName(stack.getDisplayName());
	}
}

@Override
public boolean isFullCube(IBlockState state) {
	return false;
}

@Override 
public boolean isNormalCube(IBlockState state){
	return false;
}

}

 

THX for any response!

 

Link to comment
Share on other sites

I think it is something with the client not syncing with server ¯\_(ツ)_/¯

 

This is possible from the behaviour you described. The client does not know what the server does. This is normal. The DetectAndSendChanges method in the Container should sync the values when the gui is opened. Maybe there is a bug somewhere. But it's a lot of code to look through, I could not see an obvious mistake in a quick look. You could try debugging with System.out.println, there you see what thread has written it to the console. If it's in a code that gets called on both sides you can see possible desyncs.

 

Link to comment
Share on other sites

INTERESTING:

The items are doubling, because server thinks there arent items, so it in finishRecipe() sets both slot and the recipe as the same but for server the slot doesnt change but the recipe changes and its changed even between worlds, just until you close minecraft.

 

So i need to call server to update the slot after finishRecipe()

Link to comment
Share on other sites

You should also stop using IInventory and use IItemHandler instead.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

You should let run your item creating/removing code only on the server. (In tile entity update). On the client you should only change progress. If the server changes something with it's contents or state (finish/start), you need to send out a sync packet. This is done by marking the block for update. When getDescriptionPaket and onDataPaket is implemented in the tileEntity a sync with NBT tags is made.

Link to comment
Share on other sites

I dont know how does IItemHandler work, can you please show me, what am i supposed to do with the boolean simulate, or the other things?

 

Read the javadoc

 

    /**

    * Inserts an ItemStack into the given slot and return the remainder.

    * The ItemStack should not be modified in this function!

    * Note: This behaviour is subtly different from IFluidHandlers.fill()

    *

    * @param slot    Slot to insert into.

    * @param stack    ItemStack to insert.

    * @param simulate If true, the insertion is only simulated

    * @return The remaining ItemStack that was not inserted (if the entire stack is accepted, then return null).

    *        May be the same as the input ItemStack if unchanged, otherwise a new ItemStack.

    **/

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

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

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • I have been trying to make a server with forge but I keep running into an issue. I have jdk 22 installed as well as Java 8. here is the debug file  
    • it crashed again     What the console says : [00:02:03] [Server thread/INFO] [Easy NPC/]: [EntityManager] Server started! [00:02:03] [Server thread/INFO] [co.gi.al.ic.IceAndFire/]: {iceandfire:fire_dragon_roost=true, iceandfire:fire_lily=true, iceandfire:spawn_dragon_skeleton_fire=true, iceandfire:lightning_dragon_roost=true, iceandfire:spawn_dragon_skeleton_lightning=true, iceandfire:ice_dragon_roost=true, iceandfire:ice_dragon_cave=true, iceandfire:lightning_dragon_cave=true, iceandfire:cyclops_cave=true, iceandfire:spawn_wandering_cyclops=true, iceandfire:spawn_sea_serpent=true, iceandfire:frost_lily=true, iceandfire:hydra_cave=true, iceandfire:lightning_lily=true, iceandfireixie_village=true, iceandfire:myrmex_hive_jungle=true, iceandfire:myrmex_hive_desert=true, iceandfire:silver_ore=true, iceandfire:siren_island=true, iceandfire:spawn_dragon_skeleton_ice=true, iceandfire:spawn_stymphalian_bird=true, iceandfire:fire_dragon_cave=true, iceandfire:sapphire_ore=true, iceandfire:spawn_hippocampus=true, iceandfire:spawn_death_worm=true} [00:02:03] [Server thread/INFO] [co.gi.al.ic.IceAndFire/]: {TROLL_S=true, HIPPOGRYPH=true, AMPHITHERE=true, COCKATRICE=true, TROLL_M=true, DREAD_LICH=true, TROLL_F=true} [00:02:03] [Server thread/INFO] [ne.be.lo.WeaponRegistry/]: Encoded Weapon Attribute registry size (with package overhead): 41976 bytes (in 5 string chunks with the size of 10000) [00:02:03] [Server thread/INFO] [patchouli/]: Sending reload packet to clients [00:02:03] [Server thread/WARN] [voicechat/]: [voicechat] Running in offline mode - Voice chat encryption is not secure! [00:02:03] [VoiceChatServerThread/INFO] [voicechat/]: [voicechat] Using server-ip as bind address: 0.0.0.0 [00:02:03] [Server thread/WARN] [ModernFix/]: Dedicated server took 22.521 seconds to load [00:02:03] [VoiceChatServerThread/INFO] [voicechat/]: [voicechat] Voice chat server started at 0.0.0.0:25565 [00:02:03] [Server thread/WARN] [minecraft/SynchedEntityData]: defineId called for: class net.minecraft.world.entity.player.Player from class tschipp.carryon.common.carry.CarryOnDataManager [00:02:03] [Server thread/INFO] [ne.mi.co.AdvancementLoadFix/]: Using new advancement loading for net.minecraft.server.PlayerAdvancements@2941ffd5 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 0 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 1 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 2 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 3 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 4 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 5 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 6 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 7 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 8 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 9 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 10 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 11 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 12 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 13 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 14 [00:02:19] [Server thread/INFO] [ne.mi.co.AdvancementLoadFix/]: Using new advancement loading for net.minecraft.server.PlayerAdvancements@ebc7ef2 [00:02:19] [Server thread/INFO] [minecraft/PlayerList]: ZacAdos[/90.2.17.162:49242] logged in with entity id 1062 at (-1848.6727005281205, 221.0, -3054.2468255848935) [00:02:19] [Server thread/ERROR] [ModernFix/]: Skipping entity ID sync for com.talhanation.smallships.world.entity.ship.Ship: java.lang.NoClassDefFoundError: net/minecraft/client/CameraType [00:02:19] [Server thread/INFO] [minecraft/MinecraftServer]: - Gloop - ZacAdos joined the game [00:02:19] [Server thread/INFO] [xa.pa.OpenPartiesAndClaims/]: Updating all forceload tickets for cc56befd-d376-3526-a760-340713c478bd [00:02:19] [Server thread/INFO] [se.mi.te.da.DataManager/]: Sending data to client: ZacAdos [00:02:19] [Server thread/INFO] [voicechat/]: [voicechat] Received secret request of - Gloop - ZacAdos (17) [00:02:19] [Server thread/INFO] [voicechat/]: [voicechat] Sent secret to - Gloop - ZacAdos [00:02:21] [VoiceChatPacketProcessingThread/INFO] [voicechat/]: [voicechat] Successfully authenticated player cc56befd-d376-3526-a760-340713c478bd [00:02:22] [VoiceChatPacketProcessingThread/INFO] [voicechat/]: [voicechat] Successfully validated connection of player cc56befd-d376-3526-a760-340713c478bd [00:02:22] [VoiceChatPacketProcessingThread/INFO] [voicechat/]: [voicechat] Player - Gloop - ZacAdos (cc56befd-d376-3526-a760-340713c478bd) successfully connected to voice chat stop [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Stopping the server [00:02:34] [Server thread/INFO] [mo.pl.ar.ArmourersWorkshop/]: stop local service [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Stopping server [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Saving players [00:02:34] [Server thread/INFO] [minecraft/ServerGamePacketListenerImpl]: ZacAdos lost connection: Server closed [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: - Gloop - ZacAdos left the game [00:02:34] [Server thread/INFO] [xa.pa.OpenPartiesAndClaims/]: Updating all forceload tickets for cc56befd-d376-3526-a760-340713c478bd [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Saving worlds [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: ThreadedAnvilChunkStorage (world): All chunks are saved [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: ThreadedAnvilChunkStorage: All dimensions are saved [00:02:34] [Server thread/INFO] [xa.pa.OpenPartiesAndClaims/]: Stopping IO worker... [00:02:34] [Server thread/INFO] [xa.pa.OpenPartiesAndClaims/]: Stopped IO worker! [00:02:34] [Server thread/INFO] [Calio/]: Removing Dynamic Registries for: net.minecraft.server.dedicated.DedicatedServer@7dc879e1 [MineStrator Daemon]: Checking server disk space usage, this could take a few seconds... [MineStrator Daemon]: Updating process configuration files... [MineStrator Daemon]: Ensuring file permissions are set correctly, this could take a few seconds... [MineStrator Daemon]: Pulling Docker container image, this could take a few minutes to complete... [MineStrator Daemon]: Finished pulling Docker container image container@pterodactyl~ java -version openjdk version "17.0.10" 2024-01-16 OpenJDK Runtime Environment Temurin-17.0.10+7 (build 17.0.10+7) OpenJDK 64-Bit Server VM Temurin-17.0.10+7 (build 17.0.10+7, mixed mode, sharing) container@pterodactyl~ java -Xms128M -Xmx6302M -Dterminal.jline=false -Dterminal.ansi=true -Djline.terminal=jline.UnsupportedTerminal -p libraries/cpw/mods/bootstraplauncher/1.1.2/bootstraplauncher-1.1.2.jar:libraries/cpw/mods/securejarhandler/2.1.4/securejarhandler-2.1.4.jar:libraries/org/ow2/asm/asm-commons/9.5/asm-commons-9.5.jar:libraries/org/ow2/asm/asm-util/9.5/asm-util-9.5.jar:libraries/org/ow2/asm/asm-analysis/9.5/asm-analysis-9.5.jar:libraries/org/ow2/asm/asm-tree/9.5/asm-tree-9.5.jar:libraries/org/ow2/asm/asm/9.5/asm-9.5.jar:libraries/net/minecraftforge/JarJarFileSystems/0.3.16/JarJarFileSystems-0.3.16.jar --add-modules ALL-MODULE-PATH --add-opens java.base/java.util.jar=cpw.mods.securejarhandler --add-opens java.base/java.lang.invoke=cpw.mods.securejarhandler --add-exports java.base/sun.security.util=cpw.mods.securejarhandler --add-exports jdk.naming.dns/com.sun.jndi.dns=java.naming -Djava.net.preferIPv6Addresses=system -DignoreList=bootstraplauncher-1.1.2.jar,securejarhandler-2.1.4.jar,asm-commons-9.5.jar,asm-util-9.5.jar,asm-analysis-9.5.jar,asm-tree-9.5.jar,asm-9.5.jar,JarJarFileSystems-0.3.16.jar -DlibraryDirectory=libraries -DlegacyClassPath=libraries/cpw/mods/securejarhandler/2.1.4/securejarhandler-2.1.4.jar:libraries/org/ow2/asm/asm/9.5/asm-9.5.jar:libraries/org/ow2/asm/asm-commons/9.5/asm-commons-9.5.jar:libraries/org/ow2/asm/asm-tree/9.5/asm-tree-9.5.jar:libraries/org/ow2/asm/asm-util/9.5/asm-util-9.5.jar:libraries/org/ow2/asm/asm-analysis/9.5/asm-analysis-9.5.jar:libraries/net/minecraftforge/accesstransformers/8.0.4/accesstransformers-8.0.4.jar:libraries/org/antlr/antlr4-runtime/4.9.1/antlr4-runtime-4.9.1.jar:libraries/net/minecraftforge/eventbus/6.0.3/eventbus-6.0.3.jar:libraries/net/minecraftforge/forgespi/6.0.0/forgespi-6.0.0.jar:libraries/net/minecraftforge/coremods/5.0.1/coremods-5.0.1.jar:libraries/cpw/mods/modlauncher/10.0.8/modlauncher-10.0.8.jar:libraries/net/minecraftforge/unsafe/0.2.0/unsafe-0.2.0.jar:libraries/com/electronwill/night-config/core/3.6.4/core-3.6.4.jar:libraries/com/electronwill/night-config/toml/3.6.4/toml-3.6.4.jar:libraries/org/apache/maven/maven-artifact/3.8.5/maven-artifact-3.8.5.jar:libraries/net/jodah/typetools/0.8.3/typetools-0.8.3.jar:libraries/net/minecrell/terminalconsoleappender/1.2.0/terminalconsoleappender-1.2.0.jar:libraries/org/jline/jline-reader/3.12.1/jline-reader-3.12.1.jar:libraries/org/jline/jline-terminal/3.12.1/jline-terminal-3.12.1.jar:libraries/org/spongepowered/mixin/0.8.5/mixin-0.8.5.jar:libraries/org/openjdk/nashorn/nashorn-core/15.3/nashorn-core-15.3.jar:libraries/net/minecraftforge/JarJarSelector/0.3.16/JarJarSelector-0.3.16.jar:libraries/net/minecraftforge/JarJarMetadata/0.3.16/JarJarMetadata-0.3.16.jar:libraries/net/minecraftforge/fmlloader/1.19.2-43.3.0/fmlloader-1.19.2-43.3.0.jar:libraries/net/minecraft/server/1.19.2-20220805.130853/server-1.19.2-20220805.130853-extra.jar:libraries/com/github/oshi/oshi-core/5.8.5/oshi-core-5.8.5.jar:libraries/com/google/code/gson/gson/2.8.9/gson-2.8.9.jar:libraries/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar:libraries/com/google/guava/guava/31.0.1-jre/guava-31.0.1-jre.jar:libraries/com/mojang/authlib/3.11.49/authlib-3.11.49.jar:libraries/com/mojang/brigadier/1.0.18/brigadier-1.0.18.jar:libraries/com/mojang/datafixerupper/5.0.28/datafixerupper-5.0.28.jar:libraries/com/mojang/javabridge/1.2.24/javabridge-1.2.24.jar:libraries/com/mojang/logging/1.0.0/logging-1.0.0.jar:libraries/commons-io/commons-io/2.11.0/commons-io-2.11.0.jar:libraries/io/netty/netty-buffer/4.1.77.Final/netty-buffer-4.1.77.Final.jar:libraries/io/netty/netty-codec/4.1.77.Final/netty-codec-4.1.77.Final.jar:libraries/io/netty/netty-common/4.1.77.Final/netty-common-4.1.77.Final.jar:libraries/io/netty/netty-handler/4.1.77.Final/netty-handler-4.1.77.Final.jar:libraries/io/netty/netty-resolver/4.1.77.Final/netty-resolver-4.1.77.Final.jar:libraries/io/netty/netty-transport/4.1.77.Final/netty-transport-4.1.77.Final.jar:libraries/io/netty/netty-transport-classes-epoll/4.1.77.Final/netty-transport-classes-epoll-4.1.77.Final.jar:libraries/io/netty/netty-transport-native-epoll/4.1.77.Final/netty-transport-native-epoll-4.1.77.Final-linux-x86_64.jar:libraries/io/netty/netty-transport-native-epoll/4.1.77.Final/netty-transport-native-epoll-4.1.77.Final-linux-aarch_64.jar:libraries/io/netty/netty-transport-native-unix-common/4.1.77.Final/netty-transport-native-unix-common-4.1.77.Final.jar:libraries/it/unimi/dsi/fastutil/8.5.6/fastutil-8.5.6.jar:libraries/net/java/dev/jna/jna/5.10.0/jna-5.10.0.jar:libraries/net/java/dev/jna/jna-platform/5.10.0/jna-platform-5.10.0.jar:libraries/net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4.jar:libraries/org/apache/commons/commons-lang3/3.12.0/commons-lang3-3.12.0.jar:libraries/org/apache/logging/log4j/log4j-api/2.17.0/log4j-api-2.17.0.jar:libraries/org/apache/logging/log4j/log4j-core/2.17.0/log4j-core-2.17.0.jar:libraries/org/apache/logging/log4j/log4j-slf4j18-impl/2.17.0/log4j-slf4j18-impl-2.17.0.jar:libraries/org/slf4j/slf4j-api/1.8.0-beta4/slf4j-api-1.8.0-beta4.jar cpw.mods.bootstraplauncher.BootstrapLauncher --launchTarget forgeserver --fml.forgeVersion 43.3.0 --fml.mcVersion 1.19.2 --fml.forgeGroup net.minecraftforge --fml.mcpVersion 20220805.130853 [00:02:42] [main/INFO] [cp.mo.mo.Launcher/MODLAUNCHER]: ModLauncher running: args [--launchTarget, forgeserver, --fml.forgeVersion, 43.3.0, --fml.mcVersion, 1.19.2, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20220805.130853] [00:02:42] [main/INFO] [cp.mo.mo.Launcher/MODLAUNCHER]: ModLauncher 10.0.8+10.0.8+main.0ef7e830 starting: java version 17.0.10 by Eclipse Adoptium; OS Linux arch amd64 version 6.1.0-12-amd64 [00:02:43] [main/INFO] [mixin/]: SpongePowered MIXIN Subsystem Version=0.8.5 Source=union:/home/container/libraries/org/spongepowered/mixin/0.8.5/mixin-0.8.5.jar%2363!/ Service=ModLauncher Env=SERVER [00:02:43] [main/WARN] [ne.mi.fm.lo.mo.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/fmlcore/1.19.2-43.3.0/fmlcore-1.19.2-43.3.0.jar is missing mods.toml file [00:02:43] [main/WARN] [ne.mi.fm.lo.mo.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/javafmllanguage/1.19.2-43.3.0/javafmllanguage-1.19.2-43.3.0.jar is missing mods.toml file [00:02:43] [main/WARN] [ne.mi.fm.lo.mo.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/lowcodelanguage/1.19.2-43.3.0/lowcodelanguage-1.19.2-43.3.0.jar is missing mods.toml file [00:02:43] [main/WARN] [ne.mi.fm.lo.mo.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/mclanguage/1.19.2-43.3.0/mclanguage-1.19.2-43.3.0.jar is missing mods.toml file [00:02:44] [main/WARN] [ne.mi.ja.se.JarSelector/]: Attempted to select two dependency jars from JarJar which have the same identification: Mod File: and Mod File: . Using Mod File: [00:02:44] [main/WARN] [ne.mi.ja.se.JarSelector/]: Attempted to select a dependency jar for JarJar which was passed in as source: resourcefullib. Using Mod File: /home/container/mods/resourcefullib-forge-1.19.2-1.1.24.jar [00:02:44] [main/INFO] [ne.mi.fm.lo.mo.JarInJarDependencyLocator/]: Found 13 dependencies adding them to mods collection Latest log [29Mar2024 00:02:42.803] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher running: args [--launchTarget, forgeserver, --fml.forgeVersion, 43.3.0, --fml.mcVersion, 1.19.2, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20220805.130853] [29Mar2024 00:02:42.805] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher 10.0.8+10.0.8+main.0ef7e830 starting: java version 17.0.10 by Eclipse Adoptium; OS Linux arch amd64 version 6.1.0-12-amd64 [29Mar2024 00:02:43.548] [main/INFO] [mixin/]: SpongePowered MIXIN Subsystem Version=0.8.5 Source=union:/home/container/libraries/org/spongepowered/mixin/0.8.5/mixin-0.8.5.jar%2363!/ Service=ModLauncher Env=SERVER [29Mar2024 00:02:43.876] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/fmlcore/1.19.2-43.3.0/fmlcore-1.19.2-43.3.0.jar is missing mods.toml file [29Mar2024 00:02:43.877] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/javafmllanguage/1.19.2-43.3.0/javafmllanguage-1.19.2-43.3.0.jar is missing mods.toml file [29Mar2024 00:02:43.877] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/lowcodelanguage/1.19.2-43.3.0/lowcodelanguage-1.19.2-43.3.0.jar is missing mods.toml file [29Mar2024 00:02:43.878] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/mclanguage/1.19.2-43.3.0/mclanguage-1.19.2-43.3.0.jar is missing mods.toml file [29Mar2024 00:02:44.033] [main/WARN] [net.minecraftforge.jarjar.selection.JarSelector/]: Attempted to select two dependency jars from JarJar which have the same identification: Mod File: and Mod File: . Using Mod File: [29Mar2024 00:02:44.034] [main/WARN] [net.minecraftforge.jarjar.selection.JarSelector/]: Attempted to select a dependency jar for JarJar which was passed in as source: resourcefullib. Using Mod File: /home/container/mods/resourcefullib-forge-1.19.2-1.1.24.jar [29Mar2024 00:02:44.034] [main/INFO] [net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator/]: Found 13 dependencies adding them to mods collection
    • I am unable to do that. Brigadier is a mojang library that parses commands.
    • Hi, i appreciate the answer. I would love to do that, but we have active players with all their belongings in SSN. Also this mod is really handy and they would be mad if we removed it. Are you really certain that SSN is causing this? It would require lots of work to test it and SSN was not really an issue before we removed Fast Suite. Can it be related somehow? I will provide you with log before removing FS. PasteBin: https://pastebin.com/Y5EpLpNe (crash before removing Fast Suite, which I suspected to be a problem from some crash before)
  • Topics

×
×
  • Create New...

Important Information

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