Ich hab mein Manager tool umgeschrieben und es benutzt jetzt die Serverliste, die server werden wegen http nicht direkt angesprochen sondern laufen über ein proxy backend, welches die daten der server auch cached damit diese nicht ständig unter Beschuss stehen. Das backend holt also regelmäßig die liste sowie die daten der server ab und gibt die daten dann an das Frontend weiter. Aktuell hab ich für die Erkennung des server admins einen kleinen hack eingebaut, wenn man die steamid in contact einträgt und man sich mit steam angemeldet hat (selbe id) gilt man als server admin, aktuell kann man damit aber noch nicht viel machen ![]()
Posts by Devidian
A new update (0.9.3) is available now!
-
-
da ist man mal afk coden und dann sowas, nächstes mal schließe ich ab

-
Wo wir hier gerade bei Zeit sind, hätte ich auch ein paar fragen.
1. Die Schlafenszeit ist ja jetzt abhängig von der Jahreszeit, kann ich die irgendwo abfragen? In meinem AdminUtils Plugin habe ich eine funktion die das spiel beschleunigt solange nicht alle schlafen, ich habe hier aber fixe 21/7 uhr noch drin, die man zwar in der config anpassen kann aber halt global und nicht dynamisch.
2. Ich beschleunige die Zeit aktuell auf 0.5f weil kleinere werte irgendwie die Zeit auch hin und her springen lassen und die Uhr nicht sauber läuft, ist das die maximale Zeitbeschleunigung?
-
Alles klar! Die Plugin-Klasse selbst erhält dann die Möglichkeit eine Route zu registrieren (zB registerWebserverHandler()), bei welcher der Pfad angegeben werden kann sowie optional auch ein Handler für die Requests. Die Route wird dann (um Kollisionen zu vermeiden) immer "/plugins/pluginname/<pfad>" sein. Zusätzlich zum Handler gibts aber dann auch ein neues HttpRequestEvent, aus welchem du die Http-Methode (GET, POST, PUT etc), den Pfad, Query Parameter, Header, Body (byte[] sowie String) und Remote-Adresse erhalten kannst. Für die Response kannst du dann den Response-Code, ContentType, Response-Header sowie -Body setzen

Sowas war mal vorgesehen, allerdings haben wir das erstmal nicht reingepackt, damit von außen nicht ersichtlich ist, welche Plugins ein Server explizit verwendet... kA ob es überhaupt sinnvoll ist, aus sowas ein Geheimnis zu machen, bzw. ob manche Server-Admins evtl. nicht wollen, dass ihre Plugins preisgegeben werden?

Dafür könnte man ja ein exposePlugins in die server.properties einfügen was per default false ist. Wenn ich meine Plugins dann entsprechend anpasse, werde ich genau so vorgehen, so war der plan.
-
Mithril und Adamant 😅
-
Also nochmal als Feedback, sowohl der UseSerialGC als auch UseParallelGC haben bisher keinerlei Fehler oder Abstürze verursacht. Aktuell läuft alles rund.
-
Wenn das am einfachsten ist, wäre das perfekt denke ich. 👍
vielleicht könntest du auch noch eine route integrieren die auch ohne plugins funktioniert /pluginlist die eine liste der installierten plugins + version zurück gibt? Das würde nativ wahrscheinlich mehr sinn machen, könnte man auch für andere consumer verwenden.
-
red51 wäre es evtl möglich über den integrierten webserver plugindaten bereitzustellen? Ich überlege gerade wie es möglich wäre z.b. die karten-oberflächendaten bereitzustellen ohne das man zusätzlich noch mein nodejs backend auf dem server installiert haben muss. Das ist in den meisten Fällen wahrscheinlich eh nicht so ohne weiteres möglich. Es würde reichen wenn ich über ein plugin eine Datei erstellen kann, z.b. json und die dann so speichern kann das es über den webserver abrufbar ist. Gut für die Oberflächendaten wäre wahrscheinlich eine sqlite kopie sinnvoller aber war ja auch nur ein beispiel, obs jetzt eine json Datei oder eine db Datei ist kommt aufs selbe raus. Jedenfalls muss es kein route handler sein der auf anfragen reagiert oder sowas.
-
v0.8.2 - enhanced PlayerInfo
- Langer PlayerInfo-Text ist vertikal scrollbar.
- Neue Admin-Settings:
- newPlayerInfo.widthPercent (20–95, Standard 42)
- newPlayerInfo.heightPercent (24–95, Standard 36)
-
You need to set the following:
# On small servers the bot can cause OutOfMemory crashes. In that case keep botEnable=false.
botEnable=true
# Your bot token from https://discord.gg/aq56PnbXhM/<YOUR_APP_ID>/bot
botToken=...eventChannelId=...
chatChannelId=...
statusChannelId=...
supportChannelId=...
-
Ingame gibt es keinen rich text editor, wie genau die formatiertung ist weiss ich nicht, ich denke wie bei der formatierung der server beschreibung. <color=red> .. und so.
Normal mache ich bei jedem update einen neuen update post aber ich habe alle infos zurückgehalten wegen der timeout probleme.... aber da es mit dem UseParallelGC zumindest vorübergehend Abhilfe gibt... dachte ich ist es okay jetzt einmal eine info raus zu hauen.
-
bis ein anderes Feature kommt das für "alle" relevant ist, kannst du auch 0.6.0 verwenden. OZTools immer auf die aktuellste Version bitte.
bei tools auch lib aktualisieren, ich erwähne das weil du ja immer nur die jar tauscht

-
Auch hier ein neues Update, Hauptfeature das für alle dazu gekommen ist, ist die Möglichkeit ein Info Fenster zu definieren. In den Admin Einstellungen kann man text hinterlegen der angezeigt werden soll wenn ein Spieler den Server betritt. Der Spieler kann dann den Text bestätigen oder bestätigen und "nicht mehr anzeigen" wählen damit er den dialog nicht jedes mal beim Login bekommt.
Es gibt noch ein anderes Feature das die Oberflächendaten von chunks sammelt auf denen Spieler sich bewegen, dieses feature ist aber per default deaktiviert und nicht ohne eine weitere (noch nicht von mir freigegebene) Komponente benutzbar. Mit diesem Feature lässt sich in Zukunft eine Online-Karte der Spielwelt erstellen, dafür muss ich aber das Backend das die Karten erstellt noch freigeben. Wird auch nur Funktionieren wenn man entsprechenden Zugriff auf seinem Server hat, ist also nicht für jeden (daher default deaktiviert). Ich überlege mir da aber noch eine Lösung die auch für normale Server funktioniert. Hier mal ein teaser: https://gs1.omega-zirkel.de/rwman/setup bei der Auswahl auf dedizierter Server klicken (rechts), dann einen Server wählen und auf Karte klicken.
## [0.8.1] - 2026-06-14 | Worker diagnostics
- feat: log map source persistence worker lifecycle through Tools diagnostics
## [0.8.0] - 2026-06-13 | Map chunk scan radius
- feat: add configurable square map chunk scan radius with center-first tick-distributed capture
- change: increase the default per-chunk map capture cooldown from 30 to 60 seconds
## [0.7.0] - 2026-06-13 | Raw map source capture
- feat: replace command-driven plugin PNG generation with settings-controlled departed-chunk source capture
- feat: add the V2 map source schema, deterministic blob/hash contract, dedicated SQLite lifecycle, and idempotent upsert
- feat: add per-chunk map capture cooldown and debug timing logs for successful source updates
- change: remove `/au mapgen` and all plugin-side PNG, metadata, and tile-pyramid generation
## [0.6.0] - 2026-06-08 | New-player information panel
- fix: handle player death causes newer than the bundled PluginAPI without failing the event handler
- fix: prevent theft prison replacements from applying lethal punishment before incarceration
- fix: widen the prison detail pardon action button
- feat: add optional admin-managed new-player info panel with persistent player opt-out
- fix: edit new-player info text as multiline admin text with a larger character limit
- feat: add Admin Utils player settings for info-panel re-enable and shortcut visibility
- change: register Admin Utils with shared player-aware shortcut visibility and close SQLite on shutdown
-
Next version is now official released. Main feature is a configurable total playtime requirement for accessing non static gps markers, default is 15 minutes. So in other words new players need to stay 15 minutes on the server before they have access to private,group or global marker.
## [0.6.0] - 2026-06-08 | Access rules and sector pricing
- feat: require configurable total playtime for non-static GPS features while keeping static markers available
- feat: make `travelCostMode` editable through the shared admin settings select control
- change: calculate distance travel costs from sector distance with `base + sectorDistance * base`
- refactor: migrate GPS marker persistence from deprecated Tools `SQLite` to `SQLiteConnectionFactory`
- feat: add GPS shortcut visibility setting for `/ozt` and inventory shortcuts
- change: remove obsolete shared escape-close registrations pending future API support
-
Hey folks, an update is coming. It brings a new type of special area called "static" for admins. In this area other players cant pickup anything by default. This can be used to setup Shops for the shop plugin, where you want to have a neutral zone with decorations that nobody can pickup.
Another thing that has changed is the icons, i know not everybody might like them but i wanted to have some kind of consistency for the icons, and as i made ai icons for all other plugins i made ai icons for landclaim too now.
## [0.11.2] - 2026-06-13 | Permission UI and claim icon
- refactor: align area permissions with the shared plugin overlay layout
- fix: move area owner status to the footer and use the inherited top-right close button
- fix: improve special-area name contrast on the dark chunk-info overlay
- fix: use the available owned-claim icon for the extra-claim Shop offer
## [0.11.1] - 2026-06-11 | Restore deleted icon
- fix: restore deleted icon
## [0.11.0] - 2026-06-10 | Static area support and new icons
- feat: new special area "static" added, like "visitors only" area
- change: exchanged all flat icons with AI created icons to align with other plugins
## [0.10.0] - 2026-06-08 | Shortcut visibility and shutdown cleanup
- feat: add LandClaim player shortcut visibility setting for `/ozt` and inventory shortcuts
- change: remove obsolete shared escape-close registrations pending future API support
- change: close LandClaim SQLite connection on plugin shutdown
-
This update has no real features regarding the plugin scope, but it has several internal code stability improvements.
## [0.15.1] - 2026-06-13 | Callback thread safety
- fix: dispatch WebSocket-driven game operations onto the server thread
- fix: parse WebSocket payloads before dispatching game operations
- refactor: dispatch immutable relay message values instead of mutable parsed entities
- test: cover broadcast and player-event relay parsing
- fix: separate transport-only WebSocket sends from player-aware response handling
- fix: avoid retaining `Player` objects in asynchronous screenshot callbacks
## [0.15.0] - 2026-06-08 | Persisted player settings
- feat: add Global Intercom player shortcut visibility setting for `/ozt` and inventory shortcuts
- change: persist Global Intercom player runtime settings through shared `PlayerSettings`
- change: use one-time plugin i18n loading during enable
-
This update focusses on a dependency change. JavaCord is replaced with JDA because development for JavaCord stopped. Zhis update also includes several code improvements.
## [0.23.0] - 2026-06-15 | JDA migration
- change: replace JavaCord with lifecycle-bound JDA 6.4.2
- feat: convert Discord chat and slash-command callbacks into immutable DTOs before server-thread dispatch
- feat: defer slash-command replies immediately and answer results on the bounded Discord transport worker
- fix: parse `botAdmins` as exact Discord snowflake IDs and reject legacy names or partial matches
- fix: normalize all command and option names to Discord-compatible lowercase
- feat: send oversized help and banned-player results as text files
- fix: use one lifecycle-bound Apache async HTTP client for all webhook sends
- fix: queue server-start status behind JDA startup, preserve the client for queued shutdown status, and keep webhook status independent from bot enablement
- change: update HttpClient to 5.6.1, Gson to 2.14.0, JUnit to 4.13.2, and OZTools to 0.22.0
## [0.22.2] - 2026-06-14 | Timer lifecycle
- fix: bind restart and activity timers to plugin enable/disable lifecycle
- feat: log Discord transport worker lifecycle through Tools diagnostics
## [0.22.1] - 2026-06-13 | Callback thread safety
- fix: dispatch JavaCord listeners, restart timers, activity updates, and screenshot notifications onto the server thread
- fix: avoid retaining `Player` objects in asynchronous screenshot callbacks
- fix: avoid blocking the server thread while waiting for Discord slash-command responses
- fix: move webhook and text-channel transport onto a bounded lifecycle-owned worker
## [0.22.0] - 2026-06-08 | Chat shortcut parsing
- fix: parse `+s`, `+sng`, and `+t` chat shortcuts at end-of-message or before whitespace
- feat: add Discord Connect player shortcut visibility setting
-
Ein kleines Update, eigentlich war das Ziel die Erkennung der Region beim Erkunden neuer Sektoren, ist aber noch nicht so zuverlässig, jedenfalls steht nicht mehr unknown dran... sobald die API die funktionalität her gibt wird das PRoblem gefixt.
Ich habe dennoch ein Release gemacht weil man nun auch den shortcut button verstecken kann.
## [0.3.0] - 2026-06-08 | Region-based discovery
- feat: resolve sector discovery regions through Tools `RegionHelper`
- feat: add player setting to hide the Rewards shortcut from `/ozt` and the inventory shortcut panel
-
Ein etwas größeres update ist nun offiziell von mir freigegeben. Mit diesem Update wird dynamische Wirtschaft eingeführt. Spieler können über den systemshop items kaufen und verkaufen.
Admins können frei konfigurieren welche items angeboten werden. Sie können ausserdem für jeden shop eine eigene Konfiguration laden, so kann man z.b. einen Shop für Grundbedarf oder einen für Agrargüter anlegen, oder einen für Fundsachen.
Admins können dabei für jedes item verschiedene Einstellungen vornehmen, unter anderem:
- Initiale und Maximale Lagerbestände sowie Ziel-Lagerbestand
- Grundpreis (der Preis den ein Item hat wenn es sich im Ziel-Lagerbestand befindet
- Ob ein item nur von Spielern gehandelt werden kann ..
- ... oder ob das system die items bis zum zielbestand langsam auffüllt oder verbraucht.
- ob ein item nur gekauft oder nur verkauft werden kann oder beides
Known issues:
- das nachfüllen der items scheint noch nicht immer regelmäßig zu funktionieren.
## [0.2.1] - 2026-06-13 | Sword offer classification
- fix: classify and enable the common `sword2` system offer
## [0.2.0] - 2026-06-08 | Dynamic economy and shop zones
- fix: close the radial menu before building and opening the Shop overlay
- fix: mark unresolved constructionitem and clothingitem offers invalid and disabled
- build: generate the runtime system-offers.default.json from the complete offer catalog without invalid or unclassified offers
- perf: preload active system-offer icons during server startup
- change: classify invalid system offers as disabled static goods and exclude them from tier splits
- change: classify volcanic rock and sandstone as T1 basic stone resources
- change: enable all tradeable classified default system offers and price unclassified offers at 500
- build: split default system offers into always-enabled per-tier JSON files for distribution
- change: classify safe default-offer food, animal-product, small-animal, seed, and sapling families and apply tier stock defaults
- change: standardize comparable fish and meat prices by raw, cooked, dried, and burned processing state
- fix: keep system-shop stock updates, stock rules, and ticks active when dynamic stock pricing is disabled
- fix: make system-offer JSON definitions authoritative on reload while preserving DB runtime stock and counters only
- change: deprecate `/shop economy` DB definition overrides; admins should edit JSON and run `/shop reload`
- change: replace default system-offer `sellEnabled`/`buyEnabled` output with `isEnabled` and derive buy/sell capability from `stockMode`
- fix: treat `STATIC` system-shop stock as unlimited and ignore sell limits for modes that do not accept player sales
- fix: apply an effective minimum restock for unconfigured `SYSTEM_SUPPLIED` offers
- docs: add the default system-offer conversion audit under `docs/active/`
- feat: add admin-only current Shop-Zone overlay tab for area marking, zone naming, offer-file selection, systemshop mode, zone removal, and scoped stock reset
- fix: price dynamic-economy bulk system-shop trades as stepped per-item stock changes instead of one bulk multiplier
- fix: disable selected system-shop buy and sell actions for zero quantity and unavailable trades
- change: show system-shop card item names without quantity prefixes and locale-aware dynamic card unit prices with three decimals
- change: color Shop action buttons by economy meaning and avoid disabled-state hover geometry issues
- fix: use German umlauts in Shop economy labels
- fix: keep selected-offer sell button position stable when toggling disabled state
- feat: show selected system-offer buy and payout previews for the entered amount
- fix: prevent partial item removal when a system-shop sell amount exceeds matching inventory
- fix: disable selected-offer sell action when the entered amount exceeds matching inventory
- change: remove background and border from compact Shop Wallet balance chips
- fix: move Shop Wallet balances above the full overlay panel and compact the selected-offer admin controls
- fix: preview selected system-offer sell payouts for the currently entered amount
- feat: show compact Wallet currency balance chips above the Shop overlay body
- feat: add admin-only selected system-offer economy diagnostics and target-stock reset action
- change: remove redundant system-offer card select text while preserving selected-card styling
- change: require OZTools 0.21.0 for shared shortcut visibility
- feat: add a Shop overlay Sell tab for system-shop buyback offers
- feat: read default stock, drain, and refill values from system-offer JSON
- feat: persist shop zones, per-zone offer-file selection, stock, drain/refill rates, and trade stats in world-scoped SQLite
- feat: add `/shop buy <offer-id> [quantity]`, `/shop sell <offer-id> [quantity]`, `/shop zoneoffers`, `/shop stock`, and `/shop economy`
- feat: add central `systemShopCurrency` and omit legacy per-offer currency/price fields from generated default offers
- feat: add stock-based dynamic system-offer prices with min/max multipliers and enforced buy/sell spread
- fix: reject player system-shop sales before payout when the scoped stock limit would be exceeded
- fix: check dynamic system-shop stock against the full requested quantity
- feat: add additive dynamic-economy offer fields for target tick placeholders and daily sell limits
- feat: persist and enforce per-player and global daily system-shop sell limits before inventory removal and Wallet payout
- feat: apply automatic economy ticks only for `SYSTEM_SUPPLIED` and `HYBRID` stock modes
- feat: add target-stock percent/max drain and restock tick behavior with legacy hourly rates as fallback
- feat: show stock mode and daily sell-limit status on system-shop cards and selected-offer details
- feat: add system-shop offer search and keep the offer list position stable when selecting an offer
- fix: localize stock-mode labels in the Shop overlay
- fix: resolve object-kit variants, including large object kits, to concrete object names in generated exports
- change: replace default system offers with the T7/T11 base-economy offer set and reprice remaining export-default `basePrice=100` placeholders
- docs: add Shop economy classification and raw material pricing reference docs
- feat: show selected-offer economy block reasons for dynamic stock and sell-limit rules
- feat: persist scoped economy overrides for stock mode, target/max stock, dynamic price settings, target ticks, and sell limits
- fix: backfill scoped target stock and stock limits from offer defaults for existing economy rows that have no explicit economy override
- fix: synchronize default system offers with all current dynamic-economy JSON fields
- change: remove deprecated `drainRate` and `refillRate` from default system offers and generated exports
- fix: preserve default daily sell limits when system offers are reloaded and backfill unconfigured economy rows
- feat: resolve generic construction, clothing, and best-effort plant item exports to concrete definition names
- feat: let admins open the Shop radial management menu from shared shortcuts while normal players open the direct shop overlay
- feat: add player setting to hide the Shop shortcut from `/ozt` and the inventory shortcut panel
- change: remove obsolete shared escape-close registration pending future API support
- docs: update Shop Plan 04 persistence and dynamic economy documentation
-
## [0.4.0] - 2026-06-08 | Admin wallet overview
- feat: add Wallet player shortcut visibility setting for `/ozt` and inventory shortcuts
- change: remove obsolete shared escape-close registration pending future API support