Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

jredfox

Members
  • Joined

  • Last visited

Everything posted by jredfox

  1. So how am I suppose to know what is what on the files of joined.exc and joined.csrg. I need to map class to obfuscated field
  2. installed python run file MCPBot.py does nothing
  3. there is a csv file with obname and classname could you specify the path please since I cannot simply find it
  4. I tried that No luck it has obname,deobname,side,comment when no classes attacthed I was wondering how to get classname from obname
  5. NBT is so modders don't have to be dependent upon a mod to edit capabilities this is also why tile entities do this as well as itemstacks If you take a look you could use the registry to get the interface for direct dependency modding but, I don't recommend it unless your the owner of the capability I also updated the code to make more sense for implementation of tile entity and fixed up the one class of registry. I am going to put a pull for this soon as new capability system along with a new built in forge api that I wrote If you like it you like it if you don't that's fine issues solved and I am going to post this to forge. Or at least convince them to not have to be dependent to get capabilities and modify them. you also saw it when it was flawed I fixed it it's now officially better then forge as you don't have to be dependent upon the mod to determine whether or not it has capability and to modify them
  6. Ok take a look at this thing pretty good eh? https://gist.github.com/jredfox/c1db071d08bdc86b440de005a99f6256 I mean I guess forge's it's not too bad of a system all except for the provider it's terrible mod incompatible, all dependencies, really unable to edit values nor even hardly get it yourself.
  7. O I see what your saying you want edits to has object specific external attachments on by ok let me wip up a patch wait a minuet such as entity player only
  8. so in forge you can only apply to to only specified object bases anyways. I think A: it looks cleaner, B: provides mod compatibility support, C: 100% easier to use I am sure there is a way around that as well just a very basic example I wiped up in two minuets that was user freindly and compatibility friendly which is the most important
  9. no in matter of fact it implements it just right take a look. Then I did a second example with magic but, was too lazy to make another object for display so image it's implemented properly with read/write nbt and set/get works https://gist.github.com/jredfox/0b6f34c74783b8759b353eebb27733b3
  10. what is so different from my idea that they couldn't compress the methods to only make users have one object and interface? I see read/write to nbt then have a specific object that is null by default and other people cannot find your attachments because, that would force a dependency rather then just returning nbt values that store the current of what it supports anyways? If user wants with my idea they can add any methods to the interface they wanted I also suggest a method to return NBTTagCompound() so other mods can interact and then after you got it written to compound not the disk make the capabilities read it to update values. That way no dependency required for a fail safe method returning the interface for one and the nbt for the other I don't see the issue here. TileEntities already provide such example TileEntity tile = w.getTileEntity(pos); NBTTagCompound nbt = new NBTTagCompound(); tile.writToNBT(nbt); if(nbt.hasKey("SpawnRange") nbt.setInteger("SpawnRange",10000); tile.readFromNBT(nbt);//notice didn't hard code cast this to tile entity mob spawner as vanilla is hard to extend any classes and this also supports classes that don't extend it but, if have a spawnrange updates it the values into memory and nothing was writen to disk until the tile entity decides to save stuff
  11. Hi I know there is something for the asm getters from obfuscated names but, I am looking for general obfuscated name > class and deobname. This is so I can generate csv files but, the current ones I see only look like this Example needs for this: Random rand = (Random) ReflectionUtil.getObject(gen, ChunkGeneratorOverworld.class, MainJava.isDeObfuscated ? "rand" : null ); What I am looking to do eventually after the csv mappings are created Random rand = (Random) ReflectionUtil.getObject(gen, ChunkGeneratorOverworld.class, MCPMappings.get("rand",ChunkGeneratorOverWorld.class,MainJava.isDeobfuscated) );
  12. @SubscribeEvent public void patchVanilla(AttachCapabilitiesEvent<TileEntity> e) { e.addCapability(new ResourceLocation(MainJava.MODID + ":" + "hasScanned"), new CapProvider()); } I am afraid by global I meant to all of that type that you wanted to have capabilities forge already does this my idea would be different code above applied to all tile entities including mob spawners I just tested it think you misunderstood my by think capabilities global to all object types no only what you wanted to attach. So yeah it would perform the same function under the same events just less confusing getters and setters for the base interface. If you don't like it it's your opinion I am open to suggestions on hypothetical forge pull
  13. NBTTagCompounds do exists in memory and can be edited in memory they could simply keep capabilities always in nbt or decompile it using by api again there is no delay I was explaining how and why it had no recursion. default vanilla
  14. What are you talking about capabilites should be globally given ok so maybe the interface should have a 3d method hasCapability(ResourceLocation loc,EnumFacing facing, Object obj)// where obj can be tile entity, player etc.... yes nbt is for saving to disks all properties should be saved otherwise there is no point in having them you loose all data once you re-launch the game I said recursion takes seconds my recursionless nbtpathapi takes 0 delay
  15. I also made an nbt path api they could implement into forge so the path could be chest/enderchest from default nbt rather then resource location. It decompiles nbt without recursion since I didn't know how to use recusrion and I hear it literally takes seconds compared to something non recursive that takes miliseconds yes I tried 400 branches randomly it decompiled the nbt properly
  16. well maybe they could do new ResourceLoaction("minecraft:chest:enderchest"); ? The point is they are making it waaaaaaaaaaaaaay more complictated then it needs to be take IRecipe for example 3 simple methods one register parameter and it's more complex then this needs to be
  17. I think I figured it out but, this is really a piece of utter crap of confusion https://www.planetminecraft.com/blog/forge-tutorial-capability-system/ How I think it should be Register class object that implements an interface that extends the base provider{readNBT(),writeToNBT()} the 2d parameter being the base resource location for your mods tags to go into { } CapabilityManager.INSTANCE.register(new CapObject(),new ResourceLocation("modlib:tileSyncing")); IBaseCapability cap = CapabilityManager.INSTANCE.get(new ResourceLocation("modlib:tileSyncing"));// from here you could either cast it to the right object to get said stuff Nothing more if you have the variables/objects you need written and reading that's all you need maybe do something else for Object support but, I don't even think it supports writing full blown objects to nbt anyways. They populate vars from readFromNBT() and save by writing to disk. Modify vars from other forge events and have the static instanceof the capabilities container for further use since it's their own interface they create they can get the objects as well but, no need can use regular methods at this point
  18. So I need a provider and the other object please explain the steps simplified on what to do. Forge docs is confusing and doesn't explain everything. Then after explaining that explain how to retrieve and store the object in Capability<Object>
  19. return super.hasCapability(capability, facing); doesn't exist in class object error message but, forge said to do it this is confusing me. I need to know steps since every time I read this then look at an actual class there is 10 more then I find out no such thing can't use it? like say you have to: 1: create interface, 2: how to use interface methods 3: capability<?> how that works can be retrieved and set the object inside @Override public boolean hasCapability(Capability<?> capability, EnumFacing facing) { if(capability == hasScaned) return true; else return super.getCapability(capability, facing); } Yeah forge docs says 3 different things are capabilities they need to simplfy it doesn't tell me what is what and how to do anything for me I am guessing everything read it like 5 times. I need steps and explain what to actually do in order.
  20. right and I was asking how those methods work. I plan on this for all tile entities like an example very basic example of storing a single variable object would help
  21. Edit: use this: https://www.planetminecraft.com/blog/forge-tutorial-capability-system/ How to use the interface? Do I need to register it constantly in a certain event for tile entities or just use the AttachCapabilitiesEvent<TileEntity> event? What is Capability do I need to make yet another class? How am I suppose to return get capability the list shouldn't have it already yet it's there? What is capability<?> it extends what and is it an array? So confused on what to do here I am trying to store a boolean or (byte if no boolean option) into nbt of all tile entities to retrieve it later public class TileCapabilities implements ICapabilityProvider{ @Override public boolean hasCapability(Capability<?> capability, EnumFacing facing) { return capability.; } @Override public <T> T getCapability(Capability<T> capability, EnumFacing facing) { return capability.getName().; } }
  22. Loaded chunks = already grab them Dormant chunks = ok don't need them Unloaded chunks = how does one get them if and only if they are populated, if forge freaks out about generally loading a chunk on populate then I will forget it Hope that's clear just that one last question here thanks. Yes my spawners are working I did something really stupid when converting the event back to the old one
  23. well I thought it meant chunks written to disk but, not loaded into memory made some sense. I am looking for unloaded chunks how do I get unloaded chunks then only if it's not in the process of loading? But, am I already fine or does it need more work I currently now only use loaded chunks radius so what is dormant chunks and when do they get stored to a cache not to be used should I also be grabbing them or nah?
  24. Edit: I don't think I need dormant chunks do I? Because, by placing blocks into unloaded chunks it would load them right? Well if that's true then it was just something I did that was my fault which I did fix but, I want to be 100% in case your speed with a mod velocity goes like 80 blocks a second and unloads chunks before the next one can load causing issues. But if that's the case that above is going to cause Issues I should still work on getting dormant chunks how should I accomplish this?
  25. Then What should I be calling? Everything that the provider server is calling?

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.