Podshot / MCEdit-Unified

Combined MCEdit & Pymclevel repository.
http://podshot.github.io/MCEdit-Unified/
ISC License
483 stars 109 forks source link

Shop Filter Issue (Both stockFiltersDir and portableFiltersDir on the sys.path) #383

Closed Azounstone closed 9 years ago

Azounstone commented 9 years ago

I am now adding in excess of 200 shops to our adventure map and have noticed that the filter has some issues and does not work correctly. The problems are that even though you give the villager a name it does not show in game and when you trade with it the ui shows the default village job name.

The images below show this:

MCEdit screen showing custom name 2015-05-04 11-59-15-am

Villager in game with no name showing 2015-05-04_11 51 59

UI Showing different name 2015-05-04_11 51 47

I am trying to get these added so I can release the project on PMC but this is stopping me from doing so. Is there any chance somebody could fix the filter and let me have the revised one please? I would be very appreciative if so :)

Regards,

naor2013 commented 9 years ago

Seems like it's working for me.. Maybe a problem with the resource pack or something?

Azounstone commented 9 years ago

Just done again using default texture pack as can be seen below and clearly not working in 1.8.4 I should add.:

2015-05-04 12-28-31-pm

2015-05-04_12 29 08

2015-05-04_12 29 12

naor2013 commented 9 years ago

Still works for me.. Can you show me what's in the chest and all of the settings in all of the filter tabs?

Azounstone commented 9 years ago

Sure:

Chest Contents 2015-05-04_12 37 56 2015-05-04_12 38 03 2015-05-04_12 38 08

Tab Settings: 2015-05-04 12-39-35-pm 2015-05-04 12-39-47-pm 2015-05-04 12-39-59-pm

As I said being done in vanilla 1.8.4 world and same with default resource pack as with Megadoku Saga Continues Light.

Regards,

naor2013 commented 9 years ago

Used a chest with the same items with the same filter settings with 1.8.4 and it works.. Try using the command: "/summon Villager ~ ~ ~ {CustomName:"Bla"}" and tell me if it makes the villager with a custom name.. Check with the Nbtedit filter if the CustomName tag does change right after using the filter and after you open minecraft and mcedit again (Maybe Minecraft ruins it) Try to use the command "/entitydata @e[type=Villager] {CustomName:"Market Trader"}" and it will change all of the villagers in the world to have this name

Tell me what worked and what didn't and I'll try to figure it out

Azounstone commented 9 years ago

I can use summon commands to summon villagers with custom heads and custom heads no problem at all. This for example works just fine:

/summon Villager 159 70 326 {CustomName:"Receptionist",CustomNameVisible:1,Profession:2,Offers:{Recipes:[{maxUses:2147483647,uses:0,buy:{id:barrier,Count:1},sell:{id:barrier,Count:1}}]},Equipment:[{},{},{},{},{id:skull,Damage:3,Count:1,tag:{SkullOwner:skull3}}],DropChances:[0.085F,0.085F,0.085F,0.085F,0.0F],Invulnerable:1,PersistenceRequired:1,NoAI:1,Rotation:[90f,0f],Silent:1}

I have tested the filter again and it works fully if I do not rotate the villager or give it a custom head but as soon as I do either of these it stops showing the name and changes the name on the UI

Can you attach your filter so I can use that just in case my filter is the issue please (don't see how it can be but rules it out)?

Regards,

Rubisk commented 9 years ago

Our filter can be found here: https://github.com/Khroki/MCEdit-Unified/blob/master/stock-filters/CreateShops.py (if you can't download it, copy the entire text and put it in a notepad file, save as CreateShops.py and put it in your filters folder).

Can you try "/entitydata @e[type=Villager,c=1] {}" that should print out the entire data structure in the console, you can copy it from there (make sure to have the launcher stay open so you can copy it. It also shows in chat but you can't copy from chat).

The filter works fine for me, so either your world, hardware or filter messed up.

Azounstone commented 9 years ago

Hi,

I have tried it in 5 worlds and a new world freshly created and it does not work. As for the console I have no idea how to access this in a single player world.

Andy

Azounstone commented 9 years ago

Hi, Okay I went ahead and deleted the contents on my mcedit folder and downloaded the latest version again and voilà it is now working. Really strange I am sure you will agree. Sorry for the inconvenience!!!

Regards,

Andy

naor2013 commented 9 years ago

That's fine. :D

Azounstone commented 9 years ago

Hi,

It is still doing this. If I delete the contents then install again it works fine however if I exit mcedit and start it up again it then does not add names etc as I explained originally. I then have to delete the folder again and go through this all over again.

I have hundreds of npcs to add and exit after doing a few in an area to then login to single player to look etc and move to next area/find next one to run filter on.

I simply can't do it with the filter as it is (for me anyway) and this is stopping us from releasing our map to PMC.

Again let me stress this is the same in a newly created world so nothing to do with my world. It does it in as many worlds as I want to test it on. I am using the 64bit version of mcedit and windows 7 ultimate, service pack 1 and 1.8.4 of Minecraft.

I am stuck now sadly and can't finish this map as things currently are. Please help :)

Thanks,

Andy

Rubisk commented 9 years ago

If t works fine after deleting contents, but messing up after restarting mcedit, it's quite likely either mcedit got corrupted Try uninstall mcedit (make sure to delete all versions on your pc, just delete everything with the name mcedit in it), get rid of all data folders containing python stuff, and reinstall mcedit 1.3.2.0

Have you tried it on another pc? maybe your HDD is corrupt?

Azounstone commented 9 years ago

Hi,

It works fine the first time I use it but if I then exit mcedit and then launch it again it will not work this and other time. My SSD is not corrupted or have a problem.

Azounstone commented 9 years ago

It does this on both of my pc's here too I forgot to add.

Rubisk commented 9 years ago

Did you try uninstall and reinstall mcedit?

If you restart your pc after it stops working, does it work the first time again? Or does it only start working if you cleared the contents of your filters folder?

Azounstone commented 9 years ago

When clicking filter now it generates these two error messages:

image1

image2

Any idea what this is please?

I also installed it fresh after removing it and still has the issue. Please note if I do not use custom skull or rotate the mob it is fine.

Thanks,

P.S. Do you have the old filter that was without the silent and custom head pls so I can see if that works as a means to isolate the issue?

Azounstone commented 9 years ago

I have also tried restarting the pc etc and it makes no difference I am no longer able to use mcedit for the shop filter and right now up the you know what without a paddle...

Regards,

Andy

Podshot commented 9 years ago

I am currently looking into this, but I would still like to see the output of ""/entitydata @e[type=Villager,c=1] {}". To use this in a singleplayer world, create a new world and make sure cheats is on. With what you're describing, only the output of that command will solve the problem permanently.

Azounstone commented 9 years ago

Hi,

Do I enter this command in a command block and read the output from the console there?

Podshot commented 9 years ago

Run the command from the normal chat window

Azounstone commented 9 years ago

Yes but where do I copy the results for you from? The output is huge and I do not know where to get that info.

Rubisk commented 9 years ago

First, go to your launcher -> Edit Profile Under "Launcher Visibility", set it to 'Keep the launcher open'

Go in game, type /entitydata @e[type=Villager,c=1] {} Go to your launcher, look for the Game Output tab. There should be something looking a little like: [CHAT] The data tag did not change: {allkindsofentitystuffthatweneneedtofixyourproblem}

Azounstone commented 9 years ago

Just to confirm, I create a villager store and then run the command in a new world?

Rubisk commented 9 years ago

Yes. I want a command of a villager store created by the filter that does NOT show it's name correctly.

Azounstone commented 9 years ago

[22:37:15] [Client thread/INFO]: [CHAT] The data tag did not change: {HurtByTimestamp:0,Attributes:[0:{Base:20.0d,Name:"generic.maxHealth"},1:{Base:0.0d,Name:"generic.knockbackResistance"},2:{Base:0.5d,Name:"generic.movementSpeed"},3:{Base:16.0d,Name:"generic.followRange"}],Riches:200,Invulnerable:1b,ForcedAge:0,PortalCooldown:0,AbsorptionAmount:0.0f,FallDistance:0.0f,DeathTime:0s,DropChances:[0:0.085f,1:0.085f,2:0.085f,3:0.085f,4:0.085f],PersistenceRequired:1b,HealF:20.0f,Age:0,Motion:[0:0.0d,1:0.0d,2:0.0d],Leashed:0b,UUIDLeast:-8577192525783535656L,Health:20s,origX:-601,randomMobsSkin:277363943162L,origZ:-706,Silent:1b,origY:64,Air:300s,OnGround:1b,Dimension:0,Offers:{Recipes:[0:{maxUses:2000000000,buy:{id:"minecraft:gold_nugget",Count:1b,Damage:0s},sell:{id:"minecraft:ladder",Count:1b,Damage:0s},uses:0,rewardExp:1b},1:{maxUses:7,buy:{id:"minecraft:barrier",Count:1b,Damage:0s},sell:{id:"minecraft:barrier",Count:1b,Damage:0s},uses:0,rewardExp:1b}]},NoAI:1b,Rotation:[0:-90.0f,1:0.0f],Profession:3,UUIDMost:-1592223540090027983L,Equipment:[0:{},1:{},2:{},3:{},4:{id:"minecraft:skull",Count:0b,Damage:3s}],Pos:[0:-601.5d,1:64.0d,2:-706.5d],Fire:-1s,CanPickUpLoot:1b,HurtTime:0s,CareerLevel:1000,Career:1,Inventory:[],Willing:0b}

Rubisk commented 9 years ago

Ok, now we at least now your filter did in fact set the trades, but not the name.

Looking at the filter, I see that with our version of the filter, it's not possible for the trades to get set without the name, UNLESS there's a serious internal nbt-library/python/hard drive issue. Let's assume that isn't the case.

If that's not the case, it's very likely that you have a second, messed up createshops.py(c) somewhere on your pc. Can you please take the following steps for me? -open mcedit -press the yellow-text button named "open data folder" -a window should pop up. Make sure you get to this folder from mcedit, instead of navigating manually. That way I know it's the right folder. -Go into a folder named filters -Copy the entire content of that folder into a .zip file, upload it to a remote hosting site like mediafire, mega or dropbox and send us the link. We need the entire contents of the folder so we can see if there's any other filter with the same displayName that's messing stuff up.

Azounstone commented 9 years ago

There is no yellow-text button named "open data folder" there is a yellow text button "Config Files"

I then copied the contents of filters and you can download it:

http://www.drobnovia.com/downloads/Filters.zip

Azounstone commented 9 years ago

Please note it is still giving errors as shown in images a few posts above.

Rubisk commented 9 years ago

Those errors mean that your forester filter is messed up, doens't have anything to do with this.

Could you try download this debug filter: http://www.mediafire.com/view/71lp8r77mbnj7r7? Just delete your current one and place this one in. Run the filter and copy the output of the mcedit console.

Azounstone commented 9 years ago

Sorry, I do not know what you mean by mcedit console. I can't see one when using it unless you mean the command window

image2

Azounstone commented 9 years ago

I have created a villager 10 times and on the tenth time it didn't give it a name. Output below, hope this helps:

[09:44:43] [Client thread/INFO]: [CHAT] The data tag did not change: {HurtByTimestamp:0,Attributes:[0:{Base:20.0d,Name:"generic.maxHealth"},1:{Base:0.0d,Name:"generic.knockbackResistance"},2:{Base:0.5d,Name:"generic.movementSpeed"},3:{Base:16.0d,Name:"generic.followRange"}],Riches:200,Invulnerable:1b,ForcedAge:0,PortalCooldown:0,AbsorptionAmount:0.0f,FallDistance:0.0f,DeathTime:0s,DropChances:[0:0.085f,1:0.085f,2:0.085f,3:0.085f,4:0.085f],PersistenceRequired:1b,HealF:20.0f,Age:0,Motion:[0:0.0d,1:0.0d,2:0.0d],Leashed:0b,UUIDLeast:-5485439433636734363L,Health:20s,origX:516,randomMobsSkin:277363943162L,origZ:-304,Silent:1b,origY:56,Air:300s,OnGround:1b,Dimension:0,Offers:{Recipes:[0:{maxUses:2000000000,buy:{id:"minecraft:gold_nugget",Count:1b,Damage:0s},sell:{id:"minecraft:ladder",Count:1b,Damage:0s},uses:0,rewardExp:1b},1:{maxUses:7,buy:{id:"minecraft:barrier",Count:1b,Damage:0s},sell:{id:"minecraft:barrier",Count:1b,Damage:0s},uses:0,rewardExp:1b}]},NoAI:1b,Rotation:[0:-90.0f,1:0.0f],Profession:3,UUIDMost:724559612330527048L,Equipment:[0:{},1:{},2:{},3:{},4:{id:"minecraft:skull",Count:0b,tag:{SkullOwner:{Id:"8d1d150c-062d-3b48-bfeb-9226efbdd810",Name:"skull3"}},Damage:3s}],Pos:[0:516.5d,1:56.0d,2:-304.5d],Fire:-1s,CanPickUpLoot:1b,HurtTime:0s,CareerLevel:1000,Career:1,Inventory:[],Willing:0b}

Rubisk commented 9 years ago

Your filters get imported from the wrong folder. You did NOT run the filter I gave you.

Once again, delete everything that has anything to do with mcedit from your pc, and REINSTALL it. There's some messed up folders around somewhere, or it's picking up a .py file from somewhere else. If you don't know where to find it, easiest thing is just to delete everything and reinstall a clean version.

Azounstone commented 9 years ago

To be fair I have followed your instructions exactly apart from the fact you called "open data folder" whereas mine is called "Config Files". Either way this opens the folder in My Documents which is where I placed the filter you linked to download above.

If this is not correct then I do now understand. You have two folder that reference filters. One in the folder created when you extract mcedit and another in the one in My Documents, well you do in Fixed mode anyway.

Rubisk commented 9 years ago

Click config files yellow text button, go into filters folder. It needs to go there.

Rubisk commented 9 years ago

Well it fidnt read my filter according to your mcedit console. So theres something messed up. Just reinstall after deleting it all.

Azounstone commented 9 years ago

I did exactly as you said to do.

Azounstone commented 9 years ago

I have deleted EVERYTHING from my system, rebooted the pc and repeated it all over again and exactly the same result. Mcedit is trying to run this as you can see from another location. The filter is EXACTLY where you say to put it.

I can stream this live if you do not believe me. image1

Azounstone commented 9 years ago

Why not Skype with me or log onto our Ventrilo server and we can talk about this and get it sorted I suspect a lot more effectively that using text replies as we have been doing for quite some time now?

Azounstone commented 9 years ago

UPDATE

If I run it in portable mode it then runs it correctly as can be seen below:

image1

[11:07:39] [Client thread/INFO]: [CHAT] The data tag did not change: {HurtByTimestamp:0,Attributes:[0:{Base:20.0d,Name:"generic.maxHealth"},1:{Base:0.0d,Name:"generic.knockbackResistance"},2:{Base:0.5d,Name:"generic.movementSpeed"},3:{Base:16.0d,Name:"generic.followRange"}],Riches:200,Invulnerable:1b,ForcedAge:0,PortalCooldown:0,AbsorptionAmount:0.0f,FallDistance:0.0f,DeathTime:0s,DropChances:[0:0.085f,1:0.085f,2:0.085f,3:0.085f,4:0.085f],PersistenceRequired:1b,HealF:20.0f,Age:0,Motion:[0:0.0d,1:0.0d,2:0.0d],Leashed:0b,UUIDLeast:-7572691651475417802L,Health:20s,origX:508,randomMobsSkin:184424382851197L,origZ:-304,Silent:1b,origY:56,Air:300s,OnGround:1b,Dimension:0,Offers:{Recipes:[0:{maxUses:2000000000,buy:{id:"minecraft:gold_nugget",Count:1b,Damage:0s},sell:{id:"minecraft:ladder",Count:1b,Damage:0s},uses:0,rewardExp:1b},1:{maxUses:7,buy:{id:"minecraft:barrier",Count:1b,Damage:0s},sell:{id:"minecraft:barrier",Count:1b,Damage:0s},uses:0,rewardExp:1b}]},NoAI:1b,Rotation:[0:180.0f,1:0.0f],Profession:2,UUIDMost:2990355322969146938L,Equipment:[0:{},1:{},2:{},3:{},4:{id:"minecraft:skull",Count:0b,tag:{SkullOwner:{Id:"8d1d150c-062d-3b48-bfeb-9226efbdd810",Name:"skull3"}},Damage:3s}],Pos:[0:508.5d,1:56.0d,2:-304.5d],Fire:-1s,CanPickUpLoot:1b,HurtTime:0s,CareerLevel:1000,Career:1,Inventory:[],Willing:0b}

It would not work in Fixed Mode which is how I have always had it until now.

Rubisk commented 9 years ago

I notice your path is D:\DOWNLO~1\MINECR~1\MCEDIT~1\mcedit\CreateShops.py. Is that a MAC OS thing or did you actually call the folders that way?

I don't really know why it wouldn't work in fixed mode if it doesn't in portable mode. Maybe @Podshot does, he wrote the filter import code I think. It's clear that the issue has to do with the location Fixed Mode is installing the filters from, they definitely don't come from your folder. What is exactly at D:\Download\Minecraft\Mcedit\mcedit? Is that your user folder?? What version of mcedit are you even on?

Azounstone commented 9 years ago

As mentioned previously I use windows 7 ultimate. I have a Minecraft folder where I keep Minecraft related material and thats where it is run from.

I am using the latest version.

Rubisk commented 9 years ago

Latest is? A number?

And the path to your folder is?

LaChal commented 9 years ago

May be a clue:

Portable install keeps files alongside the folder where MCEdit is installed, and fixed mode uses the system environment variables to gather folders and files (things like %APPDATA%, %SYSTEMDRIVE% on Windows).

@Azounstone If making MCEdit portable fixes the problems you have, use this install mode.

The set command output can give some clues...

Azounstone commented 9 years ago

Hello, when I said I had to use portable mode to get it to work I was not saying it created the villager correctly with name etc I was saying I had to do that to get it to use the debug filter

Rubisk commented 9 years ago

if the debug filter printed all that out it executed correctly. If it still didn't work, your Minecraft jar or harddrive is most likely corrupt, or the nbt.pyx file is messing up, which I highly doubt.

Azounstone commented 9 years ago

I will check it then in portable mode and see if it is indeed working. Just off to bed so will do it tomorrow and update this thread/ticket.

Thanks

Azounstone commented 9 years ago

UPDATED POST

I must admit I do not understand what is going on here or why you believe it is fixed. Allow me to explain why so....

Prior to using your debug filter if I did a fresh install it worked EVERY time the first time I used it. You asked me to use the debug filter after a fresh install. This i did after setting it to portable mode and it gave the info as per image.

I ran it again after restarting and it did not give the debug info in the console window, why not?

Perhaps you can explain why you say it works just because it gave an output the once?

ALSO

Could you explain how to fix the Forester issue as shown in the images pls as rather annoying have this each time I try to run the shop filter.

Thanks and kind regards,

codewarrior0 commented 9 years ago

You are running in Fixed mode, and yet it is loading filters from D:\DOWNLO~1\MINECR~1\MCEDIT~1\mcedit

This seems to me like sys.path has some extra stuff in it that's causing it to load filters from the wrong folder. This line in particular is suspicious:

https://github.com/Khroki/MCEdit-Unified/blob/e742efd12865b7fe0b4aead33f733467a2884f8f/directories.py#L212

@Azounstone: In MCEdit, press Ctrl-Alt-F9. In the window that appears, type import sys; print sys.path and press return. Show us the output that appears in the console.

Azounstone commented 9 years ago

@codewarrior0 I ran it as asked, results shown in image below:

image1

Regards,

Andy

Azounstone commented 9 years ago

Could somebody tell me how I get the forester issue as shown in the images sorted please?

Thanks