/reloadAutoReplantConfig wurde hinzugefügt, um die Konfigurationsdatei während des Serverbetriebs neu zu laden, ohne dass ein Serverneustart erforderlich ist. Dieser Befehl ermöglicht das direkte Anpassen von Einstellungen wie auto-tree-felling und tree-felling-cooldown.
Berechtigung erforderlich: Der Befehl kann nur von Spielern mit der Berechtigung autoreplant.reload verwendet werden.
Verbesserungen
Automatischer Baumfällmodus mit Cooldown-Anzeige:
Die Anzeige des Cooldowns erfolgt jetzt über die ActionBar und wird nur angezeigt, wenn der Spieler eine Axt in der Hand hält.
Das automatische Nachpflanzen und Entfernen von Bäumen kann weiterhin konfiguriert werden, um die Benutzererfahrung anzupassen.
Konfigurationsmanagement:
Der tree-felling-cooldown-Wert und auto-tree-felling werden dynamisch aus der config.yml geladen, wodurch Änderungen sofort nach dem Reload wirksam werden.
Alle aktiven Cooldowns werden beim Neuladen der Konfiguration zurückgesetzt, sodass Spieler unmittelbar nach dem Reload das Plugin ohne Verzögerung verwenden können.
settings:
auto-tree-felling: true # Aktiviert das automatische Entfernen des gesamten Baumes
tree-felling-cooldown: 10 # Cooldown in Sekunden
Fehlerbehebungen
Doppelte Cooldown-Timer behoben:
Ein Problem wurde behoben, bei dem nach einem Reload des Plugins mehrere Cooldown-Timer gleichzeitig für denselben Spieler aktiv sein konnten. Jetzt wird sichergestellt, dass jeder Spieler nur einen aktiven Timer hat.
Beim Starten eines neuen Cooldown-Timers wird der bestehende Task für den Spieler abgebrochen und durch den neuen ersetzt.
Speicherlecks verhindert:
Durch das ordnungsgemäße Abbrechen und Entfernen alter BukkitRunnable-Tasks wird nun verhindert, dass nicht benötigte Hintergrundprozesse weiterlaufen, was die Performance verbessert.
Technische Details und Code-Änderungen
Map activeCooldownTasks: Eine neue Map wurde hinzugefügt, die die laufenden Cooldown-Tasks für jeden Spieler speichert. Dies ermöglicht die gezielte Verwaltung der Tasks, indem doppelte Tasks verhindert und alte Tasks ordnungsgemäß abgebrochen werden.
Reload-Befehl erweitert:
Die Maps playerCooldowns und activeCooldownTasks werden beim Neuladen der Konfiguration vollständig geleert. Dadurch werden alle laufenden Cooldowns zurückgesetzt und es wird sichergestellt, dass die neuen Konfigurationswerte sofort aktiv sind.
Verbesserte startCooldownWithActionBar-Methode:
Die Methode gibt nun den Task zurück, sodass dieser Task gespeichert und bei Bedarf abgebrochen werden kann. Der Task zeigt die verbleibende Zeit des Cooldowns über die ActionBar an, wenn der Spieler eine Axt in der Hand hält.