Jump to content

[1.7.10] NBT saving issue - value reads and writes but is thrown away on log off


Recommended Posts

Posted

Ok so I have a custom entity that is tameable using my own custom system. When the entity is tamed it gets the name of the player that tamed it and this name is displayed above the entity via a text box (like minecraft does). This works perfectly while the player is logged in. The problem starts when I log off the name is thrown away into oblivion, And I know that it is my entity that remains in the world since its UUID's match before log on and after log off.

 

This is the order of events:

 

Player tames entity -> entity is written to NBT -> If I call readEntityFromNBT at this point I get "ON READ THE OWNER NAME IS  Player567" outprinted to consol -> The Owner name shows up above my entity and all is well. Then I hit the Esc key -> writeEntityToNBT is called -> I get "ON WRITE THE OWNER NAME IS  Player567" outprinted to the consol -> and I click Log off. So everything should be good right? But it isnt when I log back on and I see my entity the Owner name does not show up above my entity, the readEntityFromNBT method outprints "ON READ THE OWNER NAME IS        " with no name, and when I hit esc the writeEntityToNBT is called -> I get "ON WRITE THE OWNER NAME IS  " outprinted to the consol with no name? Why is it being thrown out into oblivion when I log off???? and while I am logged on and I tamed it I can call the read method whenever I feel like it and I always get the owner name printing to consol?

 

Please note my entity class is highly customized and HUGE but this is the relevant code for the owner name and the NBT stuff (I had to remove a lot of code to make this more easily readable) Any help is appreciated

 

public class EntityCustom extends EntityAnimal implements IEntityAdditionalSpawnData{

//IDs for DataWatcher
private static final int ownerDataID = 25;

public EntityCustom(World world) {
	super(world);
	this.setSize(0.9F, 0.9F); // hitbox size?
	}
}

protected void entityInit() {
	super.entityInit();
	this.dataWatcher.addObject(ownerDataID, "");

}

@Override
public String getCustomNameTag(){
	if(this.getOwnerName().length() > 0){
		return this.getOwnerName() + "'s " + this.getName();
	}
	return "";
}

//Add a textbox on top of entity if it has an owner
public boolean hasCustomNameTag(){
	return this.getOwnerName().length() > 0;
	//return true;
}

@Override
public boolean getAlwaysRenderNameTag(){
	return this.dataWatcher.getWatchableObjectByte(11) == 1;
}

public void setNameTagVisible(boolean visible){
	this.dataWatcher.updateObject(11, (byte)(visible ? 1 : 0));
}

public String getName(){
	return this.getEntityString();
}

public String getOwnerName(){
	return this.dataWatcher.getWatchableObjectString(this.ownerDataID);
}

public EntityLivingBase getOwner(){
	return this.worldObj.getPlayerEntityByName(this.getOwnerName());
}

public void setOwner(String ownerName){
	this.dataWatcher.updateObject(this.ownerDataID, ownerName);
}


@Override
public void readEntityFromNBT(NBTTagCompound nbtCompound)
{   
	super.readEntityFromNBT(nbtCompound);

	nbtCompound.getString("EntName");

	stats.ownerName = nbtCompound.getString("ownerName");
	System.out.println("ON READ THE OWNER NAME IS   " +stats.ownerName);

}

@Override
public void writeEntityToNBT(NBTTagCompound nbtCompound)
{ 
	super.writeEntityToNBT(nbtCompound);
	nbtCompound.setString("EntName", EntityList.getEntityString(this));
	nbtCompound.setString("ownerName", this.getOwnerName());
	System.out.println("ON WRITE THE OWNER NAME IS   " + this.getOwnerName());
}

@Override
public EntityCustom createChild(EntityAgeable entityageable) {
	return new EntityCustom(this.worldObj);
}
}

Posted

Also this seems to only happen in singleplayer, when I am in a lan environment and I have 2 clients, when 1 client tames then logs off then logs back on that client players name persists. But if all players log off then restart the lan world the names disappear.

Posted

I must say I haven't really read whole post, but I've looked at code.

 

You are doing it wrong way.

It' s better off to store direct link to entity objects and only when writing them (to NBT) to actually encode them into UUIDs.

 

Goal: Make entity have owner, like the dog can have one.

The design is quite simple:

Inside your CustomEntity create field EntityPlayer owner.

When player tames entity (which should happen server side), change owner to player.

In some #setOwner(EntityPlayer owner) method make it send packet from server to client with entityId of entity whos owner has to be changed and entityId of player who will claim ownership.

I alredy told you how to dynamically update stuff - you can do that here too. (I guess you can also use DataWatchers to update entity's owner - still using entityId of player)

 

Now saving - NBT are only server side, same goes for UUID. UUIDs will only work and retrieve correct data on server side, and only when server is in online mode.

When entity is unloaded you can get owner filed and player.getUUID(), save it to NBT as string or 2x longs (UUID.getMost/LeastSignificantBits()).

 

Similar stuff happens in ThrownEntities, probably dogs and stuff like that.

EDIT

Oh and why is it better?

- Never use direct player names, use UUIDs (always).

- Sending one entityId is better than sending string (in both cases - nick or UUID)

- I never liked DataWatchers and strongly suggest using them ONLY when value is updated a LOT, not stuff like owner.

1.7.10 is no longer supported by forge, you are on your own.

Posted

oh ya oops that is my custom stats class I forgot to include that

 

public Stats stats = new Stats();

 

and the class is

 

public class PokemonStats {

        public int modelID;
public String ownerName = "";

//current stats
public int level = 0;
public int hp, currentHp;
public int att, currentAtt;
public int def, currentDef;
public int spAtt, currentSpAtt;
public int spDef, currentSpDef;
public int spd, currentSpd;

//determinant values. These should be initialized when the entity is created, and should
//never change.
public int DV_HP;
public int DV_Att;
public int DV_Def;
public int DV_SpAtt;
public int DV_SpDef;
public int DV_Spd;

//effort values - gained through battling
public int EV_HP;
public int EV_Att;
public int EV_Def;
public int EV_SpAtt;
public int EV_SpDef;
public int EV_Spd;

//total experience gained from battling
public int exp;

//important: make sure the stats are written/read in the same order. If they are not, they will be mixed up!
public void fromBytes(ByteBuf buf){
	try{
	modelID = buf.readInt();
	level = buf.readInt();

	hp = buf.readInt();
	currentHp = buf.readInt();
	att = buf.readInt(); 
	currentAtt = buf.readInt();
	def = buf.readInt(); 
	currentDef = buf.readInt();
	spAtt = buf.readInt(); 
	currentSpAtt = buf.readInt();
	spDef = buf.readInt(); 
	currentSpDef = buf.readInt();
	spd = buf.readInt(); 
	currentSpd = buf.readInt();

	DV_HP = buf.readInt();
	DV_Att = buf.readInt();
	DV_Def = buf.readInt();
	DV_SpAtt = buf.readInt();
	DV_SpDef = buf.readInt();
	DV_Spd = buf.readInt();

	EV_HP = buf.readInt();
	EV_Att = buf.readInt();
	EV_Def = buf.readInt();
	EV_SpAtt = buf.readInt();
	EV_SpDef = buf.readInt();
	EV_Spd = buf.readInt();

	exp = buf.readInt();
	//read string owner name. Need to store and read the length of string.
	int ownerNameLength = buf.readInt();
	StringBuilder stringBuilder = new StringBuilder();
	for(int i=0;i<ownerNameLength;i++){
		stringBuilder.append(buf.readChar());
	}
	ownerName = stringBuilder.toString();
	}
	catch(Exception e){
		System.out.println(e.toString());
	}
}

//important: make sure the stats are written/read in the same order. If they are not, they will be mixed up!
public void toBytes(ByteBuf buf){
	buf.writeInt(modelxID);
	buf.writeInt(level);	

	buf.writeInt(hp);
	buf.writeInt(currentHp);
	buf.writeInt(att);
	buf.writeInt(currentAtt);
	buf.writeInt(def);
	buf.writeInt(currentDef);
	buf.writeInt(spAtt);
	buf.writeInt(currentSpAtt);
	buf.writeInt(spDef);
	buf.writeInt(currentSpDef);
	buf.writeInt(spd);
	buf.writeInt(currentSpd);

	buf.writeInt(DV_HP);
	buf.writeInt(DV_Att);
	buf.writeInt(DV_Def);
	buf.writeInt(DV_SpAtt);
	buf.writeInt(DV_SpDef);
	buf.writeInt(DV_Spd);

	buf.writeInt(EV_HP);
	buf.writeInt(EV_Att);
	buf.writeInt(EV_Def);
	buf.writeInt(EV_SpAtt);
	buf.writeInt(EV_SpDef);
	buf.writeInt(EV_Spd);

	buf.writeInt(exp);

	buf.writeInt(ownerName.length());
		for(int i=0;i<ownerName.length();i++){
			buf.writeChar(ownerName.charAt(i));
		}
	}
}

Posted

I guess the goal is to store the Owner name inside the stats of the custom entity since they can be accessed easily and are persistent

For player, nickname is not constant, it can be different when his nickname changes. Only UUID is persistent.

So save both of them: nickname and UUID.

I. Stellarium for Minecraft: Configurable Universe for Minecraft! (WIP)

II. Stellar Sky, Better Star Rendering&Sky Utility mod, had separated from Stellarium.

Posted

An entity's NBT data is persistent - that's the whole point of saving to and loading from NBT. You should only need to store the UUID of the owner in NBT, nowhere else, just like in EntityTameable. If you want the player's nickname, you can always get that later as you need it based on the current owner.

Of course it should be in normal case, but in this case the owner's name is also needed when the player is not in the game. So the player's nickname should be saved alongside.

(+ The nickname should be updated when the player logs in, because it could be changed)

I. Stellarium for Minecraft: Configurable Universe for Minecraft! (WIP)

II. Stellar Sky, Better Star Rendering&Sky Utility mod, had separated from Stellarium.

Posted

The situation seems simple enough: if you need the nickname while not logged in, then save/load it via NBT like you do the UUID and store it in another DataWatcher slot; whenever setOwner or the like is called, simply have it update the nickname field as well.

 

Unless you are doing something funky behind the scenes, that's really all it takes: two data watcher fields, one each for the UUID and nickname, and saving / loading each of those to NBT. Just like EntityWolf/Tameable.

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

    • My apologies, it's a Postscript. I was able to play for an extended period of time right after generating the world without any problems. If I close it and reopen it, I get that message at random. Once it appears, I have to modify the Level.dat to open it.
    • Share logs/errors, and someone may know how to help. Make sure to read the FAQ on sharing logs.
    • Hello.  regarding Invalid player data.  First of all, my English is not good, so there might be mistakes. I am using Minecraft 1.20.1 forge 47.3.22 CurseForge and have over 250 mods in my modpack. Single-player. I can play the game after generating the world (about 5 hours) and restarting it, but there is no set timing and one day it suddenly shows ''Invalid player data''. Restarted the game several times after that, but the same message appears. Fix the level.dat file and play for a few hours, but the next day when I try to open the world I get the ''Invalid player data'' message again. Can open other worlds, but after some progress in the other worlds, the same message appears and I can't start them. Is there something wrong with the mod configuration? I would be very grateful if you could tell me how to solve this problem. ◉ErrorCode https://mclo.gs/4gcfPbY   ◉ModList AdvancementPlaques-forge-1.6.9.jar AI-Improvements-1.20-0.5.2.jar alexsmobs-1.22.9.jar alternate_current-mc1.20-1.7.0.jar AmbientSounds_FORGE_v6.1.6_mc1.20.1.jar amendments-1.20-1.2.18.jar Apotheosis-1.20.1-7.4.6.jar ApothicAttributes-1.20.1-1.3.7.jar appleskin-forge-mc1.20.1-2.5.1.jar aquamirae-6.API15.jar architectury-9.2.14-forge.jar ars_elemental-1.20.1-0.6.7.7.jar ars_extended_glyphs-1.20.1-1.9.jar ars_nouveau-1.20.1-4.12.6-all.jar AttributeFix-Forge-1.20.1-21.0.4.jar azurelib-neo-1.20.1-2.0.41.jar BadOptimizations-2.2.1-1.20.1.jar balm-forge-1.20.1-7.3.16-all.jar barbequesdelight-1.0.5.jar BattleArts-20.9.7.1.jar BattleArtsAPI-20.9.5.3.jar BEB-Forge-1.20.1-2.0.0.jar bendy-lib-forge-4.0.0.jar betterendcities-1.0.0-1.20.1.jar betterfpsdist-1.20.1-6.0.jar BetterThirdPerson-Forge-1.20-1.9.0.jar bettervillage-forge-1.20.1-3.2.0.jar biggerendcities-1.20.1-1.0.0.jar blockui-1.20.1-1.0.156-RELEASE.jar blueprint-1.20.1-7.1.1.jar blur-forge-3.1.1.jar BOMD-Forge-1.20.1-1.1.1.jar Bookshelf-Forge-1.20.1-20.2.13.jar BrewinAndChewin-1.20.1-3.1.2.jar BridgingMod-2.5.1+1.20.1.forge-release.jar caelus-forge-3.2.0+1.20.1.jar CarbonConfig-1.20-1.2.6.jar Cardiac-FORGE-0.5.3.2+1.20.1.jar carryon-forge-1.20.1-2.1.2.7.jar casualness_delight-1.20.1-0.4n.jar CerbonsApi-Forge-1.20.1-1.0.0.jar chat_heads-0.13.13-forge-1.20.jar cherishedworlds-forge-6.1.7+1.20.1.jar ChoiceTheorem's Overhauled Village-3.4.11.jar Chunk-Pregenerator-1.20-4.4.4.jar citadel-2.6.1-1.20.1.jar clean_tooltips-1.0-forge-1.20.1.jar cloth-config-11.1.136-forge.jar Clumps-forge-1.20.1-12.0.0.4.jar cobweb-forge-1.20.1-1.0.1.jar CocoaInput-1.20.5-fabric-4.4.1-EXPERIMENTAL.jar collective-1.20.1-7.91.jar cosmeticarmorreworked-1.20.1-v1a.jar create-1.20.1-0.5.1.j.jar create_easy_structures-0.1.2-forge-1.20.1.jar CreativeCore_FORGE_v2.12.31_mc1.20.1.jar creeperoverhaul-3.0.2-forge.jar cristellib-1.1.6-forge.jar cuisinedelight-1.1.16.jar cupboard-1.20.1-2.7.jar curios-forge-5.11.1+1.20.1.jar CutAllSMP_v2.5.2.jar default_skill_trees-1.1.jar DisenchantmentEditTable-1.20-1.1.2.jar DistantHorizons-2.2.1-a-1.20.1-forge-fabric.jar domesticationinnovation-1.7.1-1.20.1.jar domum_ornamentum-1.20.1-1.0.186-RELEASE-universal.jar dragonitegear-0.3.2.jar Dungeon Crawl-1.20.1-2.3.15.jar dungeons-and-taverns-ancient-city-overhaul-1 [Forge].jar DungeonsArise-1.20.x-2.1.58-release.jar dungeons_enhanced-1.20.1-5.3.0.jar dungeons_plus-1.20.1-1.5.0.jar ec_isasb_plugin-1.20.1-1.0.0-all.jar efiscompat-2.2.4.jar EFMCompat 20.2.0.1.jar embeddium-0.3.31+mc1.20.1.jar EnchantmentDescriptions-Forge-1.20.1-17.1.19.jar endermanoverhaul-forge-1.20.1-1.0.4.jar EnderWyrmlings-1.0.0-forge-1.20.1.jar endrem_forge-5.3.3-R-1.20.1.jar enhanced_boss_bars-1.20.1-1.0.0.jar entityculling-forge-1.7.2-mc1.20.1.jar entity_model_features_forge_1.20.1-2.4.1.jar entity_texture_features_forge_1.20.1-6.2.9.jar Epic-Knights-9.21.jar Epic-Knights-Addon-1.22.jar Epic-Knights-Slavic-Armory-1.5.jar epicfight-forge-20.9.7-1.20.1.jar essential_1-3-5-7_forge_1-20-1.jar ExCap-20.9.7.3.jar exoticbirds-1.20.1-1.0.0.jar expanded_combat-1.20.1-3.2.4-all.jar Explorify v1.6.2 f10-48.jar extrasounds-1.20.1-forge-1.3.jar falchionmoveset-20.8.2.jar Fallingleaves-1.20.1-2.1.0.jar FarmersDelight-1.20.1-1.2.7.jar farsight-1.20.1-3.7.jar FastFurnace-1.20.1-8.0.2.jar FastSuite-1.20.1-5.0.1.jar FastWorkbench-1.20.1-8.0.4.jar ferritecore-6.0.1-forge.jar forge-medievalend-1.0.1.jar framework-forge-1.20.1-0.7.12.jar frozen_zombie_castle-1.4.0-forge-1.20.1.jar fzzy_config-0.6.4+1.20.1+forge.jar geckolib-forge-1.20.1-4.7.jar globalxp-forge-1.20.1-1.12.jar goblintraders-forge-1.20.1-1.9.3.jar gravestone-forge-1.20.1-1.0.24.jar guardvillagers-1.20.1-1.6.10.jar harvest-with-ease-forge-1.20.1-9.4.0.jar Highlighter-1.20.1-forge-1.1.9.jar hole_filler_mod-1.2.8_mc-1.20.1_forge.jar Iceberg-1.20.1-forge-1.1.25.jar ImmediatelyFast-Forge-1.3.4+1.20.4.jar ImmersiveUI-FORGE-0.3.0.jar imst-2.1.0.jar infernalmobs-1.20.1.6.jar integrated_api-1.5.1+1.20.1-forge.jar integrated_villages-1.1.5+1.20.1-forge.jar inventoryhud.forge.1.20.1-3.4.26.jar InventoryProfilesNext-forge-1.20-1.10.14.jar inventorysorter-1.20.1-23.0.8.jar InventorySpam-1.20.1-1.5.6.jar ironchest-1.20.1-14.4.4.jar irons_spellbooks-1.20.1-3.4.0.7.jar iron_repair_kits-2.4.3-forge-1.20.1.jar ItemBorders-1.20.1-forge-1.2.2.jar ItemProductionLib-1.20.1-1.0.2a-all.jar Jade-1.20.1-Forge-11.12.3.jar jei-1.20.1-forge-15.20.0.106.jar journeymap-1.20.1-5.10.3-forge.jar justhammers-forge-2.0.3+mc1.20.1.jar Kobolds-2.12.0.jar kotlinforforge-4.11.0-all.jar LegendaryTooltips-1.20.1-forge-1.4.5.jar libIPN-forge-1.20-4.0.2.jar libraryferret-forge-1.20.1-4.0.0.jar lionfishapi-2.4-Fix.jar lithostitched-forge-1.20.1-1.4.4.jar lmft-1.0.4+1.20.1-forge.jar lootbeams-1.20.1-1.2.6.jar lootintegrations-1.20.1-4.0.jar lukis-grand-capitals-1.1.1.jar L_Enders_Cataclysm-2.54- 1.20.1.jar mes-1.3.4-1.20-forge.jar mexicans_delight-1.1.1-forge-1.20.1.jar MineAllSMP_v2.6.6.jar minecolonies-1.20.1-1.1.814-snapshot.jar mna-forge-1.20.1-3.1.0.4-all.jar modernfix-forge-5.20.2+mc1.20.1.jar ModernUI-Forge-1.20.1-3.11.1.6-universal.jar modlist.txt moonlight-1.20-2.13.65-forge.jar mowziesmobs-1.7.0.jar multipiston-1.20-1.2.43-RELEASE.jar MutantMonsters-v8.0.7-1.20.1-Forge.jar mutil-1.20.1-6.1.1.jar mvs-4.1.4-1.20-forge.jar NaturesCompass-1.20.1-1.11.2-forge.jar Neat-1.20.1-41-FORGE.jar netherportalfix-forge-1.20-13.0.1.jar notenoughanimations-forge-1.9.2-mc1.20.1.jar Obscure-Tooltips-2.2.jar obscure_api-15.jar OctoLib-FORGE-0.4.2+1.20.1.jar oculus-mc1.20.1-1.8.0.jar packetfixer-forge-2.0.0-1.19-to-1.20.1.jar PackingTape-1.20.1-0.14.3.jar PassiveSkillTree-1.20.1-BETA-0.6.14a-all.jar Patchouli-1.20.1-84.1-FORGE.jar phantasm-1.0.1.jar Placebo-1.20.1-8.6.2.jar player-animation-lib-forge-1.0.2-rc1+1.20.jar polymorph-forge-0.49.8+1.20.1.jar Prism-1.20.1-forge-1.0.5.jar projectvibrantjourneys-1.20.1-6.0.5.jar puffish_attributes-0.7.2-1.20-forge.jar puffish_skills-0.14.7-1.20-forge.jar PuzzlesLib-v8.1.25-1.20.1-Forge.jar QualityCrops-1.20.1-1.3.3.jar QualitysDelight-1.20.1-1.5.3.jar Quark-4.0-460.jar QUILT-2.0.0.jar repair_amulet-2.0-forge-1.20.1.jar repurposed_structures-7.1.15+1.20.1-forge.jar resourcefulconfig-forge-1.20.1-2.1.2.jar resourcefullib-forge-1.20.1-2.1.29.jar RPG-HUD-3.10.jar rpg_companions_tiny_dragons-0.0.4-forge-1.20.1.jar run.bat samurai_dynasty-0.0.48-1.20.1-neo.jar simplyswords-forge-1.56.0-1.20.1.jar SkyVillages-1.0.4-1.19.2-1.20.1-forge-release.jar smoothboot(reloaded)-mc1.20.1-0.0.4.jar sophisticatedbackpacks-1.20.1-3.23.5.1200.jar sophisticatedcore-1.20.1-1.2.12.872.jar sound-physics-remastered-forge-1.20.1-1.4.8.jar Stackable Potions-forge-1.20.1-1.0.0.jar StorageBox_v3.2.5.jar StorageDrawers-1.20.1-12.9.13.jar Structory_1.20.x_v1.3.5.jar Structory_Towers_1.20.x_v1.0.7.jar structure_gel-1.20.1-2.16.2.jar structurize-1.20.1-1.0.764-snapshot.jar SubtleEffects-forge-1.20.1-1.8.0.jar supermartijn642configlib-1.1.8-forge-mc1.20.jar supermartijn642corelib-1.1.18-forge-mc1.20.1.jar supplementaries-1.20-3.1.13.jar TaxCastlePillager+M.1.20.1+ForM.1.0.1.jar TaxTreeGiant+M.1.20.1+ForM.1.1.0.jar TerraBlender-forge-1.20.1-3.0.1.7.jar Terralith_1.20.x_v2.5.4.jar tetra-1.20.1-6.8.0.jar TheOuterEnd-1.0.10.jar tidal-towns-1.3.4.jar tlc_forge-1.0.3-R-1.20.X.jar toms_storage-1.20-1.7.0.jar toomanyglyphs-1.20.1-2.3.2.12345.jar totw_additions-1.3.1-1.20.x-forge.jar totw_modded-forge-1.20.1-1.0.5.jar Towns-and-Towers-1.12-Fabric+Forge.jar towntalk-1.20.1-1.1.0.jar trashcans-1.0.18b-forge-mc1.20.jar trashslot-forge-1.20-15.1.1.jar travelersbackpack-forge-1.20.1-9.1.16.jar TravelersTitles-1.20-Forge-4.0.2.jar tru.e-ending-v1.1.0c.jar uncrafter-forge-1.20.1-1.2.0.jar valarian_conquest-3.0-forge-1.20.1.jar valhelsia_core-forge-1.20.1-1.1.2.jar valhelsia_structures-forge-1.20.1-1.1.2.jar villagernames-1.20.1-8.2.jar visuality-forge-2.0.2.jar waystones-forge-1.20.1-14.1.9.jar WeaponsOfMiracles-20.1.8.5.6.jar XP From Harvest Reworked-1.20.x-1.2.4.jar YetAnotherConfigLib-3.6.2+1.20.1-forge.jar YungsApi-1.20-Forge-4.0.6.jar YungsBetterDesertTemples-1.20-Forge-3.0.3.jar YungsBetterDungeons-1.20-Forge-4.0.4.jar YungsBetterEndIsland-1.20-Forge-2.0.6.jar YungsBetterJungleTemples-1.20-Forge-2.0.5.jar YungsBetterMineshafts-1.20-Forge-4.0.4.jar YungsBetterNetherFortresses-1.20-Forge-2.0.6.jar YungsBetterOceanMonuments-1.20-Forge-3.0.4.jar YungsBetterWitchHuts-1.20-Forge-3.0.3.jar YungsBridges-1.20-Forge-4.0.3.jar YungsCaveBiomes-1.20.1-Forge-2.0.1.jar YungsExtras-1.20-Forge-4.0.3.jar Zeta-1.0-24.jar  
    • I did exactly like in the instruction , i even copied the build.gradle from alex mobs like he told in the instruction for citadel 1.7.0 and above, and i got 100 different error no matter what i changed in the build.gradle, i once managed to make a build succesfull but then the run client wasnt working I did exactly like in the instruction , i even copied the build.gradle from alex mobs like he told in the instruction for citadel 1.7.0 and above, and i got 100 different error no matter what i changed in the build.gradle, i once managed to make a build succesfull but then the run client wasnt working
    • Please share a link to your crash report on https://paste.ee, as explained in the FAQ
  • Topics

×
×
  • Create New...

Important Information

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