Skip to content

Main to next - #1334

Open
s5bug wants to merge 31 commits into
FallingColors:1.21from
s5bug:main-to-next
Open

s5bug wants to merge 31 commits into
FallingColors:1.21from
s5bug:main-to-next

Conversation

@s5bug

@s5bug s5bug commented Oct 16, 2026

Copy link
Copy Markdown
Contributor

hexxy-weblate and others added 30 commits August 29, 2026 02:58
chore(l10n): update Norwegian Bokmål translation

Co-authored-by: Hexxy Weblate <weblate@hexxy.media>
Co-authored-by: Hidden <shyrasan123@users.noreply.weblate.hexxy.media>
Language: Norwegian Bokmål
Progress: 15.8% (219 of 1386 strings)
Progress: 8.5% (118 of 1386 strings)
Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/nb_NO/
Translation: Hex Casting/Common
Co-authored-by: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Co-authored-by: Hexxy Weblate <weblate@hexxy.media>
Language: Chinese (Simplified Han script)
Progress: 100.0% (1386 of 1386 strings)
Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/zh_Hans/
Translation: Hex Casting/Common
chore(l10n): update Korean translation

chore(l10n): update Korean translation

Add-on: Remove blank strings
Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Hexxy Weblate <weblate@hexxy.media>
Language: Korean
Progress: 100.0% (23 of 23 strings)
Progress: 96.5% (1338 of 1386 strings)
Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/
Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/ko/
Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-hexdoc/ko/
Translation: Hex Casting/Common
Translation: Hex Casting/hexdoc
chore(l10n): update translation files

chore(l10n): update Polish translation

chore(l10n): update Polish translation

chore(l10n): update Polish translation

Add-on: Remove blank strings
Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Hexxy Weblate <weblate@hexxy.media>
Co-authored-by: ManicTv <zmorra7@gmail.com>
Language: Polish
Progress: 43.4% (10 of 23 strings)
Progress: 63.6% (882 of 1386 strings)
Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/
Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/pl/
Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-hexdoc/
Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-hexdoc/pl/
Translation: Hex Casting/Common
Translation: Hex Casting/hexdoc
chore(l10n): update French translation

Co-authored-by: Hexxy Weblate <weblate@hexxy.media>
Co-authored-by: Lithyaku <anthonyhurez@yahoo.fr>
Co-authored-by: drawn badden <wotegi3651@ittiv.com>
Language: French
Progress: 100.0% (1386 of 1386 strings)
Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/fr/
Translation: Hex Casting/Common
chore(l10n): update translation files

chore(l10n): update English (Pirate) translation

chore(l10n): update English (Pirate) translation

chore(l10n): update English (Pirate) translation

chore(l10n): update English (Pirate) translation

chore(l10n): update English (Pirate) translation

Add-on: Remove blank strings
Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Hexxy Weblate <weblate@hexxy.media>
Co-authored-by: [object Object] <object@objectobject.ca>
Co-authored-by: frostedlyre <frostospersonal@gmail.com>
Co-authored-by: penguinencounter <mileshlin@gmail.com>
Language: English (Pirate)
Progress: 4.3% (1 of 23 strings)
Progress: 8.8% (123 of 1386 strings)
Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/
Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/en@pirate/
Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-hexdoc/
Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-hexdoc/en@pirate/
Translation: Hex Casting/Common
Translation: Hex Casting/hexdoc
Translations updated in [Hexxy Weblate](https://weblate.hexxy.media) for
[Hex
Casting/Common](https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/).


Included components:

* [Hex
Casting/hexdoc](https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-hexdoc/)



Translation status:

![Weblate translation
status](https://weblate.hexxy.media/widget/hexcasting/1-20/1-20-common/matrix-auto.svg)

> [!WARNING]
> Do not merge this pull request via the merge queue! Instead, select
"Merge without waiting for requirements to be met", then "Create a merge
commit", then "Bypass rules and merge". Make sure to use a regular merge
commit, not a squash commit.

---------

Co-authored-by: Hidden <shyrasan123@users.noreply.weblate.hexxy.media>
Co-authored-by: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: ManicTv <zmorra7@gmail.com>
Co-authored-by: Lithyaku <anthonyhurez@yahoo.fr>
Co-authored-by: drawn badden <wotegi3651@ittiv.com>
Co-authored-by: [object Object] <object@objectobject.ca>
Co-authored-by: frostedlyre <frostospersonal@gmail.com>
Co-authored-by: penguinencounter <mileshlin@gmail.com>
chore(l10n): update Norwegian Bokmål translation

chore(l10n): update Norwegian Bokmål translation

Co-authored-by: Hexxy Weblate <weblate@hexxy.media>
Co-authored-by: Hidden <shyrasan123@users.noreply.weblate.hexxy.media>
Language: Norwegian Bokmål
Progress: 16.2% (225 of 1386 strings)
Progress: 16.8% (233 of 1386 strings)
Progress: 17.0% (236 of 1386 strings)
Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/nb_NO/
Translation: Hex Casting/Common
Co-authored-by: Hexxy Weblate <weblate@hexxy.media>
Co-authored-by: V. Ntro <251832526+ViktoriaNtro@users.noreply.github.com>
Language: Japanese
Progress: 100.0% (1386 of 1386 strings)
Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/ja/
Translation: Hex Casting/Common
Co-authored-by: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Language: Chinese (Simplified Han script)
Progress: 100.0% (1386 of 1386 strings)
Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/zh_Hans/
Translation: Hex Casting/Common
Co-authored-by: Hauveli <136408450+hauveli@users.noreply.github.com>
Co-authored-by: Hexxy Weblate <weblate@hexxy.media>
Language: Finnish
Progress: 3.8% (53 of 1386 strings)
Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/fi/
Translation: Hex Casting/Common
chore(l10n): update French translation

chore(l10n): update French translation

chore(l10n): update French translation

chore(l10n): update French translation

Co-authored-by: Hexxy Weblate <weblate@hexxy.media>
Co-authored-by: Jovan K <jovankirkendall@gmail.com>
Co-authored-by: Lithyaku <anthonyhurez@yahoo.fr>
Language: French
Progress: 100.0% (1386 of 1386 strings)
Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/fr/
Translation: Hex Casting/Common
Co-authored-by: Fire Storm <d9ikpjew6@mozmail.com>
Co-authored-by: Hexxy Weblate <weblate@hexxy.media>
Language: English (Pirate)
Progress: 8.9% (124 of 1386 strings)
Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/en@pirate/
Translation: Hex Casting/Common
chore(l10n): update Swedish translation

chore(l10n): update Swedish translation

chore(l10n): update Swedish translation

chore(l10n): update Swedish translation

chore(l10n): update Swedish translation

chore(l10n): update Swedish translation

Co-authored-by: Hexxy Weblate <weblate@hexxy.media>
Co-authored-by: Lux <telumiel@skyenet.app>
Language: Swedish
Progress: 100.0% (23 of 23 strings)
Progress: 11.6% (161 of 1386 strings)
Progress: 15.5% (215 of 1386 strings)
Progress: 2.5% (36 of 1386 strings)
Progress: 4.1% (58 of 1386 strings)
Progress: 4.3% (1 of 23 strings)
Progress: 5.1% (71 of 1386 strings)
Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/sv/
Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-hexdoc/sv/
Translation: Hex Casting/Common
Translation: Hex Casting/hexdoc
chore(l10n): update Spanish translation

Co-authored-by: Chichi16 <christperez1216@gmail.com>
Co-authored-by: Hexxy Weblate <weblate@hexxy.media>
Co-authored-by: KOCTEP <koster@users.noreply.weblate.hexxy.media>
Language: Spanish
Progress: 57.7% (801 of 1386 strings)
Progress: 57.8% (802 of 1386 strings)
Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/es/
Translation: Hex Casting/Common
chore(l10n): update Polish translation

chore(l10n): update Polish translation

chore(l10n): update Polish translation

chore(l10n): update Polish translation

chore(l10n): update Polish translation

chore(l10n): update Polish translation

chore(l10n): update Polish translation

chore(l10n): update Polish translation

chore(l10n): update Polish translation

chore(l10n): update translation files

chore(l10n): update Polish translation

chore(l10n): update Polish translation

Add-on: Remove blank strings
Co-authored-by: Hexxy Weblate <weblate@hexxy.media>
Co-authored-by: ManicTv <zmorra7@gmail.com>
Co-authored-by: Stanisław Budny <sbudny2008@gmail.com>
Language: Polish
Progress: 63.9% (886 of 1386 strings)
Progress: 63.9% (887 of 1386 strings)
Progress: 64.3% (892 of 1386 strings)
Progress: 64.5% (895 of 1386 strings)
Progress: 64.8% (899 of 1386 strings)
Progress: 64.9% (900 of 1386 strings)
Progress: 65.5% (909 of 1386 strings)
Progress: 66.5% (922 of 1386 strings)
Progress: 66.5% (923 of 1386 strings)
Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/
Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/pl/
Translation: Hex Casting/Common
chore(l10n): update Russian translation

chore(l10n): update Russian translation

chore(l10n): update Russian translation

chore(l10n): update Russian translation

Co-authored-by: Angens Nofori <angensnofori@gmail.com>
Co-authored-by: Hexxy Weblate <weblate@hexxy.media>
Co-authored-by: KOCTEP <koster@users.noreply.weblate.hexxy.media>
Co-authored-by: Koli / Shiromi's mind <komeijikoli@gmail.com>
Language: Russian
Progress: 99.9% (1385 of 1386 strings)
Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/ru/
Translation: Hex Casting/Common
Translations updated in [Hexxy Weblate](https://weblate.hexxy.media) for
[Hex
Casting/Common](https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/).


Included components:

* [Hex
Casting/hexdoc](https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-hexdoc/)



Translation status:

![Weblate translation
status](https://weblate.hexxy.media/widget/hexcasting/1-20/1-20-common/matrix-auto.svg)

> [!WARNING]
> Do not merge this pull request via the merge queue! Instead, select
"Merge without waiting for requirements to be met", then "Create a merge
commit", then "Bypass rules and merge". Make sure to use a regular merge
commit, not a squash commit.

---------

Co-authored-by: Hidden <shyrasan123@users.noreply.weblate.hexxy.media>
Co-authored-by: V. Ntro <251832526+ViktoriaNtro@users.noreply.github.com>
Co-authored-by: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Co-authored-by: Hauveli <136408450+hauveli@users.noreply.github.com>
Co-authored-by: Jovan K <jovankirkendall@gmail.com>
Co-authored-by: Lithyaku <anthonyhurez@yahoo.fr>
Co-authored-by: Fire Storm <d9ikpjew6@mozmail.com>
Co-authored-by: Lux <telumiel@skyenet.app>
Co-authored-by: Chichi16 <christperez1216@gmail.com>
Co-authored-by: KOCTEP <koster@users.noreply.weblate.hexxy.media>
Co-authored-by: ManicTv <zmorra7@gmail.com>
Co-authored-by: Stanisław Budny <sbudny2008@gmail.com>
Co-authored-by: Angens Nofori <angensnofori@gmail.com>
Co-authored-by: Koli / Shiromi's mind <komeijikoli@gmail.com>
Co-authored-by: Hexxy Weblate <weblate@hexxy.media>
Co-authored-by: Hidden <shyrasan123@users.noreply.weblate.hexxy.media>
Language: Norwegian Bokmål
Progress: 30.2% (419 of 1386 strings)
Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/nb_NO/
Translation: Hex Casting/Common
Co-authored-by: Hexxy Weblate <weblate@hexxy.media>
Co-authored-by: MegaBee <megabeegaming@gmail.com>
Language: Spanish
Progress: 57.8% (802 of 1386 strings)
Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/es/
Translation: Hex Casting/Common
Co-authored-by: Hexxy Weblate <weblate@hexxy.media>
Co-authored-by: ManicTv <zmorra7@gmail.com>
Language: Polish
Progress: 66.6% (924 of 1386 strings)
Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/pl/
Translation: Hex Casting/Common
chore(l10n): update Russian translation

chore(l10n): update Russian translation

chore(l10n): update Russian translation

chore(l10n): update Russian translation

Co-authored-by: Hexxy Weblate <weblate@hexxy.media>
Co-authored-by: KOCTEP <koster@users.noreply.weblate.hexxy.media>
Co-authored-by: Koli / Shiromi's mind <komeijikoli@gmail.com>
Co-authored-by: Theo <git@theo.is-a.dev>
Co-authored-by: _Moss_45 <famfiona@yandex.ru>
Language: Russian
Progress: 100.0% (1386 of 1386 strings)
Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/ru/
Translation: Hex Casting/Common
Translations updated in [Hexxy Weblate](https://weblate.hexxy.media) for
[Hex
Casting/Common](https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/).


Included components:

* [Hex
Casting/hexdoc](https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-hexdoc/)



Translation status:

![Weblate translation
status](https://weblate.hexxy.media/widget/hexcasting/1-20/1-20-common/matrix-auto.svg)

> [!WARNING]
> Do not merge this pull request via the merge queue! Instead, select
"Merge without waiting for requirements to be met", then "Create a merge
commit", then "Bypass rules and merge". Make sure to use a regular merge
commit, not a squash commit.

---------

Co-authored-by: Hidden <shyrasan123@users.noreply.weblate.hexxy.media>
Co-authored-by: MegaBee <megabeegaming@gmail.com>
Co-authored-by: ManicTv <zmorra7@gmail.com>
Co-authored-by: KOCTEP <koster@users.noreply.weblate.hexxy.media>
Co-authored-by: Koli / Shiromi's mind <komeijikoli@gmail.com>
Co-authored-by: Theo <git@theo.is-a.dev>
Co-authored-by: _Moss_45 <famfiona@yandex.ru>
Impulse caps the velocity applied to an entity from a single cast at
8192 blocks per tick. Currently, it does not take this limit into
account when determining spell cost (a 10,000-magnitude impulse attempt
will still consume 100,000,000 dust, despite only applying 8192 b/t of
motion). This PR fixes that.
This PR fixes a bug where teleportation spells (such as blink or great
teleport) reset the player's velocity.

This is caused by mc resetting the velocity on client-side when handling
the packet. The exact code that handles teleportation on the client
resets velocity if there's no appropriate relative movement flags
(`RelativeMovement.X`, `RelativeMovement.Y` and `RelativeMovement.Z`).

The fix just adds all the relative movement flags to teleportation. :P

---------

Co-authored-by: Robotgiggle <purplemrb12@gmail.com>
Oddly, while the pages in the book show the media cost for flay mind
recipes, the cost is not shown in EMI.

<img width="551" height="1444" alt="image"
src="https://github.com/user-attachments/assets/9573e15e-2d68-4cee-9c2d-524b5af7039d"
/>

The cost will cycle between being shown in dust, shards, or charged,
just like the book.
If the amount of media cannot be expressed as an exact multiple of dust,
then it'll fallback to a phial instead.

<img width="573" height="300" alt="image"
src="https://github.com/user-attachments/assets/a394d239-5dae-4bb1-b822-898fc5cf42d3"
/>

(Quick test where I temporarily change the cost of quenching to a
non-integer amount of dust.)

---------

Co-authored-by: Robotgiggle <88736742+Robotgiggle@users.noreply.github.com>
…allingColors#1308)

This PR adds a new `toLongNonzero()` method to convert a Double to a
Long while ensuring the output is at minimum 1. This is used to prevent
spells with costs based on player input (Impulse, Blink,
Explode/Fireball, Anchorite/Wayfarer, and the Zeniths/Nadirs) from being
made free by providing an input value so small it gets rounded to zero
when converted to a Long.

This also makes those spells have a nonzero cost even when the input
value actually _is_ zero, since there is still a world interaction in
that case and thus the spell should not be infinitely spammable for
free.

Also, entirely unrelated to the cost clamping, this PR fixes FallingColors#941 - I
was changing stuff in OpPotion anyway, so I figured I'd toss in a fix
here rather than making a separate PR for a single-character change.
A slightly more robust solution to the problem described in FallingColors#1328,
namely that the shift-scrolling mechanics currently do not work on
anything other than spellbooks even if the item in question provides all
the right NBT (or even if it directly extends ItemSpellbook).

FallingColors#1328 resolved the problem by adding a new item tag - here, I've simply
changed the code that previously checked "is this item a spellbook" to
instead check "does this item have the `page_idx` and `page_names` NBT
tags". This means you can simply apply those NBT tags to any item to
allow shift-scrolling it.

This is also in line with the general idea of 1.21's item components,
where simply attaching the component to an item is enough to apply the
relevant functionality to that item, without having to manually
implement it.

<img width="460" height="200" alt="2026-10-11_15 48 50"
src="https://github.com/user-attachments/assets/fecec52e-2677-436b-84ad-37d1f4495d42"
/>
@s5bug s5bug added 1.21 do not squash This PR must not be squash-merged labels Oct 16, 2026
@github-project-automation github-project-automation Bot moved this to 📋 Backlog in Hex Casting Oct 16, 2026
@s5bug
s5bug changed the base branch from main to 1.21 October 16, 2026 03:13

@Robotgiggle Robotgiggle left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Functionality is mostly good, but can this wait until #1331 gets merged and then include that? (if the author doesn't get back to me about the sentinel thing by tomorrow or so, I'm just gonna test ingame to make sure nothing breaks and then merge it)

Also, see the tweaks below for the shift-scrolling feature.


private void abacus(ServerPlayer sender, InteractionHand hand, ItemStack stack, double delta) {
if (ItemSpellbook.supportsPageScrolling(stack)) {
HexAPI.LOGGER.warn("Item stack has spellbook tags but is an abacus! The spellbook tags will be removed.");

@Robotgiggle Robotgiggle Oct 16, 2026 •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be updated to refer to components rather than tags (and should maybe only remove SELECTED_SPELLBOOK_PAGE since that should be the only one checked for now)

@Robotgiggle Robotgiggle Oct 16, 2026 •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In 1.21, spellbooks don't have the page-names component by default anymore, only the page-index one, so as written this no longer allows scrolling on non-renamed spellbooks. You can probably just remove the supportsPageScrolling method entirely and replace its usages with a direct check for the page-index component.

Maybe also replace the supportsPageScrolling doc comment with a comment in HexDataComponents saying something similar, ie "applying this component will enable shift-scrolling, though it won't do much without the other components and a way to read/write the iota"

@github-project-automation github-project-automation Bot moved this from 📋 Backlog to 🏗 In progress in Hex Casting Oct 16, 2026
@Robotgiggle

Robotgiggle commented Oct 16, 2026 •

Copy link
Copy Markdown
Member

Also, this is definitely the sort of thing that should have its own PR, but (in the same vein as the shift scrolling changes) what do you think about changing IXplatAbstractions.INSTANCE.findDataHolder such that any stack with the IOTA_HOLDER_IOTA or SPELLBOOK_PAGES + SELECTED_SPELLBOOK_PAGE components works as a read-only iota holder even if it doesn't actually implement the interface or provide its own read/write methods?

@Robotgiggle

Copy link
Copy Markdown
Member

#1306, #1319 and #1335 have just gone in, so those should probably get included here too.

@s5bug

s5bug commented Oct 16, 2026

Copy link
Copy Markdown
Contributor Author

Will do tmw :D

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

1.21 do not squash This PR must not be squash-merged

Projects

Status: 🏗 In progress

Development

Successfully merging this pull request may close these issues.

7 participants