#Removing Items from loot chest

16 messages · Page 1 of 1 (latest)

proud widget
#

I was making a modpack and i wanted to remove the ring of asencions flight ring and hungerless ring

The code:
// startup_scripts/remove_selected_loot.js

// Use LootJS to modify loot tables
LootJS.modifiers(event => {
// Helper function to remove specific items from a loot table
function removeItemsFromLootTable(lootTable, items) {
event.modify(lootTable, table => {
items.forEach(item => {
table.removePool(pool => pool.contains(item));
});
console.log(Removed items ${items.join(', ')} from ${lootTable});
});
}

// List of items to remove
const itemsToRemove = [
    'ringsofasencion:flight_ring',
    'ringsofasencion:ring_hungerless'
];

// Modify multiple loot tables
removeItemsFromLootTable('minecraft:chests/simple_dungeon', itemsToRemove);         // Dungeon Chest
removeItemsFromLootTable('minecraft:chests/abandoned_mineshaft', itemsToRemove);   // Mineshaft Chest
removeItemsFromLootTable('minecraft:chests/village/village_butcher', itemsToRemove); // Village Butcher Chest
removeItemsFromLootTable('minecraft:chests/end_city_treasure', itemsToRemove);     // End City Chest
removeItemsFromLootTable('minecraft:chests/woodland_mansion', itemsToRemove);      // Woodland Mansion Chest
removeItemsFromLootTable('minecraft:chests/ancient_city', itemsToRemove);          // Ancient City Chest

});

eternal widgetBOT
#

Once your ticket has been resolved, please close it with </ticket close:1054771505520717835> command!

proud widget
#

I updated it to this

LootJS.modifiers((event) => {
event
.addLootTableModifier(LootType.CHEST)
.removeLoot('ringsofasencion:flight_ring' ,
'ringsofasencion:ring_hungerless');
});

#

Now it shows this

shy graniteBOT
#

You can write your code in a codeblock by typing it between the codeblock delimiters:
Note that these are backticks, not apostrophes

```js :arrow_left:

ServerEvents.recipes(event => {
event.smelting('minecraft:glass', '#forge:sand').xp(.1)
})

``` :arrow_left:

This example will look like this:

ServerEvents.recipes(event => {
  event.smelting('minecraft:glass', '#forge:sand').xp(.1)
})
#

You can write your code in a codeblock by typing it between the codeblock delimiters:
Note that these are backticks, not apostrophes

```js :arrow_left:

ServerEvents.recipes(event => {
event.smelting('minecraft:glass', '#forge:sand').xp(.1)
})

``` :arrow_left:

This example will look like this:

ServerEvents.recipes(event => {
  event.smelting('minecraft:glass', '#forge:sand').xp(.1)
})
#

You can write your code in a codeblock by typing it between the codeblock delimiters:
Note that these are backticks, not apostrophes

```js :arrow_left:

ServerEvents.recipes(event => {
event.smelting('minecraft:glass', '#forge:sand').xp(.1)
})

``` :arrow_left:

This example will look like this:

ServerEvents.recipes(event => {
  event.smelting('minecraft:glass', '#forge:sand').xp(.1)
})
proud widget
#

I dont understand what im doing wrong

shy graniteBOT
#

You can write your code in a codeblock by typing it between the codeblock delimiters:
Note that these are backticks, not apostrophes

```js :arrow_left:

ServerEvents.recipes(event => {
event.smelting('minecraft:glass', '#forge:sand').xp(.1)
})

``` :arrow_left:

This example will look like this:

ServerEvents.recipes(event => {
  event.smelting('minecraft:glass', '#forge:sand').xp(.1)
})
proud widget
#
    event
      .addLootTableModifier(LootType.CHEST)
.removeLoot('ringsofasencion:flight_ring' ,
        'ringsofasencion:ring_hungerless');
  });```
#

oh ok

#
    function removeItemsFromLootTable(lootTable, items) {
        event.modify(lootTable, table => {
            items.forEach(item => {
                table.removePool(pool => pool.contains(item));
            });
            console.log(Removed items ${items.join(', ')} from ${lootTable});
        });
    }

    const itemsToRemove = [
        'ringsofasencion:flight_ring',
        'ringsofasencion:ring_hungerless'
    ];
    removeItemsFromLootTable('minecraft:chests/simple_dungeon', itemsToRemove);         // Dungeon Chest
    removeItemsFromLootTable('minecraft:chests/abandoned_mineshaft', itemsToRemove);   // Mineshaft Chest
    removeItemsFromLootTable('minecraft:chests/village/village_butcher', itemsToRemove); // Village Butcher Chest
    removeItemsFromLootTable('minecraft:chests/end_city_treasure', itemsToRemove);     // End City Chest
    removeItemsFromLootTable('minecraft:chests/woodland_mansion', itemsToRemove);      // Woodland Mansion Chest
    removeItemsFromLootTable('minecraft:chests/ancient_city', itemsToRemove);          // Ancient City Chest
});```
nova summit
#

first of all ypur LootJs file needs to be in server scripts not in startup scripts^^
second event.modify doesn't exist in LootJS
and you can define your helper function better, i think something like this should work too:

LootJS.modifiers(event => {
    const itemsToRemove = [
        'ringsofasencion:flight_ring',
        'ringsofasencion:ring_hungerless'
    ];
    
    function removeItemsFromLootTable(lootTable) {
        itemsToRemove.forEach(item => event.addLootTableModifier(lootTable).removeLoot(item));
        console.log("Removed items ${items.join(', ')} from ${lootTable}");
    }

    removeItemsFromLootTable('minecraft:chests/simple_dungeon');         // Dungeon Chest
    removeItemsFromLootTable('minecraft:chests/abandoned_mineshaft');   // Mineshaft Chest
    removeItemsFromLootTable('minecraft:chests/village/village_butcher'); // Village Butcher Chest
    removeItemsFromLootTable('minecraft:chests/end_city_treasure');     // End City Chest
    removeItemsFromLootTable('minecraft:chests/woodland_mansion');      // Woodland Mansion Chest
    removeItemsFromLootTable('minecraft:chests/ancient_city');          // Ancient City Chest
});

i don't know if the console.log line are correct i don't work with it often

proud widget
#

Ill try it out. Thank you for that

nova summit
#

but keep in mind if you have a loot addon for Jei/Rei/emi they will not reload the loot proberly you need to try it out or with the loot command ingame^^

proud widget
#

I think it worked, Thank you very much