Compare commits

..

2 Commits

Author SHA1 Message Date
Matt 7acd3f4da8 Merge pull request 'pack: v0.31.0 — Item Obliterator replaces v0.30.x hacks' (#57) from feature/v0.31.0-item-obliterator into main 2026-06-01 19:21:41 +00:00
Matt 1b9e35efea pack: v0.31.0 — replace hacks with Item Obliterator
Replace the v0.30.x ad-hoc disable mechanisms (KubeJS server script,
datapack recipe override, KubeJS client-side JEI hide -- which was
broken on this KubeJS build) with a single proper tool:

  - **Item Obliterator 2.3.0** + dep **Necronomicon API 1.6.0**
    Declarative JSON config to remove items from inventories,
    creative tabs, all recipes (including modded custom recipe
    types), villager trades, and JEI. Exactly the missing capability.

Config: pack/overrides/defaultconfigs/item_obliterator.json5
  Blacklists:
    alexsmobs:transmutation_table
    alexsmobs:shattered_dimensional_carver

Removed (no longer needed):
  - pack/overrides/kubejs/server_scripts/disable_alexsmobs_features.js
    (Item Obliterator handles transmutation_table recipe removal
    and right-click cancel automatically)
  - pack/overrides/world/datapacks/bns-fuel/data/alexsmobs/
      capsid_recipes/shattered_dimensional_carver.json
    (Item Obliterator handles modded recipe removal too)

Both items now correctly:
  - Don't appear in JEI search / item list
  - Don't appear in creative tabs
  - Have no working recipe path
  - Can't be right-clicked / used
  - Get scrubbed from inventories on join

The Void Worm boss + regular Dimensional Carver still work --
nothing else in Alex's Mobs is affected.

Verified live: both mods discovered, Necronomicon read our config
file successfully ("File exists, reading config"), Item Obliterator
loaded with the blacklist.

Note: config schema is v2; v1 configs get overwritten by the mod's
default. Always write configVersion: 2.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-01 19:21:41 +00:00
4 changed files with 55 additions and 46 deletions
@@ -0,0 +1,31 @@
{
// -----------------------------------------------------------
// Item Obliterator -- Brass and Sigil config
// -----------------------------------------------------------
// Hides + disables specific Alex's Mobs items that we don't
// want in this modpack:
//
// alexsmobs:transmutation_table -- competes with Ars
// and undermines the
// Numismatics economy
//
// alexsmobs:shattered_dimensional_carver -- teleports the
// player 1,000,000
// blocks in a random
// direction, breaks
// world-bounds
//
// Both are removed from inventories, creative tabs, recipes
// (including the Capsid transformation), trades, and JEI.
// -----------------------------------------------------------
"configVersion": 2,
"blacklisted_items": [
"alexsmobs:transmutation_table",
"alexsmobs:shattered_dimensional_carver"
],
"blacklisted_nbt": [],
"only_disable_interactions": [],
"only_disable_attacks": [],
"only_disable_recipes": [],
"use_hashmap_optimizations": false
}
@@ -1,32 +0,0 @@
// Brass and Sigil -- disable specific Alex's Mobs features
//
// 1. Transmutation Table
// Competes with Ars Nouveau's crafting depth and bypasses the
// Numismatics-based player economy by offering free item-to-item
// conversion. Remove the crafting recipe so no one can make one.
// Existing tables (none yet) are left as-is.
//
// 2. Shattered Dimensional Carver
// Teleports the player 1,000,000 blocks in a random direction on
// use. Breaks any server-side world-boundary or chunk-loading
// assumptions, drops the player into an unloaded chunk far from
// anyone else. Cancel right-click on the item so it does nothing.
//
// We can't easily prevent the Capsid-shatters-Carver interaction
// (it is a block contact reaction, not a recipe), so the player
// can still produce the item -- it just won't fire.
ServerEvents.recipes(event => {
event.remove({ output: 'alexsmobs:transmutation_table' });
console.info('[bns/disable_alexsmobs_features] removed transmutation_table crafting recipe');
});
ItemEvents.firstRightClicked('alexsmobs:shattered_dimensional_carver', event => {
event.cancel();
const player = event.player;
if (player && !event.level.isClientSide()) {
player.tell('The Shattered Dimensional Carver is disabled on this server.');
}
});
console.info('[bns/disable_alexsmobs_features] loaded');
@@ -1,12 +0,0 @@
{
"ingredients": [
{
"item": "minecraft:barrier"
}
],
"result": {
"item": "alexsmobs:shattered_dimensional_carver",
"count": 1
},
"time": 200
}
+24 -2
View File
@@ -1,13 +1,13 @@
{ {
"$schema": "Brass-and-Sigil pack.lock.json - generated, do not edit by hand unless you know what you are doing", "$schema": "Brass-and-Sigil pack.lock.json - generated, do not edit by hand unless you know what you are doing",
"name": "Brass and Sigil", "name": "Brass and Sigil",
"version": "0.30.4", "version": "0.31.0",
"minecraft": "1.21.1", "minecraft": "1.21.1",
"loader": { "loader": {
"type": "neoforge", "type": "neoforge",
"version": "21.1.228" "version": "21.1.228"
}, },
"lockedAt": "2026-06-01T19:14:46Z", "lockedAt": "2026-06-01T19:19:01Z",
"mods": [ "mods": [
{ {
"source": "modrinth", "source": "modrinth",
@@ -1075,6 +1075,28 @@
"sha1": "5070e8070f60650d773bfd9f1d031496f8f50259", "sha1": "5070e8070f60650d773bfd9f1d031496f8f50259",
"size": 26620546, "size": 26620546,
"side": "both" "side": "both"
},
{
"source": "modrinth",
"slug": "item-obliterator",
"versionId": "jy3ApWAm",
"version": "2.3.0",
"path": "mods/Item-Obliterator-NeoForge-MC1.21.1-2.3.0.jar",
"url": "https://cdn.modrinth.com/data/3ESR84kR/versions/jy3ApWAm/Item-Obliterator-NeoForge-MC1.21.1-2.3.0.jar",
"sha1": "0cb46a873376d7ded387e175bf30181fcc079c15",
"size": 24037,
"side": "both"
},
{
"source": "modrinth",
"slug": "necronomicon",
"versionId": "4iO8Tbfj",
"version": "1.6.0+1.21",
"path": "mods/Necronomicon-NeoForge-1.6.0+1.21.jar",
"url": "https://cdn.modrinth.com/data/P1Kv5EAO/versions/4iO8Tbfj/Necronomicon-NeoForge-1.6.0%2B1.21.jar",
"sha1": "4d81055810e07a94b68d16ab20ec298ad0d597a0",
"size": 29865,
"side": "both"
} }
], ],
"defaultServer": { "defaultServer": {