Posts by Devidian

    Hey there,


    before the great shutdown (when unity version was announced) i already started to create my own LandClaim plugin as i was not satisfied with the areaprotection we were using in the Java version. But as i did with all my (planned) plugins i stopped working on it.
    When i setup my unity server i tried some existing plugins but they were not working as expected, so i started with my own plugin again. It is still not 100% where i want it to have but the main features needed as MVP are working so far.
    So i want to invite some players to test it on my public development Server. The server is called

    Omega Zirkel - Plugin development, dont build serious stuff!


    I recommend to bind the command `/lc open` to a key or mouse, this is almost everything you need to do using it.

    Current features:


    • Claiming by players themself based on Chunks
    • Players have a basic claim limit (can be configured)
    • Players get more claims if they have more playtime on a server (rate configured by admins)
    • Players have to stay a configurable time in a chunk before they can clime (prevents new players to grief areas
      • (Planned: "soft decay" of chunks / protection based on playtime)
    • Players can turn on "chunk view" where they can see chunks
      • Current view: shows the current chunk borders in yellow
      • Owned view: shows the chunks owned by the player in green
      • Other view: shows chunks owned by others in blue (and other colors in the future)
        • (Planned: color for special areas, areas for sale, pvp areas?)
    • Players that claim a chunk become "owner" of that chunk
    • Players can set other players as "friends" for their claim
      • (Maybe later different permission levels are possible)
    • Players can release their claims - if they dont want it anymore (!anyone else can claim then)
    • Players can rename their claims
    • Admins can change permissions on any claim
    • Admins can release any claim
    • Admins can rename any claim
    • Admins don't have claim limits (configurable)
    • Admins dont need to wait to claim (configurable)
    • Plugin is fully translated to german + English, more languages possible (just ask)
    • An overlay shows up current chunk status and time needed to claim
    • Claimed areas will work even if plugin gets uninstalled as it uses ingame area functionality

    Features in progress (what im still working on) before i release first version to public


    • Connections to discord for claim/release announcements using my Discord Connect Plugin (optional feature, no need for Discord Plugin)
    • Ingame announcements
    • Area expansion (i dont want to have a 3 by 3 area of 9 single area chunks, i want to have a single big area 3 by 3 )
      • Area can be expanded up,down,north,south,west,east
      • expansion will respect claim limits and time in chunks but it will sum up all time so you only need to stay in one chunk)
    • Special areas (admins can set an area to "special" this has no owner and will be visible as white frame with "others view")

    Features planned after first release:


    • Admins can mark areas as pvp areas (will be just another default area permission) will be visible as red zone in "others view"
    • Players can sell their claims to other Players (first version wont use any currency, i plan to create a seperate plugin for that)
      • other players can buy claims if they have enought free claims
      • selling and buying will be announced ingame (and optional in discord)

    Screenshots:








    Now is the best time to test and give any feedback. Hope to see anyone testing next days.

    Best regards
    Devidian

    I'm currently working on my own LandClaim plugin and noticed some things:

    - if you use `area.setPlayerPermission` before `Server.addArea`, the permissions are not persisted to the database.
    - if you use `Server.removeArea` before removing all player permissions from the area, the permissions stay in the database with no valid area.

    Might not be critical but it cost me much time to figure this out :lol:

    Just noticed there is no hoverStyle.borderWidth.set shortage (and others), so i wrote an extend to UIElement with some helpers.

    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.