Posts by Devidian

A new update is now available, introducing "Points of interest" and many more changes!
Latest hotfix: 0.9 (2025-11-05)

    yes it seems so, i did it too, marked it as workaround in the comments. For now its ok to work with.

    BTW this is my method to create the area:



    And i call it like this:


    Some exceptions i got while testing:


    Code
    java.lang.NullPointerException: Cannot read field "handle" because "net.risingworld.api.objects.Area.INFINITE" is null
    at net.risingworld.api.objects.Area.destroy(Area.java:393)
    java.lang.NullPointerException: Cannot read field "handle" because "net.risingworld.api.objects.Area.INFINITE" is null
    at net.risingworld.api.objects.Area.setStartPosition(Area.java:307)
    java.lang.NullPointerException: Cannot read field "handle" because "net.risingworld.api.objects.Area.INFINITE" is null
    at net.risingworld.api.objects.Area.set(Area.java:328)

    Im not sure (joking) but a public static final field should not be NULL ? red51

    The docs say addGameObject should not be called so often, so i tried to update the Area3D object but it seems not to update it actually :D



    Its for my current plugin im working on Land Claim - (i started it for the Java version but never finished it before the unity news).

    Its an option to turn on borders of the current chunk, if the player moves to another chunk with active option the virtual border is updated to the chunk he enters.

    The player does not need to set any area, its calculated from the chunk he enters, so in theory the tool is not even needed but if i do not activate it, the area is not shown.

    Your way is good to know but i think i would have to (re)move it somehow if the player moves or disables this feature.

    edit: Ii just walked through the javadoc, maybe i can use setAttribute to store a ref to the area3d too, so i can update it on change or remove it precisely.

    Hey i currently try to show a virtual area but its not what i like it should be....

    Ok first i tried

    player.enableAreaSelectionTool(false);

    player.setAreaSelectionData(area);

    but i dont want to have the selection tool activated, just show the area. If i then call


    player.disableAreaSelectionTool();

    the selection is invisible again... i tried many things but could not get it as i like it.

    Only once it closely behaved like i wanted it, but that was after many plugin reloads and gm switches.
    After relog it was not behaving like i wanted it again.

    UPDATE:

    I've managed to to a trick to get it working like i want it to:

                        if (!player.hasAttribute("selectionToolHack")) {
                            player.setAttribute("selectionToolHack", true);
                            player.enableAreaSelectionTool(false);
                            player.enableAreaSelectionTool(false);
                            player.disableAreaSelectionTool();
    }

    If i call enable twice and disable afterwards the visibility seems to stay but the selectiontool stays disabled. This is not as elegant as i was looking for but still its working for now. I only need to do this hack once a session so i added a player attribute.

    server header is the header image you can set, i get this message too because i didn't set it up. It is not critical.


    [ERROR] [17:03:10] Cannot find server header: '' (full path: /appdata/rising-world/dedicated-server/)


    See server.properties:


    # Relative path to an optional server header image (shown in server browser if user selects the server). Recommended size: 1024x512 px
    Server_CustomHeaderImage=

    Hier noch mal zur Veranschaulichung:


    LOCAL in rot weil ich admin bin und im spiel chat geschrieben habe, LOCAL in diesem leichten fliederton kommt aus dem discord (farben können auch über properties angepasst werden) und geht an alle spieler. Das dunkel lila kommt aus discord über `/broadcast [channel] [text]` den channel kann man hier selber definieren, geht in der regel an alle aber so kann man die chat nachricht nochmal taggen. und zuletzt [SUPPORT] geht nur an den spieler der im discord verwendet wurde mit `/support [NAME] [TEXT]`

    in der v0.16.11 sind jetzt 2 neue properties dazugekommen um den prefix also das "[LOCAL] " selbst zu definieren (kann man theoretisch also auch leer lassen "", hab ich aber nicht getestet) und um die nachricht im discord anzupassen. Default ist hier jetzt "[chat] NAME: TEXT" also ohne >

    https://github.com/Devidian/rw…iscordConnect-0.16.11.zip

    Die Übertragung ist eigentlich immer relativ Zeitnah, mir ist aber gestern auch aufgefallen das meine Nachrichten schneller im Discord waren als die eines anderen Spielers, vielleicht Discord lag, war sonst auch nicht.

    Die offline Nachricht wird nur gesendet wenn der Server ordnungsgemäß heruntergefahren wird. Er muss die Plugins entladen, dort wird vor dem kappen der Verbindung die Nachricht abgesetzt. Wenn der Server also einfach beendet wird kommt auch keine Nachricht. Das habe ich auch immer wenn ich meinen Docker container einfach hart neu starte.

    Ja die Nachrichten im Chat sind solala, ich finde es eigentlich auch schöner über Webhooks. Da sieht es dann so aus:


    das lokal bedeutet im spiel das es der normale chat ist. Wenn man als admin eine support Nachricht aus dem discord an einen spieler schickt also /support spielername text dann steht im spiel nicht [lokal] sondern [support].


    Ich kann aber mal gucken das ich eine Konfigurierbare Einstellung daraus mache, irgend ein ersetzungsstring wie "[PLAYER_NAME][MESSAGE]" das wäre dann per default "[chat] [PLAYER_NAME] :> [MESSAGE]"

    Ahh okay, also da sehe ich das Problem, der packaging prozess hat die Dateien nicht in einen Ordner verpackt, ich habe gerade neue deployments angestoßen sodass beide Plugins jetzt auch in Ordnern verpackt sind. Aktuell hast du alle ordner im root liegen, die kannst du löschen

    assets ordner
    i18n ordner
    lib ordner

    HISTORY.md

    README.md


    die settings kannst du natürlich behalten und die einstellungen dann übernehmen. Bitte lade die aktuellen versionen Tools 0.9.3 und DC 0.16.9 herunter.

    https://github.com/Devidian/rw…/v0.9.3/OZTools-0.9.3.zip
    https://github.com/Devidian/rw…DiscordConnect-0.16.9.zip


    War mein Fehler, benutze zum ersten mal GitHub actions für auto-deployments mit Maven 😅

    PS: Hab noch einen ci bug entdeckt, er packt die jars falsch 🤬😡 ich muss morgen gucken warum die jar files leer sind. da sind nur metadaten drin. hatte mir ein script geschrieben für einen dev server um da neue plugins zu testen und wunderte mich warum er die main klasse nicht finden kann.

    OZ DiscordConnect Plugin

    This plugin connects your Rising World server with Discord.
    It supports chat forwarding, event messages, status updates and more.


    Requirements

    • Rising World (Unity) Server
    • OZTools Plugin (required for auto-reload and file watching and libraries)
    • OZ DiscordConnect Plugin

    Download both plugins:

    DiscordConnect Download
    OZTools Download


    Installation

    • Place both plugin ZIP files into your plugins/ folder.
    • Restart your server.
    • The first startup creates a file named settings.properties based on settings.default.properties.
    • Edit settings.properties to configure the plugin.

    Automatic Reloading

    Thanks to OZTools:

    • The settings.properties file is automatically reloaded when changed.
    • When you replace a plugin JAR (for updates), OZTools detects it and reloads all plugins automatically. (can be disabled)

    Configuration

    Edit the generated settings.properties file.
    These entries should be customized:

    Direct or Webhook Mode

    You can run the plugin in two ways:

    • Direct Mode use *ChannelId properties
    • Webhook Mode use webHook*Url properties

    Features

    • Two-way chat between server and Discord
    • Event messages (join/leave/death)
    • Status updates (server online/offline)
    • Support channel forwarding
    • Automatic configuration reload
    • Almost all messages are translated in german, english or russian, more can be added easily on request
    • Automatic plugin reload on update (via OZTools) [can be disabled in settings.properties of OZTools]

    Updating

    Simply overwrite the plugin files with the newest versions.
    OZTools will detect the changes and reload all plugins automatically.


    Support

    If you need help or found a bug, feel free to reply in this thread.

    English: Second post!

    🌐 DiscordConnect – Die moderne Discord-Integration für Rising World

    Hinweis: Benötigt zusätzlich das OZTools-Plugin (keine Konfiguration nötig).

    Einleitung

    Ich habe mein altes DiscordPlugin komplett überarbeitet und als DiscordConnect neu veröffentlicht. Es verbindet euren Rising-World-Server zuverlässig mit Discord und bietet viele nützliche Features für Community-Server.

    🎉 Features

    • Bidirektionaler Chat
      • Spiel ↔ Discord
    • Übersetzt in mehrere Sprachen
      • Das Plugin unterstützt mehrere Sprachen, weitere können leicht hinzugefügt werden (auf anfrage)
      • Aktuell: deutsch (de), englisch (en), russisch (ru)
    • Screenshots direkt ins Discord
      • +screen / +s – mit GUI
      • +screennogui / +sng – ohne GUI (NEU)
    • Koordinaten teilen
      • +tp sendet Position in Chat & Discord (NEU)
    • Spiel-Event-Tracker im Discord
      • Spieler ist beigetreten
      • Spieler hat das Spiel verlassen
      • Spieler gestorben
      • Spieler hat ein Objekt entfernt (mit Koordinaten)
      • Spieler hat ein Objekt zerstört (mit Koordinaten)
      • Server wurde heruntergefahren
      • Server ist gestartet
      • Wetter Änderung
      • Jahreszeit Änderung
      • Tiere getötet
      • Reittiere getötet
    • /support Befehl
      • sendet Support-Anfragen inkl. Screenshot & Koordinaten ins Discord
    • Planbare Server-Reboots
      • mit Wartezeit, falls Spieler online sind
    • Webhooks oder Bot-Channel-IDs konfigurierbar
    • Discord Slash-Commands

      • Slash commandBeschreibung
        /restartLeitet einen server Neustart ein
        /kick [player] [reason]Kickt einen Spieler vom Server
        /ban [player] [duration] [reason]Bannt einen Spieler vom Server
        /unban [player]Hebt eine Verbannung auf
        /group [player] [group]Weist einem Spieler einer Gruppe zu
        /gettimeZeigt die aktuelle Serverzeit an
        /getweatherZeigt das aktuelle Wetter an
        /onlineZeigt alle Spieler die aktuell online sind
        weitere Befehle: /help, /getbanned, /getversion,
        /support [player] [text], /yell [text], /bc [type] [text], /teleporttoplayer [playerA] [playerB],
        /makeadmin [player], /unadmin [player], /setweather [weather], /settime [hour] [min],
        /sethealth [player] [value], /sethunger [player] [value], /setthirst [player] [value]
    • Automatisches Reloading dank OZTools
      • Settings werden automatisch neu geladen
      • Jar-Updates triggern automatisches Plugin-Reload (kann deaktiviert werden über settings.properties des OZTools Plugin)

    🚀 Installation

    1. OZTools installieren
      ZIP in den plugins/-Ordner entpacken (keine Konfiguration nötig)
    2. DiscordConnect installieren
      ZIP ebenfalls in plugins/ entpacken
    3. Server starten
      Es wird automatisch eine Datei erzeugt:
      settings.properties
      Die settings.properties enthält eure anpassbaren Einstellungen.
    4. settings.properties bearbeiten
      Hier Bot-Token, Webhooks oder Channel-IDs eintragen.
    5. Speichern
      OZTools erkennt Änderungen automatisch und lädt das Plugin neu.

    🔄 Update

    Neue Dateien einfach über vorhandene kopieren.
    OZTools erkennt aktualisierte JARs automatisch und lädt alle Plugins neu.
    Keine weiteren Schritte nötig.

    ⚙️ Wichtige Einstellungen (Ausschnitt)

    Wenn botEnable=true gesetzt ist, wird der Discord-Bot aktiviert und benötigt ein gültiges Bot-Token. Desweiteren müssen entweder webHookUrls oder channelIds gesetzt werden.

    📦 Download

    💬 Feedback & Support

    Ich freue mich über Feedback, Ideen oder Bugreports. Schreibt einfach hier in den Thread!

    PS: weil ich immer zu faul bin um sowas zu schreiben habe ich den Text hier von der KI schreiben lassen 🙈 werde ihn aber hier und da manuell anpassen.

    Hey, in my DiscordPlugin i had a function to get and set weather from Discord. While restoring my code and fixing stuff and bringing it up to date i could not figure out how to get weather human readable or set it from string.

    Anyone else any idea ? It looks uncool in logs and Discord: