Jump to content

1.16.4 Fishing Loot Table


AsnDen

Recommended Posts

Hello, I'm newbie in minecraft modding and i'm stuck.

I need to add new items to fishing loot table but I don't know how. I created fish.json in loot_tables/gameplay/fishing and add here my fish.
But it don't work, as I understand I need to registry or smth else this "fish"(if not, please correct me).  

I saw code of some open sourse mods like "Aquacuture 2" and they do smth like this:

@Mod.EventBusSubscriber(modid = BetterFishing.MOD_ID)
public class LootTableInit {

    public static final ResourceLocation FISH = register("gameplay/fishing/fish");

    private static ResourceLocation register(String path) {
        return new ResourceLocation(BetterFishing.MOD_ID, path);
    }
}

Why are they doing this and should I use smth similar?

P.S. Sorry, if there are mistakes here and it looks unclear(Еnglish isn't my native language)

Link to comment
Share on other sites

1 hour ago, diesieben07 said:

If you want to modify, but not overwrite, the loot table, look at https://mcforge.readthedocs.io/en/latest/items/globallootmodifiers/.

How and for what I can use it?
I need to add items to fishing. I realized that I could change a vanilla fishing loot table(i tried it and it works) but i think that it isn't so easy

So, I'm newbie in modding and I can be dumb sometimes

Link to comment
Share on other sites

44 minutes ago, diesieben07 said:

You could overwrite the vanilla fishing loot table, yes. However: Vanilla does not do any loot table merging. One datapack wins. So if you and another mod (or another data pack) both modify the fishing loot table, only one wins.

That's why Forge has added global loot modifiers, which allow you to specify modifiers that act on the result of loot tables, without replacing them.

I have done it! Yahooo ^-^

So, I didn't used your variant. I take part of code from 
https://github.com/TeamMetallurgy/Aquaculture/blob/b5a006328b298a6d61b1f26379da8809423c017c/src/main/java/com/teammetallurgy/aquaculture/init/AquaLootTables.java

and part from
https://github.com/TheIllusiveC4/CombustiveFishing/blob/master/src/main/java/top/theillusivec4/combustivefishing/common/registry/CombustiveFishingLoot.java
And make my own code

Anyways, thanks a lot :3

Link to comment
Share on other sites

1 hour ago, diesieben07 said:

Do not use LootTableLoad event. It is the wrong tool for this.

Ok. What are the differences between this variant and Global Loot Modifiers?
As you explained(and as I understand)

  1. I can overwrite vanila loot table but if another mod do the same, 1 of us won't work 
  2. Global Loot Modifiers can "add" items to loot tables and if more than 1 mod change loot table it still  will work
  3. And this variant - it works, but as you said it wrong tool for it.

Why it's wrong tool, what's wrong?

Link to comment
Share on other sites

4 minutes ago, diesieben07 said:

LootTableLoadEvent completely bypasses the data driven system. Modpack makers or just "regular users" can not change your logic by using a datapack if you use LootTableLoadEvent.

So, this variant doesn't allow modpack makers use datapacks.
And the best way without restriction is Global Loot Modifiers.

So, global_loot_modifiers.json and The serialized json look simple but The LootModifier Subclass...

Is it example for loot in chests? Or it is for every loot table 

Link to comment
Share on other sites

Really high level nonsense, all modifiers are invoked any time any loot is dropped by anything.

The LootConditions result in most of those modifiers effects being skipped (because the conditions were false, and that includes things like "a zombie died? Well that wasn't iron ore..."), but they're still checked.
 

The point was to create a system that replaced HarvestDropsEvent in a way that was as data driven as possible and would layer properly so that multiple mods could modify the same loot table without conflict (eg. adding a new crop seed to tall grass).

 

As such its complicated to create, but it is more better than any other approach for all the reasons that those other approaches are broken.

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

 

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

 

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

Link to comment
Share on other sites

Just now, diesieben07 said:

Depends on what kind of beginner. In my opinion its not hard to create at all.

For me now it looks hard, for the first realization I will youse "me vatiant"

 

3 hours ago, AsnDen said:

And this variant - it works, but as you said it wrong tool for it.

I think soon I will change it to Global Loot Modifiers. When I will have more experiense.

Anyways thanks a lot. It was very helpful

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



×
×
  • Create New...

Important Information

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