Electroblob77 / Wizardry

Source code for Electroblob's Wizardry, a Minecraft mod about magic, exploration and adventure. Open-source so other aspiring wizards (a.k.a. programmers 😎) can see the real magic! ✨ Just want to download and play? Head over to the CurseForge page via the link below:
https://minecraft.curseforge.com/projects/electroblobs-wizardry
Other
202 stars 106 forks source link

[Bug] Unable to disable Wizardry and related mods from adding Wizardry drops to Lycanite mobs. #869

Open KnightCa opened 3 months ago

KnightCa commented 3 months ago

Is there an existing issue for this?

Observed behaviour

When trying to control which mobs get spell book drops, I noticed that it was difficult to configure which mobs drop Spell Books.

  1. The Whitelist default (all vanilla hostile mobs) don't show the list of mobs in the Whitelist. This makes it laborious to type each one in, rather than easy to copy and paste it into the Blacklist.
  2. There is no way to control whether Evil Wizards drop Spell Books from the configure options.
  3. Zettai Spell Pack adds a additional chance (on top of the normal chance to get a ebwizardry:spell_book spell book). This is a issue since it makes it time consuming to remove these from all the vanilla hostile mobs.
  4. Spell Packs that don't use the ebwizardry:spell_book name (see below) don't show up in evil wizard drops or when adding mobs to the configuration. This reduces the enjoyment of using all of the Spell Packs that work with Electroblob.

Many of these issues seem to stem from various naming conventions for each mod's spell books:

Expected behaviour

I expected the following:

  1. I expected to see a list of the mobs setup by default in the Whitelist (including Evil Wizards), so I could easily move them to the Blacklist if desired.
  2. I expected that when turning off mob injections, that Evil Wizards would also stop dropping Spell Books.
  3. When you disable mob injection (or add mobs to the whitelist or blacklist), that it would apply to all Spell Packs compatible with Electroblob's. Thus Zettai Spell Books would also stop dropping.
  4. When mobs drop Spell Books, I expected each spell in Electroblob or compatible Spell Packs to have a equal chance of showing up on mob drops for mobs added to whitelist. Thus, EbWizardry spell books would have a 290 weight while WizardryGolemancy spell books would have a weight of 5.

Steps to reproduce

  1. Setup a server with Electroblob and all Spell Packs
  2. Try to configure Electroblob's settings to allow only vanilla Witches to drop Spell Books. Notice how long it takes to add each vanilla hostile mob into the Blacklist (Issue 1).
  3. Notice that there is no way to turn off Evil Wizards from dropping Spell Books in the config (Issue 2)
  4. Notice that Zettai Spell Books continue to drop from all hostile vanilla mobs (Issue 3)
  5. Notice that when vanilla Witches drop Spell Books, they don't drop Spell Books from Ancient Spellcraft, Wizardry Golems, or Wizardry Tales.

Crashlog

No response

Environment (Singleplayer/Server, etc.)

Issue present on both sides

Mod version

4.3.13

Minecraft version

1.12.2

Forge version

1.12.2-forge-14.23.5.2860

Other mods

Ancient Spellcraft 1.7.3 Arcane Essentials 1.0.1 Extra Spells 1.2.0 Ghost Spells (Extra Arcane Knowledge) 0.7-alpha Mo Spells 1.0.4 Morph Spellpack (Rise of the Animagus) 1.1.0 Necromancer's Delight 1.0.5 Spell Bundle 1.7.0 Twilight Forest: Spell Pack 1.1.0 Wizardry Golems 1.3.2 Wizardry Tales 1.4.0 Wizardry Tales 2.2.5 Zettai Magic 1.4.7

KnightCa commented 3 months ago

Workaround for now: I have created a LootTweaker Script that can provide a structure for others wanting to make these kind of changes.

Wizardry.txt

KnightCa commented 3 months ago

Here is all of the default Whitelist mobs: minecraft:entities/blaze minecraft:entities/cave_spider minecraft:entities/creeper minecraft:entities/elder_guardian minecraft:entities/ender_dragon minecraft:entities/enderman minecraft:entities/endermite minecraft:entities/evocation_illager minecraft:entities/ghast minecraft:entities/giant minecraft:entities/guardian minecraft:entities/husk minecraft:entities/magma_cube minecraft:entities/shulker minecraft:entities/silverfish minecraft:entities/skeleton minecraft:entities/slime minecraft:entities/spider minecraft:entities/vex minecraft:entities/vindication_illager minecraft:entities/witch minecraft:entities/wither_skeleton minecraft:entities/zombie minecraft:entities/zombie_pigman minecraft:entities/zombie_villager

KnightCa commented 3 months ago

The work around failed for Lycanites mods (continue to drop spell books and magic crystals):

Here is confirmation that the Wizardry config is set correctly: Whether to inject Wizardry loot to mobs, based on the loot table 'Mob Loot Table Whitelist' / 'Mob Loot Table Blacklist' settings. If disabled, the lists won't have any effect! B:injectMobDrops=false

We need a way to remove Magic Crystal, Spellbooks, and Ruined Spellbooks from all mobs (including Lycanite ones). Then we can add them in manually for the Electroblob Wizardy specific mobs we want to drop them (otherwise they would show up in chests).

image

They do not have loot_tables that I could remove the loot manually with.