Skip to content

Changes

Started 8 hr 14 min ago
Took 4 min 19 sec

Summary

  1. Support Folia (#3277) (commit: f6aeb51) (details)
Commit f6aeb5150f2609edf079aaa051c7779d2ef2ef7a by noreply
Support Folia (#3277)

* Ajout Folia Supported dans plugin.yml

* Folia ne permet pas de supprimer les NPcs quand il s'arrête

* Replace scheduler dans Citizens.java

* Replace scheduler dans EventListen.java

* Replace scheduler in Metrics.java

* Replace scheduler dans NPCCommands.java

* Replace scheduler dans CitizensNPC.java

* Replace scheduler dans Skin.java

* Replace scheduler dans SkinPacketTracker.java

* Replace scheduler dans SkinUpdateTracker.java

* Replace scheduler dans ProfileFetchThread.java

* Replace scheduler dans ProfileFetcher.java

* Replace scheduler dans ProfileRequest.java

* Replace scheduler dans CommandTrait.java

* Replace scheduler dans PacketNPC.java

* Scordboard not supported on folia

* Replace scheduler dans ShopTrait.java

* Replace scheduler dans OpenShopAction.java

* Replace scheduler dans GuidedWaypointProvider.java

* Replace scheduler dans LinearWaypointProvider.java

* Replace scheduler dans WanderWaypointProvider.java

* Replace scheduler dans Waypoint.java

* Replace scheduler dans DelayTrigger.java

* Replace scheduler dans PlayerAnimation.java

* Replace scheduler dans PlayerUpdateTask.java

* callPossiblySync peut pas être appeler dans Folia

* Ajout d'une vérification sur certaines fonctions pour savoir si nous sommes sur le bon thread

* Replace callPossiblySync dans le NMS

* Support Tracker entity folia

* Replace scheduler dans NMS EntityHumanNPC

* NPCs can spawn

* Fix teleport not async on folia

* Executer une commande sur le bon thread

* Fix double appel super.updatePlayer

* Fix forceload

* On ne peux pas Entity#snapTo sur Folia, on fait une teleportation

* Fix update ticket

* COW ne permet pas de remove (UnsupportedOperationException)

* Enlever la lambda syntax

* Mettre en import SchedulerRunnable

* Changer cancelledUpdatePlayer en cancellableUpdatePlayer

* Cache method handled

* Fix update upstream

* Utiliser snapTo seulement sur la même region

Petite explication: Sur Folia, un déplacement d'entité effectué via snapTo déclenche une mise à jour des sections qui necessite d'être exécutée sur le thread propriétaire de la région initiale.
Cependant, il est possible que ce dernier ne soit pas dans la même region initiale, de ce fait Folia rejette la demande en générant l'erreur: Cannot move entity off-main qu'on se mette sur le thread de l'entité, ou le thread de la future localisation.
De ce fait, je fais une vérification au préalable si c'est le même monde et que la region tické pour l'entité et la future localisation est le même, et si c'est le cas, snapTo fonctionne, sinon il faut lancer une teleportation async.

De ce fait, quand tout est réuni, je garde le fonctionnement initial, sinon on est obligé de teleporter l'entité

* enlever le commentaire todo

* Remove Util#callPossiblySync

* Etre sur que NpcRegistry et TraitFactory n'ai pas de problème de concurrence

* Fix duplicatation avec le rebase

* Fix method name

* Packet rewriting cannot be supported on Folia, because to call entities, it must be done on their thread, so there will be a 1-tick delay, therefore it is not currently supported.
(commit: f6aeb51)
The file was modifiedmain/src/main/java/net/citizensnpcs/Metrics.java (diff)
The file was modifiedv1_21_R5/src/main/java/net/citizensnpcs/nms/v1_21_R5/util/CitizensEntityTracker.java (diff)
The file was modifiedmain/src/main/java/net/citizensnpcs/npc/ai/CitizensNavigator.java (diff)
The file was modifiedmain/src/main/java/net/citizensnpcs/trait/ShopTrait.java (diff)
The file was modifiedmain/src/main/java/net/citizensnpcs/npc/CitizensTraitFactory.java (diff)
The file was modifiedmain/src/main/java/net/citizensnpcs/trait/waypoint/WanderWaypointProvider.java (diff)
The file was modifiedmain/src/main/java/net/citizensnpcs/util/NMS.java (diff)
The file was modifiedmain/src/main/java/net/citizensnpcs/commands/NPCCommands.java (diff)
The file was modifiedmain/src/main/java/net/citizensnpcs/trait/HologramTrait.java (diff)
The file was modifiedmain/src/main/java/net/citizensnpcs/Citizens.java (diff)
The file was modifiedv1_21_R5/src/main/java/net/citizensnpcs/nms/v1_21_R5/entity/EntityHumanNPC.java (diff)
The file was modifiedmain/src/main/java/net/citizensnpcs/npc/skin/Skin.java (diff)
The file was modifiedmain/src/main/java/net/citizensnpcs/trait/CommandTrait.java (diff)
The file was modifiedmain/src/main/java/net/citizensnpcs/trait/SitTrait.java (diff)
The file was modifiedmain/src/main/java/net/citizensnpcs/util/Util.java (diff)
The file was modifiedmain/src/main/java/net/citizensnpcs/trait/waypoint/triggers/DelayTrigger.java (diff)
The file was modifiedmain/src/main/java/net/citizensnpcs/npc/CitizensNPC.java (diff)
The file was modifiedmain/src/main/java/net/citizensnpcs/trait/waypoint/GuidedWaypointProvider.java (diff)
The file was modifiedmain/src/main/java/net/citizensnpcs/util/PlayerUpdateTask.java (diff)
The file was modifiedv1_21_R5/src/main/java/net/citizensnpcs/nms/v1_21_R5/entity/HumanController.java (diff)
The file was modifiedv1_21_R6/src/main/java/net/citizensnpcs/nms/v1_21_R6/entity/EntityHumanNPC.java (diff)
The file was modifiedv1_21_R7/src/main/java/net/citizensnpcs/nms/v1_21_R7/util/NMSImpl.java (diff)
The file was modifiedmain/src/main/java/net/citizensnpcs/npc/skin/profile/ProfileFetcher.java (diff)
The file was modifiedmain/src/main/resources/plugin.yml (diff)
The file was modifiedmain/src/main/java/net/citizensnpcs/trait/PacketNPC.java (diff)
The file was modifiedmain/src/main/java/net/citizensnpcs/util/NMSBridge.java (diff)
The file was modifiedmain/src/main/java/net/citizensnpcs/util/ChunkCoord.java (diff)
The file was modifiedv1_21_R7/src/main/java/net/citizensnpcs/nms/v1_21_R7/entity/EntityHumanNPC.java (diff)
The file was modifiedmain/src/main/java/net/citizensnpcs/npc/EntityController.java (diff)
The file was modifiedv1_21_R7/src/main/java/net/citizensnpcs/nms/v1_21_R7/util/CitizensEntityTracker.java (diff)
The file was modifiedmain/src/main/java/net/citizensnpcs/npc/CitizensNPCRegistry.java (diff)
The file was modifiedmain/src/main/java/net/citizensnpcs/npc/skin/SkinPacketTracker.java (diff)
The file was modifiedmain/src/main/java/net/citizensnpcs/trait/PausePathfindingTrait.java (diff)
The file was modifiedv1_21_R6/src/main/java/net/citizensnpcs/nms/v1_21_R6/util/NMSImpl.java (diff)
The file was modifiedmain/src/main/java/net/citizensnpcs/EventListen.java (diff)
The file was modifiedmain/src/main/java/net/citizensnpcs/trait/waypoint/Waypoint.java (diff)
The file was modifiedmain/src/main/java/net/citizensnpcs/npc/skin/profile/ProfileFetchThread.java (diff)
The file was modifiedmain/src/main/java/net/citizensnpcs/util/PlayerAnimation.java (diff)
The file was modifiedmain/src/main/java/net/citizensnpcs/trait/waypoint/LinearWaypointProvider.java (diff)
The file was modifiedmain/src/main/java/net/citizensnpcs/npc/skin/profile/ProfileRequest.java (diff)
The file was modifiedmain/src/main/java/net/citizensnpcs/trait/ScoreboardTrait.java (diff)
The file was modifiedv1_21_R6/src/main/java/net/citizensnpcs/nms/v1_21_R6/util/CitizensEntityTracker.java (diff)
The file was modifiedv1_21_R5/src/main/java/net/citizensnpcs/nms/v1_21_R5/util/NMSImpl.java (diff)
The file was modifiedmain/src/main/java/net/citizensnpcs/npc/AbstractEntityController.java (diff)
The file was modifiedmain/src/main/java/net/citizensnpcs/trait/shop/OpenShopAction.java (diff)
The file was modifiedmain/src/main/java/net/citizensnpcs/npc/skin/SkinUpdateTracker.java (diff)