Jump to content

[1.9] Issue with custom entity


NovaViper

Recommended Posts

I've never tried to make a mountable entity myself, but I'd recommend implementing

IJumpingMount

like

EntityHorse

does and let Minecraft handle the keybindings and networking for you.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

What do I do after implementing IJumpingMount?

 

Implement the methods like

EntityHorse

does and Minecraft should automatically call them when the player is riding your entity.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

I know that but I want to keep that sound but override the subtitles

 

Create a sound event in your sounds.json file, give it a sound with

minecraft:entity.horse.saddle

as the name and

event

as the type and then set its subtitle.

 

This will play a sound from the existing event but use your subtitle.

 

See this page for an explanation of the sounds.json format.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

I tried but whenever my entity plays the sound, it still says the default subtitle instead of mine, but when the horse plays it, it uses my subtitle

 

{
  "entity.terrakon.bark": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/bark1", "tetracraft:entity/terrakon/bark2", "tetracraft:entity/terrakon/bark3"], "subtitle": "subtitles.tetracraft:entity.terrakon.bark"},
  "entity.terrakon.growl": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/growl1", "tetracraft:entity/terrakon/growl2", "tetracraft:entity/terrakon/growl3"], "subtitle": "subtitles.tetracraft:entity.terrakon.growl"},
  "entity.terrakon.hurt": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/hurt1", "tetracraft:entity/terrakon/hurt2", "tetracraft:entity/terrakon/hurt3"], "subtitle": "subtitles.tetracraft:entity.terrakon.hurt"},
  "entity.terrakon.pant": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/panting"], "subtitle": "subtitles.tetracraft:entity.terrakon.pant"},
  "entity.terrakon.whine": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/whine"], "subtitle": "subtitles.tetracraft:entity.terrakon.whine"},
  "entity.terrakon.death": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/death"], "subtitle": "subtitles.tetracraft:entity.terrakon.death"},
  "action.land": {"category": "neutral", "sounds": ["tetracraft:action/land"], "subtitle": "subtitles.tetracraft:action.land"},
  "entity.horse.saddle": {"category": "neutral", "replace": true, "sounds": [], "subtitle": "subtitles.tetracraft:action.saddle"}


}

Main Developer and Owner of Zero Quest

Visit the Wiki for more information

If I helped anyone, please give me a applaud and a thank you!

Link to comment
Share on other sites

I didn't say anything about replacing the

minecraft:entity.horse.saddle

sound event, though that's not possible to do from a sounds.json file in assets/<modid> anyway.

 

You need to create your own sound event that uses

minecraft:entity.horse.saddle

as an entry in its

sounds

array.

 

Put this in sounds.json:

	"entity.terrakon.saddle": {
	"sounds": [
		{
			"name": "minecraft:entity.horse.saddle",
			"type": "event"
		}
	],
	"subtitle": "subtitles.tetracraft:action.saddle"
},

 

Then register a

SoundEvent

for

tetracraft:entity.terrakon.saddle

and play it when a Saddle is equipped.

 

This should play the sounds defined by the

minecraft:entity.horse.saddle

sound event but use the subtitle of your sound event.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

I added that and it now works for me! But I notice that it's still modifying the horse's subtitiles and noteable the pig's also.

My Sounds Json

{
  "entity.terrakon.bark": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/bark1", "tetracraft:entity/terrakon/bark2", "tetracraft:entity/terrakon/bark3"], "subtitle": "subtitles.tetracraft:entity.terrakon.bark"},
  "entity.terrakon.growl": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/growl1", "tetracraft:entity/terrakon/growl2", "tetracraft:entity/terrakon/growl3"], "subtitle": "subtitles.tetracraft:entity.terrakon.growl"},
  "entity.terrakon.hurt": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/hurt1", "tetracraft:entity/terrakon/hurt2", "tetracraft:entity/terrakon/hurt3"], "subtitle": "subtitles.tetracraft:entity.terrakon.hurt"},
  "entity.terrakon.pant": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/panting"], "subtitle": "subtitles.tetracraft:entity.terrakon.pant"},
  "entity.terrakon.whine": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/whine"], "subtitle": "subtitles.tetracraft:entity.terrakon.whine"},
  "entity.terrakon.death": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/death"], "subtitle": "subtitles.tetracraft:entity.terrakon.death"},
  "action.land": {"category": "neutral", "sounds": ["tetracraft:action/land"], "subtitle": "subtitles.tetracraft:action.land"},
  "action.saddle": {"category": "neutral", "type": "event","sounds": [{"name": "minecraft:entity/horse/saddle"}], "subtitle": "subtitles.tetracraft:action.saddle"}
}

 

I do get this warning too

[09:07:09] [server thread/WARN]: Terrakon (vehicle of NovaViper) moved too quickly! -7.445434141801343,0.0,7.055397094804505
[09:07:09] [server thread/WARN]: Terrakon (vehicle of NovaViper) moved too quickly! -7.417365426333163,0.0,7.8848732676423765
[09:07:09] [server thread/WARN]: Terrakon (vehicle of NovaViper) moved too quickly! -7.362166224918269,0.0,8.718640870110619
[09:07:09] [server thread/WARN]: Terrakon (vehicle of NovaViper) moved too quickly! -7.292450041396819,0.0,9.554704731012237
[09:07:09] [server thread/WARN]: Terrakon (vehicle of NovaViper) moved too quickly! -7.214966110187561,0.0,10.391997274018934
[09:07:09] [server thread/WARN]: Terrakon (vehicle of NovaViper) moved too quickly! -7.133325812062765,0.0,11.229947260322945
[09:07:09] [server thread/WARN]: Terrakon (vehicle of NovaViper) moved too quickly! -7.04946152487048,0.0,12.068249031427342

 

RideableEntity

package novaviper.tetracraft.common.entity;

import net.minecraft.block.Block;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.IJumpingMount;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.attributes.IAttribute;
import net.minecraft.entity.ai.attributes.RangedAttribute;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.init.MobEffects;
import net.minecraft.init.SoundEvents;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.datasync.DataParameter;
import net.minecraft.network.datasync.DataSerializers;
import net.minecraft.network.datasync.EntityDataManager;
import net.minecraft.util.DamageSource;
import net.minecraft.util.SoundEvent;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.MathHelper;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

/**
* Created by NovaViper on 4/23/2016.
* Class Purpose: Definition Class for the mod's RIDEABLE Tameable Entities
*/
public abstract class EntityModRideableTameable extends EntityModTameable implements IJumpingMount {

private static final IAttribute JUMP_STRENGTH = (new RangedAttribute((IAttribute)null, "horse.jumpStrength", 0.7D, 0.0D, 2.0D)).setDescription("Jump Strength").setShouldWatch(true);
private static final DataParameter<Boolean> SADDLED = EntityDataManager.<Boolean>createKey(EntityModTameable.class, DataSerializers.BOOLEAN);
private boolean field_110294_bI;
public float jumpPower;
protected boolean entityJumping;
/** Used to determine the sound that the horse should make when it steps */
protected int gallopTime;

public EntityModRideableTameable(World worldIn) {
	super(worldIn);
}

@Override
protected void applyEntityAttributes() {
	super.applyEntityAttributes();
	this.getAttributeMap().registerAttribute(JUMP_STRENGTH);
}

protected void entityInit()
{
	super.entityInit();
	this.dataManager.register(SADDLED, Boolean.valueOf(false)); // Saddle
}

/**
 * (abstract) Protected helper method to write subclass entity data to NBT.
 */
public void writeEntityToNBT(NBTTagCompound tagCompound)
{
	super.writeEntityToNBT(tagCompound);
	tagCompound.setBoolean("Saddle", this.isSaddled());
}

/**
 * (abstract) Protected helper method to read subclass entity data from NBT.
 */
public void readEntityFromNBT(NBTTagCompound tagCompound)
{
	super.readEntityFromNBT(tagCompound);
	this.setSaddled(tagCompound.getBoolean("Saddle"));

}

public boolean isSaddled() {

	return ((Boolean)this.dataManager.get(SADDLED)).booleanValue();
}

public void setSaddled(boolean saddled) {
	if (saddled)
	{
		this.dataManager.set(SADDLED, Boolean.valueOf(true));
	}
	else
	{
		this.dataManager.set(SADDLED, Boolean.valueOf(false));
	}
}

protected void playStepSound(BlockPos pos, Block blockIn)
{
	SoundType soundtype = blockIn.getSoundType();

	if (this.worldObj.getBlockState(pos.up()).getBlock() == Blocks.SNOW_LAYER)
	{
		soundtype = Blocks.SNOW_LAYER.getSoundType();
	}
	if (!blockIn.getDefaultState().getMaterial().isLiquid())
	{

		if (this.isBeingRidden())
		{
			++this.gallopTime;

			if (this.gallopTime > 5 && this.gallopTime % 3 == 0)
			{
				this.playSound(getGallopSound(), soundtype.getVolume() * 0.15F, soundtype.getPitch());
			}
			else if (this.gallopTime <= 5)
			{
				this.playSound(getStepSound(), soundtype.getVolume() * 0.15F, soundtype.getPitch());
			}
		}
	}
}

protected abstract SoundEvent getStepSound();

protected abstract SoundEvent getGallopSound();

/**
 * Drop the equipment for this entity.
 */
@Override
protected void dropEquipment(boolean wasRecentlyHit, int lootingModifier)
{
	super.dropEquipment(wasRecentlyHit, lootingModifier);

	if (this.isSaddled())
	{
		this.dropItem(Items.SADDLE, 1);
	}
}

public void makePlayerRide(EntityPlayer player){
	player.rotationYaw = this.rotationYaw;
	player.rotationPitch = this.rotationPitch;
	this.setSitting(false);

	if (isServer()){
		player.startRiding(this);
	}
}

/**
 * Returns true if this entity should push and be pushed by other entities when colliding.
 */
public boolean canBePushed()
{
	return !this.isBeingRidden();
}

public boolean isJumping()
{
	return this.entityJumping;
}

public void setJumping(boolean jumping)
{
	this.entityJumping = jumping;
}

public double getJumpStrength()
{
	return this.getEntityAttribute(JUMP_STRENGTH).getAttributeValue();
}

@SideOnly(Side.CLIENT)
public void setJumpPower(int jumpPowerIn)
{
	if (this.isSaddled())
	{
		if (jumpPowerIn < 0)
		{
			jumpPowerIn = 0;
		}
		else
		{
			this.field_110294_bI = true;
		}

		if (jumpPowerIn >= 90)
		{
			this.jumpPower = 1.0F;
		}
		else
		{
			this.jumpPower = 0.4F + 0.4F * (float)jumpPowerIn / 90.0F;
		}
	}
}

public boolean canJump()
{
	return this.isSaddled();
}

public void func_184775_b(int p_184775_1_)
{
	this.field_110294_bI = true;
}

@Override
public void func_184777_r_() {}

/**
 * Dead and sleeping entities cannot move
 */
protected boolean isMovementBlocked()
{
	return this.isBeingRidden() && this.isSaddled() ? true : super.isMovementBlocked();
}

/**
 * Moves the entity based on the specified heading.
 */
public void moveEntityWithHeading(float strafe, float forward)
{
	if (this.isBeingRidden() && this.canBeSteered() && this.isSaddled())
	{
		EntityLivingBase entitylivingbase = (EntityLivingBase)this.getControllingPassenger();
		this.prevRotationYaw = this.rotationYaw = entitylivingbase.rotationYaw;
		this.rotationPitch = entitylivingbase.rotationPitch * 0.5F;
		this.setRotation(this.rotationYaw, this.rotationPitch);
		this.rotationYawHead = this.renderYawOffset = this.rotationYaw;
		strafe = entitylivingbase.moveStrafing * 0.5F;
		forward = entitylivingbase.moveForward;

		if (forward <= 0.0F)
		{
			forward *= 0.25F;
			this.gallopTime = 0;
		}

		if (this.jumpPower > 0.0F && !this.isJumping() && this.onGround)
		{
			this.motionY = this.getJumpStrength() * (double)this.jumpPower;

			if (this.isPotionActive(MobEffects.JUMP_BOOST))
			{
				this.motionY += (double)((float)(this.getActivePotionEffect(MobEffects.JUMP_BOOST).getAmplifier() + 1) * 0.1F);
			}

			this.setJumping(true);
			this.isAirBorne = true;

			if (forward > 0.0F)
			{
				float f = MathHelper.sin(this.rotationYaw * 0.017453292F);
				float f1 = MathHelper.cos(this.rotationYaw * 0.017453292F);
				this.motionX += (double)(-0.4F * f * this.jumpPower);
				this.motionZ += (double)(0.4F * f1 * this.jumpPower);
				this.playSound(SoundEvents.ENTITY_HORSE_JUMP, 0.4F, 1.0F);
			}

			this.jumpPower = 0.0F;
			net.minecraftforge.common.ForgeHooks.onLivingJump(this);
		}

		this.stepHeight = 1.0F;
		this.jumpMovementFactor = this.getAIMoveSpeed() * 0.1F;

		if (this.canPassengerSteer())
		{
			this.setAIMoveSpeed((float)this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).getAttributeValue());
			super.moveEntityWithHeading(strafe, forward);
		}
		else if (entitylivingbase instanceof EntityPlayer)
		{
			this.motionX = 0.0D;
			this.motionY = 0.0D;
			this.motionZ = 0.0D;
		}

		if (this.onGround)
		{
			this.jumpPower = 0.0F;
			this.setJumping(false);
		}

		this.prevLimbSwingAmount = this.limbSwingAmount;
		double d1 = this.posX - this.prevPosX;
		double d0 = this.posZ - this.prevPosZ;
		float f2 = MathHelper.sqrt_double(d1 * d1 + d0 * d0) * 4.0F;

		if (f2 > 1.0F)
		{
			f2 = 1.0F;
		}

		this.limbSwingAmount += (f2 - this.limbSwingAmount) * 0.4F;
		this.limbSwing += this.limbSwingAmount;
	}
	else
	{
		this.stepHeight = 0.5F;
		this.jumpMovementFactor = 0.02F;
		super.moveEntityWithHeading(strafe, forward);
	}
}

/**
 * returns true if all the conditions for steering the entity are met. For pigs, this is true if it is being ridden
 * by a player and the player is holding a carrot-on-a-stick
 */
public boolean canBeSteered()
{
	Entity entity = this.getControllingPassenger();
	return entity instanceof EntityLivingBase;
}

/**
 * For vehicles, the first passenger is generally considered the controller and "drives" the vehicle. For example,
 * Pigs, Horses, and Boats are generally "steered" by the controlling passenger.
 */
public Entity getControllingPassenger()
{
	return this.getPassengers().isEmpty() ? null : (Entity)this.getPassengers().get(0);
}

public void fall(float distance, float damageMultiplier)
{
	if (distance > 1.0F)
	{
		this.playSound(SoundEvents.ENTITY_HORSE_LAND, 0.4F, 1.0F);
	}

	int i = MathHelper.ceiling_float_int((distance * 0.5F - 3.0F) * damageMultiplier);

	if (i > 0)
	{
		this.attackEntityFrom(DamageSource.fall, (float)i);

		if (this.isBeingRidden())
		{
			for (Entity entity : this.getRecursivePassengers())
			{
				entity.attackEntityFrom(DamageSource.fall, (float)i);
			}
		}

		IBlockState iblockstate = this.worldObj.getBlockState(new BlockPos(this.posX, this.posY - 0.2D - (double)this.prevRotationYaw, this.posZ));
		Block block = iblockstate.getBlock();

		if (iblockstate.getMaterial() != Material.AIR && !this.isSilent())
		{
			SoundType soundtype = block.getSoundType();
			this.worldObj.playSound((EntityPlayer)null, this.posX, this.posY, this.posZ, soundtype.getStepSound(), this.getSoundCategory(), soundtype.getVolume() * 0.5F, soundtype.getPitch() * 0.75F);
		}
	}
}
}

 

Terrakon

package novaviper.tetracraft.common.entity;

import com.google.common.base.Predicate;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityAgeable;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.*;
import net.minecraft.entity.passive.EntityAnimal;
import net.minecraft.entity.passive.EntityCow;
import net.minecraft.entity.passive.EntityRabbit;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.projectile.EntityArrow;
import net.minecraft.init.Items;
import net.minecraft.init.SoundEvents;
import net.minecraft.inventory.EntityEquipmentSlot;
import net.minecraft.item.EnumDyeColor;
import net.minecraft.item.Item;
import net.minecraft.item.ItemFood;
import net.minecraft.item.ItemStack;
import net.minecraft.util.*;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.TextComponentTranslation;
import net.minecraft.world.World;
import novaviper.tetracraft.common.helper.ChatHelper;
import novaviper.tetracraft.common.init.ModItems;
import novaviper.tetracraft.common.init.ModLootTables;
import novaviper.tetracraft.common.util.ItemUtils;
import novaviper.tetracraft.lib.Constants;
import novaviper.tetracraft.lib.ModSoundEvents;

import java.util.UUID;

/**
* Created by NovaViper on 3/1/2016.
* Class Purpose: Main Entity class for the Terrakon
*/
public class EntityTerrakon extends EntityModRideableTameable {

public EntityTerrakon(World worldIn) {
	super(worldIn);
	this.setSize(1, 1.5f);
	this.tasks.addTask(1, new EntityAISwimming(this));
	this.tasks.addTask(2, this.aiSit = new EntityAISit(this));
	this.tasks.addTask(3, new EntityAILeapAtTarget(this, 0.4F));
	this.tasks.addTask(4, new EntityAIAttackMelee(this, 1.0D, true));
	this.tasks.addTask(5, new EntityAIFollowOwner(this, 1.0D, 10.0F, 2.0F));
	this.tasks.addTask(6, new EntityAIMate(this, 1.0D));
	this.tasks.addTask(7, new EntityAIWander(this, 1.0D));
	this.tasks.addTask(9, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F));
	this.tasks.addTask(9, new EntityAILookIdle(this));
	this.targetTasks.addTask(1, new EntityAIOwnerHurtByTarget(this));
	this.targetTasks.addTask(2, new EntityAIOwnerHurtTarget(this));
	this.targetTasks.addTask(3, new EntityAIHurtByTarget(this, true, new Class[0]));
	this.targetTasks.addTask(4, new EntityAITargetNonTamed(this, EntityAnimal.class, false, new Predicate<Entity>() {
		public boolean apply(Entity entity) {
			return entity instanceof EntityCow || entity instanceof EntityRabbit;
		}
	}));
	this.setTamed(false);
}

protected void applyEntityAttributes() {
	super.applyEntityAttributes();
	this.updateEntityAttributes();
}

@Override
public void updateEntityAttributes() {
	this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.40000001192092896D);
	if(this.isTamed()){
		if(!this.isChild()){
			this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(50.0D);
			this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).setBaseValue(6.0D);
		}else{
			this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(10.0D);
			this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).setBaseValue(1.0D);
		}

	}else{
		if(!this.isChild()) {
			this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(40.0D);
			this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).setBaseValue(6.0D);
		}else{
			this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(10.0D);
			this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).setBaseValue(1.0D);
		}
	}
}

@Override
protected SoundEvent getStepSound() {
	return SoundEvents.ENTITY_WOLF_STEP;
}

@Override
protected SoundEvent getGallopSound() {
	return SoundEvents.ENTITY_HORSE_GALLOP;
}

@Override
protected SoundEvent getHurtSound() {
	return ModSoundEvents.terrakonHurt;
}

@Override
protected SoundEvent getDeathSound() {
	return ModSoundEvents.terrakonDeath;
}

@Override
protected SoundEvent getAmbientSound() {
	// if(!this.inFinalStage()){
	return isAngry() ? ModSoundEvents.terrakonGrowl : rand.nextInt(3) == 0
			? isTamed() && getHealth() <= Constants.lowHP ? ModSoundEvents.terrakonWhine
			: ModSoundEvents.terrakonPanting : ModSoundEvents.terrakonBark;
	/* }else{ return Sound.; } */
}


/**
 * Get number of ticks, at least during which the living entity will be
 * silent.
 */
@Override
public int getTalkInterval() {
	if (getHealth() <= Constants.lowHP && !this.isChild()) {
		return 20;
	} else {
		return super.getTalkInterval();
	}
}

/**
 * Returns the volume for the sounds this mob makes.
 */
@Override
public float getSoundVolume() {
	return 2F;
}

/**
 * Gets the pitch of living sounds in living entities.
 */
@Override
public float getPitch() {
	if (!isChild()) {
		return super.getSoundPitch();
	} else {
		return super.getSoundPitch() * 1;
	}
}

/**
 * Called when the entity is attacked.
 */
public boolean attackEntityFrom(DamageSource source, float amount) {
	if (this.isEntityInvulnerable(source)) {
		return false;
	} else {
		Entity entity = source.getEntity();
		this.aiSit.setSitting(false);

		if (entity != null && !(entity instanceof EntityPlayer) && !(entity instanceof EntityArrow)) {
			amount = (amount + 1.0F) / 2.0F;
		}

		return super.attackEntityFrom(source, amount);
	}
}

public boolean attackEntityAsMob(Entity entityIn) {
	boolean flag = entityIn.attackEntityFrom(DamageSource.causeMobDamage(this), (float) ((int) this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).getAttributeValue()));

	if (flag) {
		this.applyEnchantments(this, entityIn);
		this.updateEntityAttributes();
	}

	return flag;
}

public void setTamed(boolean tamed) {
	super.setTamed(tamed);
	this.updateEntityAttributes();
}

/**
 * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig.
 */
@Override
public boolean processInteract(EntityPlayer player, EnumHand hand, ItemStack stack) {
	if (stack != null && stack.getItem() == Items.SPAWN_EGG)
	{
		return super.processInteract(player, hand, stack);
	}

	if (this.isTamed()) {
		if (stack != null) {
			if (stack.getItem() instanceof ItemFood) {
				ItemFood itemfood = null;
				if (getHealthRelative() < 1) {
					itemfood = (ItemFood) ItemUtils.consumeEquipped(player, EntityEquipmentSlot.MAINHAND, this.populateEatableFoods());
					if (itemfood != null) {
						float volume = getSoundVolume() * 1.0f;
						float pitch = getPitch();
						BlockPos pos = this.getPosition();
						worldObj.playSound(player, pos.getX(), pos.getY(), pos.getZ(), SoundEvents.ENTITY_GENERIC_EAT, SoundCategory.NEUTRAL, volume, pitch);
						this.heal(itemfood.getHealAmount(stack));
					}
					return true;
				}
			} else if (stack.getItem() == Items.SHEARS && this.canInteract(player)) {
				if (isServer()) {
					unTame();
					this.setSaddled(false);
				}
				return true;
			}
			else if (ItemUtils.consumeEquipped(player, EntityEquipmentSlot.MAINHAND, Items.SADDLE) && !this.isSaddled() && isServer()) {
				if(this.canInteract(player)) {
					if (!this.isChild()) {
							this.setSaddled(true);
							this.playSound(ModSoundEvents.Saddle, 0.5F, 1.0F);
					} else {
							TextComponentTranslation text = ChatHelper.getChatComponentTranslation("interaction.tetracraft.entity.cannotBeRidden");
							this.tooYoungForInteract((EntityModTameable) this, player, text);
						return true;
					}
				}else{
					this.doNotOwnMessage((EntityModTameable)this, player);
				}
			}else if(stack.getItem() == Items.STICK && this.isSaddled() && !player.onGround){
				if(this.canInteract(player)) {
					this.makePlayerRide(player);
				}else{
					this.doNotOwnMessage((EntityModTameable)this, player);
				}
				return true;
			}
			/*else if (stack.getItem() == Items.stick && canInteract(player))
			{
				if (isServer()) {
					player.openGui(TetraCraft.instance, CommonProxy.PetPack, this.worldObj, this.getEntityId(), MathHelper.floor_double(this.posY), MathHelper.floor_double(this.posZ));
					this.worldObj.playSoundEffect(this.posX, this.posY + 0.5D, this.posZ, "random.chestopen", 0.5F, this.worldObj.rand.nextFloat() * 0.1F + 0.9F);
					return true;
				}
			}*/
			else if (ItemUtils.consumeEquipped(player, EntityEquipmentSlot.MAINHAND, Items.DYE) && this.canInteract(player)) {
				EnumDyeColor enumdyecolor = EnumDyeColor.byDyeDamage(stack.getMetadata());
				if (enumdyecolor != this.getCollarColor()) {
					this.setCollarColor(enumdyecolor);
					return true;
				}
			}
		}

		if (canInteract(player) && isServer() && !this.isBreedingItem(stack)) {
			this.aiSit.setSitting(!this.isSitting());
			this.isJumping = false;
			this.navigator.clearPathEntity();
			this.setAttackTarget((EntityLivingBase)null);
		}
	} else if (ItemUtils.consumeEquipped(player, EntityEquipmentSlot.MAINHAND, Items.BONE) && !this.isAngry()) {
		if (isServer()) {
			tamedFor(player, this.rand.nextInt(3) == 0);
		}
		return true;
	}
	return super.processInteract(player, hand, stack);
}

/**
 * Checks if the parameter is an item which this animal can be fed to breed it (wheat, carrots or seeds depending on
 * the animal type)
 */
public boolean isBreedingItem(ItemStack stack) {
	return stack == null ? false : stack.getItem() == ModItems.breedingBone;
}

@Override
public Item[] populateEatableFoods() {
	super.populateEatableFoods();
	Item[] food = {Items.BEEF, Items.CHICKEN, Items.PORKCHOP, Items.MUTTON, Items.RABBIT, Items.FISH,
			Items.COOKED_BEEF, Items.COOKED_CHICKEN, Items.COOKED_PORKCHOP, Items.COOKED_MUTTON, Items.COOKED_RABBIT, Items.COOKED_FISH};

	return food;
}

@Override
protected ResourceLocation getLootTable()
{
	return ModLootTables.LootTableTerrakon;
}
/**
 * Returns true if the mob is currently able to mate with the specified mob.
 */

@Override
public boolean canMateWith(EntityAnimal otherAnimal) {
	if (otherAnimal == this) {
		return false;
	} else if (!this.isTamed()) {
		return false;
	} else if (!(otherAnimal instanceof EntityTerrakon)) {
		return false;
	} else {
		EntityTerrakon entityTerrakon = (EntityTerrakon) otherAnimal;
		return !entityTerrakon.isTamed() ? false : (entityTerrakon.isSitting() ? false
				: this.getGender() == entityTerrakon.getGender() ? false
				: this.isInLove() && entityTerrakon.isInLove());
	}
}

@Override
public EntityTerrakon createChild(EntityAgeable ageable) {
	EntityTerrakon entityTerrakon = new EntityTerrakon(this.worldObj);
	UUID uuid = this.getOwnerId();

	if (uuid != null) {
		entityTerrakon.setOwnerId(uuid);
		entityTerrakon.setTamed(true);
	}

	return entityTerrakon;
}
}

Main Developer and Owner of Zero Quest

Visit the Wiki for more information

If I helped anyone, please give me a applaud and a thank you!

Link to comment
Share on other sites

Also got this warning:

 

[09:00:01] [Client thread/WARN]: File minecraft:sounds/entity/horse/saddle.ogg does not exist, cannot add it to event tetracraft:action.saddle

 

The code is in the post above

Main Developer and Owner of Zero Quest

Visit the Wiki for more information

If I helped anyone, please give me a applaud and a thank you!

Link to comment
Share on other sites

Please pay closer attention to my posts. I said you should use the

minecraft:entity.horse.saddle

sound event as a sound in your own sound event, not the

 minecraft:sounds/entity/horse/saddle.ogg

sound file (which doesn't exist, as you've seen). I even gave you an example of what you needed to put in sounds.json. You can see a working example of this here.

 

As for the warning: When the server receives a

CPacketVehicleMove

, it calls

NetHandlerPlayServer#processVehicleMove

. This calculates the distance between the mount position sent in the packet and the server's last known mount position. If the difference between this distance and the magnitude of the mount's motion vector is more than 10 (actually if difference between their squares is more than 100), the server logs that warning and sends a

SPacketMoveVehicle

to the client to reset the mount's position to the server's last known position.

 

If your mount uses the same motion/networking code as the Horse, I'm not entirely sure why this would happen.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

Hey Choonster, the default saddle subtitle is still getting replaced by mine.

 

{
  "entity.terrakon.bark": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/bark1", "tetracraft:entity/terrakon/bark2", "tetracraft:entity/terrakon/bark3"], "subtitle": "subtitles.tetracraft:entity.terrakon.bark"},
  "entity.terrakon.growl": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/growl1", "tetracraft:entity/terrakon/growl2", "tetracraft:entity/terrakon/growl3"], "subtitle": "subtitles.tetracraft:entity.terrakon.growl"},
  "entity.terrakon.hurt": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/hurt1", "tetracraft:entity/terrakon/hurt2", "tetracraft:entity/terrakon/hurt3"], "subtitle": "subtitles.tetracraft:entity.terrakon.hurt"},
  "entity.terrakon.pant": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/panting"], "subtitle": "subtitles.tetracraft:entity.terrakon.pant"},
  "entity.terrakon.whine": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/whine"], "subtitle": "subtitles.tetracraft:entity.terrakon.whine"},
  "entity.terrakon.death": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/death"], "subtitle": "subtitles.tetracraft:entity.terrakon.death"},
  "action.land": {"category": "neutral", "sounds": ["tetracraft:action/land"], "subtitle": "subtitles.tetracraft:action.land"},
  "action.saddle": {"sounds": [{"name": "minecraft:entity.horse.saddle", "type": "event"}], "subtitle": "subtitles.tetracraft:action.saddle"
}

}

Main Developer and Owner of Zero Quest

Visit the Wiki for more information

If I helped anyone, please give me a applaud and a thank you!

Link to comment
Share on other sites

Also... how do I separate my source codes between the branches on Github?

 

---UPDATE---

I just figured it out but I got another thing; I'm trying to download my branches for IntelliJ but I only want the specific branch downloaded. How do I accomplish this?

Main Developer and Owner of Zero Quest

Visit the Wiki for more information

If I helped anyone, please give me a applaud and a thank you!

Link to comment
Share on other sites

Hey Choonster, the default saddle subtitle is still getting replaced by mine.

So equipping a vanilla saddle on a vanilla horse shows your subtitle? I can't reproduce this.

 

Also... how do I separate my source codes between the branches on Github?

In the process of writing a reply, I looked at your GitHub repository and noticed you'd already done it.

 

If you encounter further problems with Git, try looking for the solution first. If you can't find it, post here and I may or may not be able to help you.

 

Any further questions not directly related to the custom entity should probably be posted in a separate thread.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

---UPDATE---

I just figured it out but I got another thing; I'm trying to download my branches for IntelliJ but I only want the specific branch downloaded. How do I accomplish this?

 

Clone the repository, then checkout the desired branch using a Git client (e.g. IntelliJ IDEA, GitHub Desktop, command-line Git).

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

Hey Choonster, the default saddle subtitle is still getting replaced by mine.

So equipping a vanilla saddle on a vanilla horse shows your subtitle? I can't reproduce this.

 

Yeah, for some odd reason its still showing mine.

Main Developer and Owner of Zero Quest

Visit the Wiki for more information

If I helped anyone, please give me a applaud and a thank you!

Link to comment
Share on other sites

---UPDATE---

I just figured it out but I got another thing; I'm trying to download my branches for IntelliJ but I only want the specific branch downloaded. How do I accomplish this?

 

Clone the repository, then checkout the desired branch using a Git client (e.g. IntelliJ IDEA, GitHub Desktop, command-line Git).

 

How would I check out the branch in InteillJ? I got the repository cloned and ready but not sure what to do next.

Main Developer and Owner of Zero Quest

Visit the Wiki for more information

If I helped anyone, please give me a applaud and a thank you!

Link to comment
Share on other sites

How would I check out the branch in InteillJ? I got the repository cloned and ready but not sure what to do next.

 

Right click somewhere in the Project window, then select Git > Repository > Branches in the context menu. Select the branch to checkout from the popup menu that appears.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

How would I check out the branch in InteillJ? I got the repository cloned and ready but not sure what to do next.

 

Right click somewhere in the Project window, then select Git > Repository > Branches in the context menu. Select the branch to checkout from the popup menu that appears.

 

Thanks for the tip! And atm, I'm trying to reset my IDE because I messed up something with the configurations and seeing if that bug with the horse saddle is fixed

Main Developer and Owner of Zero Quest

Visit the Wiki for more information

If I helped anyone, please give me a applaud and a thank you!

Link to comment
Share on other sites

Refresh the project from the Gradle window (this is needed after running

setupDecompWorkspace

to allow the project to use the new Forge version), then synchronise the project from the Project window (this is needed after running

genIntelliJRuns

to bring up the prompt to reopen the IDE and use the new run configurations).

 

You then need to edit the run configurations to use the classpath of the

<ProjectName>_main

module.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

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

    • Hello, I'm trying to modify the effects of native enchantments for bows and arrows in Minecraft. After using a decompilation tool, I found that the specific implementations of native bow and arrow enchantments (including `ArrowDamageEnchantment`, `ArrowKnockbackEnchantment`, `ArrowFireEnchantment`, `ArrowInfiniteEnchantment`, `ArrowPiercingEnchantment`) do not contain any information about the enchantment effects (such as the `getDamageProtection` function for `ProtectionEnchantment`, `getDamageBonus` function for `DamageEnchantment`, etc.). Upon searching for the base class of arrows, `AbstractArrow`, I found a function named setEnchantmentEffectsFromEntity`, which seems to be used to retrieve the enchantment levels of the tool held by a `LivingEntity` and calculate the specific values of the enchantment effects. However, after testing with the following code, I found that this function is not being called:   @Mixin(AbstractArrow.class) public class ModifyArrowEnchantmentEffects {     private static final Logger LOGGER = LogUtils.getLogger();     @Inject(         method = "setEnchantmentEffectsFromEntity",         at = @At("HEAD")     )     private void logArrowEnchantmentEffectsFromEntity(CallbackInfo ci) {         LOGGER.info("Arrow enchantment effects from entity");     } }   Upon further investigation, I found that within the onHitEntity method, there are several lines of code:               if (!this.level().isClientSide &amp;&amp; entity1 instanceof LivingEntity) {                EnchantmentHelper.doPostHurtEffects(livingentity, entity1);                EnchantmentHelper.doPostDamageEffects((LivingEntity)entity1, livingentity);             }   These lines of code actually call the doPostHurt and doPostAttack methods of each enchantment in the enchantment list. However, this leads back to the issue because native bow and arrow enchantments do not implement these functions. Although their base class defines the functions, they are empty. At this point, I'm completely stumped and seeking assistance. Thank you.
    • 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.
  • Topics

×
×
  • Create New...

Important Information

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