Chunk lifecycle events with chunk systems that replace vanilla's (e.g. Moonrise)
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 15/100
Direzione di ricerca
The events come from mixins into ChunkStatusTasks.full, ChunkMap.scheduleUnload and ChunkHolder.updateFutures, which Moonrise replaces. Read the existing chunk event mixins and how NeoForge's ChunkEvent.Load/Unload are posted. The open question is who owns dispatch, so agree on a design with maintainers before writing code. Done means the events fire once with other chunk systems installed.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
FFAPI fires ServerChunkEvents.CHUNK_LOAD, CHUNK_GENERATE, CHUNK_UNLOAD and FULL_CHUNK_STATUS_CHANGE from mixins into vanilla ChunkStatusTasks.full, ChunkMap.scheduleUnload and ChunkHolder.updateFutures. Moonrise replaces those code paths, so with Moonrise installed none of these events fire, and LoadedChunksCache stays empty (Tuinity/Moonrise#210). Moonrise does post NeoForge's ChunkEvent.Load/Unload.
On Fabric, Moonrise fires the Fabric API events itself. On NeoForge we're unsure where this should live. If Moonrise fires FFAPI's events and FFAPI later starts translating NeoForge's chunk events, everything would fire twice. If FFAPI translates NeoForge's events, the timing changes slightly: on plain NeoForge, ChunkEvent.Unload is posted after the chunk is saved, while Fabric API's CHUNK_UNLOAD fires before it. FULL_CHUNK_STATUS_CHANGE has no NeoForge equivalent either way.
How would you prefer to handle this, so these events work with other chunk systems without risking double dispatch?
- Lingua principale
- Java
- Stelle
- 181
- Fork
- 41
- Merge medio
- 16h 38m
- PR unite (30g)
- 1
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Sinytra/ForgifiedFabricAPI
-
1.21.x bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
Sinytra/ForgifiedFabricAPI#276 ·
-
1.21.x bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 42/100
Sinytra/ForgifiedFabricAPI#269 ·
-
1.21.x bug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 53/100
Sinytra/ForgifiedFabricAPI#267 ·
-
1.21.x bug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 48/100
Sinytra/ForgifiedFabricAPI#265 · 6 commenti ·
-
1.21.x bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
Sinytra/ForgifiedFabricAPI#263 · 2 commenti ·
Tutte le issue di Sinytra/ForgifiedFabricAPI
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
Dans-Plugins/Medieval-Roleplay-Engine#396 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 6 giorni
-
type: dependency-upgrade
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 70/100
spring-projects/spring-session#4156 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
quarkiverse/quarkus-langchain4j#3127 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
HotswapProjects/HotswapAgent#688 ·