Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -93,13 +93,13 @@ jobs:
fabric_server_url: https://meta.fabricmc.net/v2/versions/loader/1.21.5/0.16.13/1.0.3/server/jar
fabric_api_url: https://cdn.modrinth.com/data/P7dR8mSH/versions/FZ4q3wQK/fabric-api-0.119.9%2B1.21.5.jar
packtest_url: https://cdn.modrinth.com/data/XsKUhp45/versions/Swh7th09/packtest-2.1-mc1.21.5.jar
- version: '1.21.7'
- version: '1.21.7'
fabric_server_url: https://meta.fabricmc.net/v2/versions/loader/1.21.7/0.16.14/1.0.3/server/jar
fabric_api_url: https://cdn.modrinth.com/data/P7dR8mSH/versions/sLmbxWpX/fabric-api-0.128.1%2B1.21.7.jar
packtest_url: https://cdn.modrinth.com/data/XsKUhp45/versions/PAYctH3X/packtest-2.2-mc1.21.7.jar
- version: '1.21.8'
fabric_server_url: https://meta.fabricmc.net/v2/versions/loader/1.21.7/0.16.14/1.0.3/server/jar
fabric_api_url: https://cdn.modrinth.com/data/P7dR8mSH/versions/sLmbxWpX/fabric-api-0.128.1%2B1.21.7.jar
- version: '1.21.9'
fabric_server_url: https://meta.fabricmc.net/v2/versions/loader/1.21.9/0.17.2/1.1.0/server/jar
fabric_api_url: https://cdn.modrinth.com/data/P7dR8mSH/versions/rWWImuoz/fabric-api-0.133.14%2B1.21.9.jar
packtest_url: https://cdn.modrinth.com/data/XsKUhp45/versions/PAYctH3X/packtest-2.2-mc1.21.7.jar
name: 'test-${{ matrix.version }}'
runs-on: ubuntu-24.04
Expand Down
1 change: 1 addition & 0 deletions base/data/gm4/tags/block/no_collision.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
"minecraft:cave_vines_plant",
"minecraft:cherry_sapling",
"minecraft:cobweb",
{"id": "minecraft:copper_torch", "required": false},
"minecraft:crimson_fungus",
"minecraft:crimson_roots",
"minecraft:dark_oak_sapling",
Expand Down
15 changes: 11 additions & 4 deletions base/data/gm4/tags/block/waterloggable.json
Original file line number Diff line number Diff line change
@@ -1,26 +1,33 @@
{
"values": [
"#minecraft:rails",
"#minecraft:all_signs",
{"id": "#minecraft:bars", "required": false},
"#minecraft:campfires",
"#minecraft:candles",
{"id": "#minecraft:chains", "required": false},
{"id": "#minecraft:copper_chests", "required": false},
{"id": "#minecraft:copper_golem_statues", "required": false},
"#minecraft:corals",
"#minecraft:fences",
{"id": "#minecraft:lanterns", "required": false},
"#minecraft:leaves",
"#minecraft:all_signs",
{"id": "#minecraft:lightning_rods", "required": false},
"#minecraft:rails",
"#minecraft:slabs",
"#minecraft:stairs",
"#minecraft:trapdoors",
"#minecraft:corals",
"#minecraft:wall_corals",
"#minecraft:wall_signs",
"#minecraft:walls",
{"id": "#minecraft:wooden_shelves", "required": false},
"minecraft:amethyst_cluster",
"minecraft:big_dripleaf",
"minecraft:big_dripleaf_stem",
"minecraft:black_stained_glass_pane",
"minecraft:blue_stained_glass_pane",
"minecraft:brown_stained_glass_pane",
"minecraft:calibrated_sculk_sensor",
"minecraft:chain",
{ "id": "minecraft:chain", "required": false },
"minecraft:chest",
"minecraft:conduit",
"minecraft:cyan_stained_glass_pane",
Expand Down
2 changes: 2 additions & 0 deletions base/data/gm4/tags/entity_type/passive.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,12 @@
"minecraft:cat",
"minecraft:chicken",
"minecraft:cod",
{"id": "minecraft:copper_golem", "required": false},
"minecraft:cow",
"minecraft:donkey",
"minecraft:frog",
"minecraft:glow_squid",
{"id": "minecraft:happy_ghast", "required": false},
"minecraft:horse",
"minecraft:mooshroom",
"minecraft:mule",
Expand Down
65 changes: 65 additions & 0 deletions gm4/modeldata_registry.json
Original file line number Diff line number Diff line change
Expand Up @@ -240,12 +240,77 @@
"gm4_fulcio_shamir:shamir/fulcio": 115,
"gm4_animi_shamir:shamir/animi": 124
},
"copper_axe": {
"gm4_metallurgy:shamir/hypexperia": 110,
"gm4_metallurgy:shamir/arborenda": 112,
"gm4_metallurgy:shamir/moneo": 113,
"gm4_percurro_shamir:shamir/percurro": 117,
"gm4_audere_shamir:shamir/audere": 120,
"gm4_animi_shamir:shamir/animi": 124
},
"copper_block": {
"gm4_auto_crafting:guidebook_icon/auto_crafting": 1
},
"copper_boots": {
"gm4_weighted_armour:shamir/helious": 103,
"gm4_metallurgy:shamir/defuse": 106,
"gm4_desire_lines:shamir/celaro": 118,
"gm4_vecto_shamir:shamir/vecto": 121,
"gm4_metallurgy:shamir/vibro": 123,
"gm4_animi_shamir:shamir/animi": 124
},
"copper_chestplate": {
"gm4_weighted_armour:shamir/helious": 103,
"gm4_metallurgy:shamir/defuse": 106,
"gm4_iacio_shamir:shamir/iacio": 122,
"gm4_animi_shamir:shamir/animi": 124
},
"copper_helmet": {
"gm4_weighted_armour:shamir/helious": 103,
"gm4_metallurgy:shamir/defuse": 106,
"gm4_animi_shamir:shamir/animi": 124
},
"copper_hoe": {
"gm4_metallurgy:shamir/gemini": 109,
"gm4_metallurgy:shamir/tinker": 111,
"gm4_metallurgy:shamir/moneo": 113,
"gm4_audere_shamir:shamir/audere": 120,
"gm4_animi_shamir:shamir/animi": 124
},
"copper_leggings": {
"gm4_weighted_armour:shamir/helious": 103,
"gm4_metallurgy:shamir/defuse": 106,
"gm4_animi_shamir:shamir/animi": 124
},
"copper_ore": {
"gm4_smelteries:block/ore_display/copper_ore": 2
},
"copper_pickaxe": {
"gm4_metallurgy:shamir/forterra": 107,
"gm4_metallurgy:shamir/hypexperia": 110,
"gm4_metallurgy:shamir/tinker": 111,
"gm4_metallurgy:shamir/moneo": 113,
"gm4_lumos_shamir:shamir/lumos": 114,
"gm4_audere_shamir:shamir/audere": 120,
"gm4_animi_shamir:shamir/animi": 124
},
"copper_shovel": {
"gm4_metallurgy:shamir/hypexperia": 110,
"gm4_metallurgy:shamir/tinker": 111,
"gm4_metallurgy:shamir/moneo": 113,
"gm4_lumos_shamir:shamir/lumos": 114,
"gm4_audere_shamir:shamir/audere": 120,
"gm4_animi_shamir:shamir/animi": 124
},
"copper_sword": {
"gm4_metallurgy:shamir/ender_bolt": 105,
"gm4_metallurgy:shamir/musical": 108,
"gm4_metallurgy:shamir/hypexperia": 110,
"gm4_metallurgy:shamir/tinker": 111,
"gm4_orb_of_ankou:shamir/corripio": 116,
"gm4_percurro_shamir:shamir/percurro": 117,
"gm4_animi_shamir:shamir/animi": 124
},
"crafting_table": {
"gm4_custom_crafters:block/custom_crafter": 1,
"gm4_standard_crafting:guidebook_icon/standard_crafting": 2,
Expand Down
36 changes: 23 additions & 13 deletions gm4/plugins/backwards.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import logging
from typing import Any, Tuple, Callable
from beet import Context, Pack, NamespaceFile, ItemModel
from beet.core.utils import SupportedFormats

logger = logging.getLogger("gm4.backwards")

Expand Down Expand Up @@ -55,8 +54,7 @@ def backport(pack: Pack[Any], format: int, run: Callable[[str, NamespaceFile], N
resources[(file_type, path)] = proxy[path]

for overlay in pack.overlays.values():
overlay_formats = overlay.supported_formats or overlay.pack_format
if check_formats(overlay_formats, format):
if check_formats(overlay, format):
for file_type in overlay.resolve_scope_map().values():
proxy = overlay[file_type]
for path in proxy.keys():
Expand All @@ -71,16 +69,28 @@ def backport(pack: Pack[Any], format: int, run: Callable[[str, NamespaceFile], N
if new_resource:
overlay = pack.overlays[f"backport_{format}"]
overlay.supported_formats = { "min_inclusive": 0, "max_inclusive": format }
overlay.min_format = 0
overlay.max_format = format
overlay[path] = new_resource


def check_formats(supported: SupportedFormats, format: int):
match supported:
case int(value):
return value == format
case [min, max]:
return min <= format <= max
case { "min_inclusive": min, "max_inclusive": max }:
return min <= format <= max
case _:
raise ValueError(f"Unknown supported_formats structure {supported}")
def check_formats(overlay: Pack[Any], format: int):
if overlay.min_format and overlay.max_format:
return get_major(overlay.min_format) <= format <= get_major(overlay.max_format)
if overlay.supported_formats:
match overlay.supported_formats:
case int(value):
return value == format
case [min, max]:
return min <= format <= max
case { "min_inclusive": min, "max_inclusive": max }:
return min <= format <= max
case _:
raise ValueError(f"Unknown supported_formats structure {overlay.supported_formats}")
if overlay.pack_format:
return overlay.pack_format == format
return False


def get_major(format: int | tuple[int] | tuple[int, int]):
return format if isinstance(format, int) else format[0]
2 changes: 1 addition & 1 deletion gm4/plugins/manifest.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

parent_logger = logging.getLogger("gm4.manifest")

SUPPORTED_GAME_VERSIONS = ["1.21.5", "1.21.6", "1.21.7", "1.21.8"]
SUPPORTED_GAME_VERSIONS = ["1.21.5", "1.21.6", "1.21.7", "1.21.8", "1.21.9", "1.21.10"]

# config models for beet.yaml metas
CreditsModel = dict[str, list[str]]
Expand Down
2 changes: 1 addition & 1 deletion gm4/plugins/resource_pack.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@
JsonType = dict[str,Any]

CUSTOM_MODEL_PREFIX = 3420000
MINECRAFT_REFERENECE_VERSION = "1.21.6"
MINECRAFT_REFERENECE_VERSION = "1.21.9"

parent_logger = logging.getLogger("gm4.resource_pack")

Expand Down
11 changes: 8 additions & 3 deletions gm4/plugins/write_mcmeta.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,21 @@ def beet_default(ctx: Context):
manifest_entry = {v.id:v for v in (manifest.modules|manifest.libraries).values()}.get(ctx.project_id, NoneAttribute())

ctx.data.pack_format = 71
ctx.data.supported_formats = {"min_inclusive": 71, "max_inclusive": 81}
ctx.data.supported_formats = {"min_inclusive": 71, "max_inclusive": 88}
ctx.data.min_format = 71
ctx.data.max_format = (88, 0)

ctx.assets.pack_format = 55
ctx.assets.supported_formats = {"min_inclusive": 55, "max_inclusive": 64}
ctx.assets.supported_formats = {"min_inclusive": 55, "max_inclusive": 69}
ctx.assets.min_format = 55
ctx.assets.max_format = (69, 0)

for pack in ctx.packs:
pack.description = [
ctx.project_name,
"\n",
{
"text": f"Gamemode 4 (1.21.5 - 1.21.8)",
"text": f"Gamemode 4 (1.21.5 - 1.21.9)",
"color": "#4AA0C7"
}
]
Expand Down
33 changes: 33 additions & 0 deletions gm4/skin_cache.json
Original file line number Diff line number Diff line change
Expand Up @@ -956,6 +956,39 @@
"value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzA1YTY0N2YzYmY2YzMzZGQwNWI5M2JkZTJiNzRlYzViOWE5YTMxODQxM2FlZWRkZGE3ZDFhYjk3NDVkZmE5OCd9fX0=",
"hash": "b1173eacf6e07f062e2301d25669acc1a3a0ac20",
"parent_module": "gm4_metallurgy"
},
"gm4_lightning_in_a_bottle:texture_connector_exposed": {
"uuid": [
1105086427,
-2014818885,
-2050456398,
1819890536
],
"value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjU0ZTFmZmZlNzNiMjljMGU1NzVhOTg2OTI3OTJhZTIxYzQwNDUzZmMxNDRiYjYxZjE4ZDBmZjhmMjY3N2IxMSd9fX0=",
"hash": "3ba0bc3626c0acf3c8c19ecd9801db477e5f4ef4",
"parent_module": "gm4_lightning_in_a_bottle"
},
"gm4_lightning_in_a_bottle:texture_connector_weathered": {
"uuid": [
-53579126,
-1276100194,
-1254675310,
1810892024
],
"value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTExYjlhYjJlZmY4ZDMzYzU3ZWUyMjVjYWQ5ZmNkMTFmN2JmN2I4MzI2YWJlMTVhOWQ1MzUwNjNmOTZkOGZjMCd9fX0=",
"hash": "4ae3138c18bcb10d5074aa45c403f7a2192a79b8",
"parent_module": "gm4_lightning_in_a_bottle"
},
"gm4_lightning_in_a_bottle:texture_connector_oxidized": {
"uuid": [
-1160792602,
948128354,
-1355641425,
1430620480
],
"value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDY1ZGQ5Njg5MzIyNDZjZjgwODA3Y2E2NmY4M2Y0MThjNjc5YTIzMjI5MDdiYmNkMWYxN2I4ZTQ3NWUwYzE4J319fQ==",
"hash": "0ec19a60309722db4e5d57cba06c29bc62d5051f",
"parent_module": "gm4_lightning_in_a_bottle"
}
},
"nonnative_references": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,21 @@

data modify storage gm4_audere_shamir:temp/player/tool SelectedItem set from entity @s SelectedItem
execute store result score $tool_current_damage gm4_ml_data run data get storage gm4_audere_shamir:temp/player/tool SelectedItem.components."minecraft:damage"
execute store result score $tool_max_damage gm4_ml_data run data get storage gm4_audere_shamir:temp/player/tool SelectedItem.components."minecraft:custom_data".gm4_audere_shamir.max_durability
execute store result score $tool_max_damage gm4_ml_data run data get storage gm4_audere_shamir:temp/player/tool SelectedItem.components."minecraft:custom_data".MaxDurability
# | MaxDamage is set by gm4_moneo_shamir:store_maximum

# update newly upgraded netherite gear
execute if score $tool_max_damage gm4_ml_data matches 1561 if predicate gm4_audere_shamir:holding_netherite run function gm4_audere_shamir:update_netherite

# activate audere
execute if score $tool_max_damage gm4_ml_data matches 59 run function gm4_audere_shamir:tools/materials/wood
execute if score $tool_max_damage gm4_ml_data matches 131 run function gm4_audere_shamir:tools/materials/stone
execute if score $tool_max_damage gm4_ml_data matches 190 run function gm4_audere_shamir:tools/materials/copper
execute if score $tool_max_damage gm4_ml_data matches 250 run function gm4_audere_shamir:tools/materials/iron
execute if score $tool_max_damage gm4_ml_data matches 1561 run function gm4_audere_shamir:tools/materials/diamond
execute if score $tool_max_damage gm4_ml_data matches 2031 run function gm4_audere_shamir:tools/materials/netherite
execute if score $tool_max_damage gm4_ml_data matches 33 run function gm4_audere_shamir:tools/materials/gold
# | gold used to be listed as 33 max damage, this is kept for compatibility with old items
execute if score $tool_max_damage gm4_ml_data matches 32..33 run function gm4_audere_shamir:tools/materials/gold
execute if score $tool_max_damage gm4_ml_data matches 237 run function gm4_audere_shamir:tools/shears

# reset storage and fake players
Expand Down
Loading
Loading