Code Monkey home page Code Monkey logo

gamemode4dev / gm4_datapacks Goto Github PK

View Code? Open in Web Editor NEW
97.0 13.0 55.0 413.86 MB

Gamemode 4 is a collection of modular Minecraft Datapacks that change or expand on the vanilla experience whilst keeping the vanilla feel. Our modules are developed with a focus on usability and efficiency.

Home Page: https://gm4.co

License: GNU General Public License v3.0

mcfunction 89.89% Python 10.11%
minecraft datapack command-block gm4 minecraft-functions data-pack

gm4_datapacks's Introduction

gm4_datapacks's People

Contributors

adequateusername avatar adriaan1313 avatar andantet avatar bloo-dev avatar bluepsychoranger avatar coolsa avatar dennis-0 avatar epyonprojects avatar federick0090 avatar grian32 avatar hozz8528 avatar jpeterik12 avatar kattacka avatar kroppeb avatar kruthers avatar levertion avatar luexa avatar michaelminer137 avatar misode avatar nik3141 avatar scommander avatar sheepe avatar sparks0 avatar specialbuilder32 avatar spgoding avatar spiderrobotman avatar suppergerrie2 avatar thethanathor avatar toffeemax avatar venomousbirds avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gm4_datapacks's Issues

Simplified multiplier

Am I right that the only purpose of {gm4_custom_crafters:{mutliplier:X}} is to have stackable crafting?
If so, instead of doing loads of extra processes, can't you just check for an item with the tag {gm4_custom_crafters:{multiply:true}} store the original stack size into a scoreboard, run the recipe checks, store the new stack size into a different scoreboard, multiply the two scoreboards together, store the multiplied score into the item's count and remove the multiply tag(edited)
This is what I did for my datapack, Vadditions:

#@s = custom crafter unless block ~ ~ ~ #vadditions:holds/customcrafter{Items:[]}

#pre
execute store result score @s VADS_FrstStckSze run data get block ~ ~ ~ Items[0].Count

#sandstones to sand
execute if score @s VADS_SlotCount matches 1 if score @s VADS_StackSize matches ..16 if block ~ ~ ~ #vadditions:holds/customcrafter{Items:[{Slot:0b,id:"minecraft:sandstone"}]} run data merge block ~ ~ ~ {Items:[{Slot:8,id:"minecraft:sand",Count:4b,tag:{vadditions:{multiply:true}}}]}
(And further recipe checks...)
#post
execute store result score @s VADS_NewStckSze run data get block ~ ~ ~ Items[0].Count
scoreboard players operation @s VADS_NewStckSze *= @s VADS_FrstStckSze
execute if block ~ ~ ~ #vadditions:holds/customcrafter{Items:[{tag:{vadditions:{multiply:true}}}]} store result block ~ ~ ~ Items[0].Count byte 1 run scoreboard players get @s VADS_NewStckSze
execute if block ~ ~ ~ #vadditions:holds/customcrafter{Items:[{tag:{vadditions:{multiply:true}}}]} run data remove block ~ ~ ~ Items[0].tag.vadditions

Custom crafters multi-crafting causes item duplication and deletion

The bug

I expected the recipe not to work when different amounts of items are in the dropper. Instead I noticed the recipe worked and it just took the count of the last slot (bottom right) while ignoring the other slots.

How to reproduce

  1. Create a standard custom crafter
  2. Fill the dropper with flint making sure not all slots have the same number of flint
    → Notice the recipe works even though not all slots had the same number of items. It took the amount of items from the last slot and used that as the multiplier. This can cause item duplication and item deletion!

Installed modules

  • Custom Crafters
  • Standard Crafting

Forterra Shamir is not dropping goodies (1.14)

Mining with forterra in vanilla and spigot 1.14 does not drop any goodies

Expected Behavior

Gold, redstone and such should occasionally drop about 10% of the time.

Current Behavior

No drops were found after 12 stacks of smooth stone were mined.

Tested on PSV and singleplayer

Heart Canisters causing damage to player upon health_boost reapply

Expected Behavior

Heart Canisters should give a player extra health when in their inventory.

Current Behavior

When the player is above default health (20 health points), their extra hearts are constantly lost, as if they were being damaged by some mob. This is due to a side-effect of applying the health_boost status effect that reset's the players current health.
See Bug : https://bugs.mojang.com/browse/MC-25088

Possible Solution

Until the aforementioned bug is resolved, we would need some annoying trickery to give them the right health boost.
A potential solution would be to give the player an infinite health_boost based on their number of heart canisters, and clear it if that number changes.
Unfortunately, it seems like we will once again have the annoying issue of whenever your heart-canister number changes, you have to regenerate all your health.

Steps to Reproduce

(This pertains specifically to the issue's existence in heart_canisters, not the bug as a whole)

  1. Obtain at least one heart canister
  2. Heal yourself above 20 hearts
  3. Watch as your newfound health repeatedly falls back to nothing.

Environment

The underlying bug affects 1.13.2 vanilla.

TPS drops when running shroomites.

When covering a large area with shroomites the server experiences tps drops if - and only if- the area isn't fully loaded / near the edge of loaded chunks. As of right now the reason for this is unknown.

Allow Netherwart to be planted by Boots of Ostara

The Boots of Ostara should be able to replant nether wart, another type of full block crop. Similar to the other crops the Boots may replant, nether wart is a full block crop and harvesting requires the plant to be broken and replanted.

Trapped signs disconnect redstone wires

Expected Behavior

The trapped sign should power the redstone wire and consequently affect the adjacent wires.

Current Behavior

The redstone wire 'disconnects' from the adjacent wires.

Possible Solution

The only way I can think of is to add a bunch of 'execute if's, which would take a lot of hard work.

Steps to Reproduce

Video

Environment

Singleplayer
All modules are installed
Minecraft 1.13.2 (OptiFine E4_pre3)

Add functionality to Trapped Signs to support more redstone components

A nice-to-have for Trapped Signs would be to allow redstone torches, repeaters, doors, comparators, etc. to receive a redstone signal when the sign is activated (currently only applies to redstone dust). I realize, however, there's no easy way to do this without a fair number of fill commands.

Suggestion: Automatic animal breeding module

Add a module that works like this: you throw preferred food of an animal for example wheat at a cow and it goes into love mode. This would be veery useful for farms and such but idk if having to check all the time would cause lag.

Mending Tanks doesn't reset tanks properly

If an experience tank is emptied while it is mending a tool, the tank can no longer accept experience to become a new experience tank.

Expected Behavior

Standing on top of an empty tank with experience should turn it into an experience tank.

Current Behavior

The tank does not react to the player and instead remains empty.

Steps to Reproduce

  1. Install Liquid Tanks and mending Tanks.
    2.Create a new liquid tank.
    3.Fill the tank with experience by standing on top of it.
  2. Place a tool with low durability and the mending enchant in the first slot so the tool empties the liquid tank while it is being repaired.
    5.Stand on top of the now empty tank with experience on you.
  3. Notice the tank doesn't fill with XP.

Environment

Tested on the GM4 stream and public servers.

Inconsistency in clearing dropper names after breaking Custom Crafter type blocks.

Some datapacks will attempt to clear the custom-name of a dropper item when a custom crafter (or similar. compressor, ench extractor...), since minecraft now copies the container's name to the item when broken

Expected Behavior

Either all packs try and clear the name, or none do

Current Behavior

Custom Crafters and Block Compressors don't, Ench Extractors does.

Ziprails Minecart Motion

Expected Behavior

The minecart should reach the end of the tripwire string, 'fall out' of the string and, if there's a block in front of it, stop moving.

Current Behavior

Currently, the minecart will keep trying to go forward, even if it hits a block, until you make sure the block above it is not a tripwire hook.

Possible Solution

Set ziprail minecarts to detect only tripwire when changing motion, instead of that AND tripwire hooks.

Steps to Reproduce

  1. Set up your ziprail
    2018-10-24_05 16 29
  2. Place down the minecart, it will start moving forward (normal)
    2018-10-24_05 16 43
  3. Let it move to the end
    2018-10-24_05 16 56
  4. Break the block in front of it and it will move forwards ( it should stay still)
    2018-10-24_05 17 08

Environment

Singleplayer
All modules are installed
Void World (though biome is plains)
Minecraft 1.13.1 (OptiFine E4_pre2)

Edit;

Whether or not the minecart should go forwards or not, in this instance the minecart latches back onto an unpowered powered rail: it should slow down the minecart regardless.

Ender Hoppers / Liquid Tanks Compatibility [Module]

It's been previously noted that there's nothing preventing modules using the same base blocks from overlapping. Rather than simply allow/prevent that, I feel it would be better to make it so modules can combine into new forms.

When an Ender Hopper and a Liquid Tank are combined, a new tank/hopper with a special capacity is created. This block scans a 3x3x3 area above it for mobs, xp, and liquids. By default, it collects nothing, but when a liquid is added to the hopper, it begins attempting to collect that liquid from the environment, absorbing water, lava, liquids from mobs, and xp orbs, if relevant.

This would not affect the ability to add liquids manually to the tank, or the 9x3x9 item collection radius of the hopper.

Shroomites not spreading

The shroomite spore is not spreading after summoned one using the following command

/execute align xyz run summon area_effect ~0.5 ~0.5 ~0.5 {Duration:2000000000,Tags:[gm4_shroomite_spore]}

I believe this is caused by an incorrect tag reference in shroomites:main. On line 9, the tag gm4_shroomite is used instead of gm4_shroomite_spore everywhere else. The tag gm4_shroomite isn't used anywhere else. After changing the tag the spores started spreading correctly.

Inconsistent function names

This is more a thread to discuss what names a function should have because there has been a lot of arguing and confusing.

Core module

  • ✔️ gm4:tick: gets called by #minecraft:tick
  • ❌ gm4:update: gets called by #minecraft:loadand it doesn't update anything directly. My suggestion:gm4:loadorgm4:init_check`
  • ✔️ gm4:init: gets called by gm4:update and initializes the gm4 core module
  • ✔️ #gm4:init_check: gets called by gm4:update. Modules use it to check if they need to initialize.
  • ✔️ #gm4:pulse_check: gets called by gm4:tick. Modules use it to check if they need to pulse.
  • #gm4:repeat: gets called by gm4:tick. Unused thus should be removed

Module functions

  • The function called as and at every of the custom entity marking the block (custom crafter, ender hopper, etc). Suggestions have been update and process.
  • The function to summon the entity and initialize a block should be named create
  • The function to kill the entity after removing the block should be named destroy
  • The function called for every player should be named player

End Fishing doesn't catch the fishing bobber reliably

Since the latest update to end fishing the module doesn't catch the bobber reliably - at least on the public server which is running the latest copy.

Expected Behavior

When a rod is cast the bobber should be caught almost every time (at least 90% of the time).

Current Behavior

The bobber drops to the void every time.

Workaround

Right now, casting the bobber against a wall fixes the issue.

Environment

Tested and observed on Public Server 5

@BluePsychoRanger do you have an idea why this would be happening? This is after the small armor stand change.

Metallurgy Shamir (or something) that can be applied to any boots that grants the effect of not creating desire lines like Boots of Ostara

It wouldn't give you the auto crop planting effect, just the inability to create desire lines for the wearer. This would solve the big complaint about desire lines in general that currently has no reasonable solution (the unreasonable solution being everyone wearing boots of ostara). Having a later-game ability to not have to worry about desire lines while still wearing good boots would solve that.

Mysterious Midnights item doesn't get consumed correctly

Expected Behavior

When a bone, rotten flesh or slime ball spawns its corresponding mob, it removes the item.

Current Behavior

The item isn't killed, causing mobs to be continuously spawned. This can cause massive lag problems.

Steps to Reproduce

  1. Wait for a mysterious midnight, or force one by setting the time
  2. Drop a bone, rotten flesh or slime ball on the ground
  3. Notice a mob spawns, but the item is still there

Environment

This happens in 1.14.4 on the Public Server V

Trapped Signs Possible Fix

Expected Behavior

When the Redstone around the sign is powered it should connect to other Redstone wire

Current Behavior

When the Redstone is powered it disconnects to adjacent Redstone wire

Possible Solution

If you set a redstone_wire with [power=2] it will visually connect to other Redstone wires - however, it gives off a one tick pulse meaning the Redstone doesn't visually turn on.

Environment

Singleplayer
No other modules installed
1.13.2

Using mob conversion to get a potion villager does not work

When converting a witch to a villager using mob conversion it becomes a villager with no job, if you click it its inventory quickly flashes up and goes down again because it has no work station. Giving it one results in it becoming a villager of its workstations type: brewing stand into a normal cleric.

Expected Behavior

Its supposed to become a cleric type who sells potions, idk if its supposed to need a workstation or not but at least you should be able to open its inventory

Current Behavior

There is no way to get acess to its trades

Steps to Reproduce

  1. Have a witch on gm4 PSV
  2. Make it into a villager using mob conversion
  3. Be unable to open its inventory.

Environment

Well I did do it in the nether although i do not think that should matter.
It was in multiplayer, Gm4 PSV
Well, i got all the other modules on gm4, i cant list them
Using 1.14.4

Trapped signs 'ruin' affected redstone lines

Expected Behavior

Adjacent redstone lines should power and then unpower.

Current Behavior

Due to the way the fill command works in 'activate.mcfunction', redstone wire disconnects from adjacent lines when activated by a trapped sign.

Possible Solution

Somehow painstakingly check for other adjacent redstone wire and modify blocks as required.

Steps to Reproduce

  1. Place a trapped sign
  2. Place redstone wires connecting to each other around the trapped sign
  3. Activate the trapped sign

Environment

All modules installed, Minecraft 1.13.2

Add more block types to Speed Paths

A helpful and realistic addition to Speed Paths might be to add more block types that give speed to players, such as gravel, concrete dust, cobblestone, mossy cobblestone, sandstone, wooden planks, polished stones, stone bricks, bricks, and concrete. This could also apply to all slabs/stairs for each block, if applicable. Coarse dirt could work too, as it would be a good advantage to Desire Lines. This improvement would require duplication of the current main.mcfunction code.

Cannot Create new Crafters

After trying to install Custom Crafting, creating Custom Crafting, installing master crafting and reloading, you cannot create a master crafter or any new custom crafters.

Expected Behavior

You should be able to create any new Custom Crafters or Master Crafters

Current Behavior

You cannot do the above

Possible Solution

Credit to @misode - Believe it uses old clocking system

Steps to Reproduce

  • Install Custom Crafting
  • Reload
  • Create a crafter
  • Install Master Crafting
  • Reload
  • Try and create new crafter

Environment

Java 1.13.2
Clean World
Master Crafting Latest and Custom Crafting Latest

NoAI bats still explode

I don't expect {NoAI:1b} bats to explode, just like most vanilla behavior, yet they still explode

Cannot expand on Orbis Structures

The current version of Orbis allows for expansion of chunk generation, but not structure generation. It allows only two type of structures: dungeons and towers. But what if someone wants to generate a new type of structure?

Expected Behavior

The function called to check for structures should be called by a function tag, similar to how chunk generation is called

Current Behavior

The function called to check for structures is implemented directly into the orbis base, allowing for checking for dungeon generation or tower generation

Possible Solution

The following code should be changed in orbis:chunk/generate.mcfunction
# try to spawn a structure before any chunk modifications have been done function orbis:structure/chunk
->
# try to spawn a structure before any chunk modifications have been done function #orbis:structure/chunk

and add a function tag structure/chunk.json to call the function orbis:structure/chunk

Boots of Ostara not working

I have crafted the boots of Ostara but the desire lines effects are still happening, and carrots in the 9th slot of my inventory are not being planted

[LT:Standard Liquids] XP wasted when tank is almost full, and an XP orb passes over the tank

Expected Behavior

The XP orb(s) passing over don't get collected or the amount of XP that can't be picked up is left in the orb.

Current Behavior

The XP that doen't fit into the tank is wasted

Possible Solution

Keep track of how much space there is in a tank and if an the orb has more xp in this, don't pick it up.

lt_space = lt_max - lt_value # maybe also `- lt_buffer`  to be safe? Is needed if calculated/orb
# lt_util is already storing xp-value
if (lt_space >= lt_util):
    lt_space -= lt_util # only if this variable is set once for each tank, not if `lt_space` is only calculated when an orb passes
    lt_buffer += lt_util
    kill orb

Allow Amorstands to use Boots of Ostara

Adding grass-placing functionality to armorstands wearing Boots of Ostara would be a helpful and realistic change, as well as allowing for a variety of non-afk farms (sheep, spawner minecarts, etc.).

[LT:Standard Liquids] Util functions use slow selectors to reselect the liquid tank

None of the selectors in the util functions use a limited range when reselecting the liquid tank.
This means that every entity in the whole world will be checked.

Possible Solution

2 solutions

Distance Check

Adding a distance means that the selector only goes through the armorstands in the chunks that are covered in the distance check

Fake player

The selectors are almost all used to set the buffer value. If instead the buffer would be stored on a fake player, no selector is needed.

Breaking a custom crafter drops a dropper named custom crafter

Expected Behavior

A custom crafter should drop 7 cobblestone, 1 redstone, 1 slightly damaged workbench and a dropper.

Current Behavior

All that happens, only the dropper is named 'Custom Crafter' due to recent updates' changes to the way you break block entities.

Possible Solution

Kill the dropped dropper item entity and re-summon a new one on custom crafter destruction.

Steps to Reproduce

  1. Make a custom crafter
  2. Break a custom crafter

Environment

Singleplayer
All other modules installed
Minecraft 1.13.2 (OptiFine E4_pre2)

Cave Air not handled like air by most modules.

Most modules don't treat Cave Air the same as air. As a result modules with air checks don't work as intended in caverns, natural ponds, ravines, dungeons…

Expected Behavior

The Module should treat Cave Air just like normal air.

Current Behavior

Cave Air is treated like any non air block.

Possible Solution

Create a block tag #air, maybe even include it in the base.

Affected Modules (extend this list in the comments)

Shroomites (spores see cave air as a solid block)
Phantom Scarecrows (rockets explode in cave air)

Updating multiple modules simultaneously prints incorrect "out-of-date" messages

If multiple modules are out of date on the server, and are all updated within a single reload, incorrect "The following modules are out of date" will be printed. This is due to the modules being processed one at a time. When the first module checks the world for out of date modules, any other modules being updated within that reload will not have been processed yet.

Possible Solution

Within the base, before any "out-of-date" area effect clouds are summoned, all existing ones should be killed.

1.14 standard crafting easy dulplication

Current Behavior

with the new block in 1.14 [the stone cutter] you can make stair from any stone resource in a 1:1 ratio, however, with the standard crafting module you can convert stair in a 2:3 ratio. in other words
4 cobble = 4 stairs
4 stairs = 6 cobble

this applies for all stone materials that can be used in the stonecutter (bricks can be used as well)

Possible Solution

have the stone material stairs give back in a 1:1 ratio is the only viable solution I can see

Steps to Reproduce

image

image

image

Environment

I found this scrolling through the standard crafting recipes in the standard crafting module and seeing the stairs back to blocks recipe, I used the stone cutter to make stairs because it's more efficient, then realized I could duplicate using that recipe.
just remember this is only a 1.14+ issue

[LT] Liquids Tanks can use more liquid then they have

Any liquid modification is written to the buffer first, and only updated after all interactions are handled

Expected Behavior

Using a liquid (for example using milk to clear effects) and emptying the tank with a bucket shouldn't work if there is only 1 bucket of liquid left.

Current Behavior

It does work

Possible Solution

Instead of using a buffer scoreboard, any modifications should be execute on value immediately and a tag gm4_lt_value_changed can be added instead.

Steps to Reproduce

etc.

Environment

Minecart get caught on Ziprails

Expected Behavior

I would expect the Minecarts to dispatch onto the rails at the other end.

Current Behavior

When a Minecart is going across a Ziprail it gets caught on the block at the other end.

Possible Solution

Tests for the rail at a lower point?

Steps to Reproduce

https://streamable.com/csice

  1. Set up a basic Ziprail between 2 points
  2. Send a Minecart along the Ziprail

Environment

Ziprails was the only module installed while testing
Singleplayer
1.13.2

Weighted Armour doesn't appear to function in 1.14

Expected Behavior

After installing the Weighted Armour datapack you'd be slowed down if you wear armour.

Current Behavior

Initialization appears to happen, but nothing after that. Wearing diamond armour does not give debuffs.
No errors are created in the log.

Possible Solution

N/A

Steps to Reproduce

  1. Install the datapack into world/datapacks directory
  2. Launch mentioned world.
  3. See initialization happen.
  4. Equip diamond or other armour, notice no effect.

Environment

This was tested on both Paper version 149, for MC version 1.14.4 and singleplayer 1.14.4
All other modules were disabled during testing.

Custom crafter makes items unstackable with normal items

The items created with a multiplier can't stack with normally obtained items.
This is caused by the fact the items have an empty tag.

Possible Solution

The custom crafter can test the length of the tag compound and if it's 0 remove the tag completely.

[Potion Swords] Skeletons spread out when wither-ized, even into nearby blocks

Expected Behavior

The skeletons should just simply 'turn into' wither skeletons and not move.

Current Behavior

This is an issue that affects wither skeleton skull farms. When you hit multiple skeletons with the relevant potion sword to turn them into wither skeletons, the newly-created wither skeletons will 'spurt' out, even into adjacent blocks.

Possible Solution

Create a temporary no collision team, use the Team nbt tag while summoning the transformed wither skeletons and then remove them from that team.

Steps to Reproduce

  1. Summon multiple skeletons in one place.
  2. Hit them holding a golden sword with a poison II potion in your inventory.
  3. Watch them, unless it (rarely) doesn't happen, spurt out. If caged, they'll suffocate in the blocks.

Environment

Multiplayer on GM4 PSV
All modules installed, of course.

Spiraculm makes "wooshing" sounds when the entity it is attempting to move cannot move.

The spiraculum shamir makes it's "I'm sucking something in" sound effect when the player is near a marker armor-stand, like the ones inside custom crafters.

Expected Behavior

The shamir should only make the sound when the entity is not part of a custom crafter (or like)

Current Behavior

It makes a wooshing sound. I don't know the full range of entities this affects. I only checked item frames and arrows, which it dosen't occur for.

Possible Solution

Add a check for gm4_no_edit to the selector, or another method to only find living entities + items + xp

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.