Posts by Devidian

A new update (0.9.2) is available now!

    Könntest du einen max claim limit hinzufügen? Also, dass ein Spieler z.B. maximal bis 30 chunks claimen kann, auch wenn er wochenlang spielt.

    Das hatte ich auch schon mal überlegt, man kann es aber theoretisch auch so realisieren indem man Base Limit auf 30 setzt und Claims pro Zeit auf 0 oder so, das man quasi keine neuen Claims bekommt.


    Spend more time ggf auch auf Deutsch übersetzen und einen (Timer) hinzufügen, sodass man weiß, wie lange man warten muss.

    Ah das muss die Meldung beim erweitern sein, ja werde ich machen, eigentlich war nie geplant das die Meldung überhaupt kommt weil alle Checks vorher das verhindern sollten, aber beim erweitern ist das nicht so einfach da er die Zeit von allen Zellen zusammen rechnet.


    Wenn ein Chunk freigegeben wurde, sollte man einen Chunk vielleicht auch gleich wieder claimen dürfen (der Cooldown sollte nur auf neue Chunks angewendet werden)

    Kann man auch, wenn die Zeit im chunk gesammelt wurde. Wenn es vorher ein erweiterter Claim war hat man evtl noch nicht genug Zeit im freigegeben chunks verbracht.


    Zeiten werden pro chunks gesammelt und die Zeit wird auch weiter gesammelt selbst wenn man geclaimt hat. Das ist für andere Features relevant die ich evtl noch umsetzen möchte.

    ggf eine Unterteilung nach Rollen (Rolle X kann von Anfang an mehr Chunks claimen, muss weniger lange warten und/ oder hat ein höheres Max Claim Limit als Rolle Y).

    Schwierig, da jeder Server eigene Rollen hat und das Plugin nur area permissions. Und ich bin mir ziemlich sicher das man in den permissions keine custom Werte definieren kann. Da müsste ich dann schon wieder rollen vordefinierten die man als Admin dann höchstens eigenen rollen zuweisen kann.

    Da müsste man sich überlegen, wie sowas als Spielmechanik aussehen würde :thinking: Sie zB einfach samt Inhalt ins Inventar aufnehmen (um sie dann woanders zu platzieren) wäre problematisch, da man auf dem Wege sein Inventar massiv vergrößern könnte... geht es dir dabei denn primär darum, die Kiste nur an einen anderen Ort zu bewegen? Oder möchtest du den Inhalt von Kiste A in Kiste B übertragen?

    Wenn es einfach so wäre als würde man die Kiste neu setzen würde es doch reichen, also quasi das radialmenü der kiste aufrufen dann auf verschieben gehen und man kann sie woanders setzen, setzt man sie nicht (bricht man ab) bleibt sie wo sie ist.

    Well i could swear i noticed the frame Drops too, at least during snow on my testserver Yesterday it felt Like that. But i played Not that much as i was more active in vscode so i thought it might be my Overall System load

    Natürlich meinte ich den Server :D sorry ist spät für english.

    Das ist der Typische log:



    Wie gesagt ich hab auch schon mal shutdown versucht per api aber als ich das das letzte mal versuchte, kamen lauter exceptions, also nutze ich nur restart.

    When i tried using shutdown command instead of restart i had several exception issues so i always use restart. But in the current case there was no restart issued by any of my plugins. We have a but with unknown source (no errors) that the game itself sometimes restarts instantly. Even the logs end abrupt. like this:

    Huhu, mein Docker Container hat immer das Problem das bei einem Neustart oft der Port noch nicht frei ist und er startet sich dann 5-6+ mal neu bis er den Port wieder frei hat.


    Generell würde ich es besser finden wenn man in den server.settings sowas wie shutdownOnRestart=true machen könnte, damit er das spiel komplett beendet und damit auch den container und das der container dann seinen restart machen kann. Dann klappts auch mit den updates besser.

    Some players on my server report that after the update they cant open doors and chests too in other players claims

    We use my LandClaim plugin that internally uses vanilla areas+area permission files, and the area-permission for the other player is "almost all true".

    Update: I just logged in and even i as admin cant open a chest created by another player on my own property

    Ok ich habe zwei fehler in den logs gesehen, ausschalggebend war wohl dieser hier:


    Code
    [ERROR] [10:07:31] [JNI exception] java.lang.NullPointerException: Cannot invoke "net.risingworld.api.objects.Area.getStartChunkPosition()" because "area" is null
    UnityEngine.DebugLogHandler:Internal_Log(LogType, LogOption, String, Object)
    JIW.JNI.Wrapper.Env.JNIEnv:CheckException()
    RisingWorld.PluginAPI.Types.UI.JUIElement:OnClick(JNIEnv, JObject)
    RisingWorld.Server.Network.Listeners.ServerAPIListener:APIClickUIElementReceived(IPacket, AbstractConnection)
    JIW.Network.Core.Common.Event.ReceiveServerPacketEvent:Execute(AbstractNetworkServer, NetworkEvent)
    JIW.Network.Core.Common.Event.NetworkEvent:Execute(AbstractNetworkServer, AbstractNetworkClient)
    JIW.Network.Core.Common.Channel:Run()
    System.Threading.ExecutionContext:RunInternal(ExecutionContext, ContextCallback, Object, Boolean)


    Hast du evtl zu schnell hintereinander erweitert? das er quasi mit dem erweitern noch nicht fertig war ? Ich werde dafür auf jeden fall einen fix einspielen, muss nur herausfinden wieso an der ensprechenden stelle überhaupt area null war...

    Ein weiterer Fehler war noch etwas weiter vorne, da weiss ich aber nicht wo der passiert sein soll:


    Code
    [ERROR] IndexOutOfRangeException: Invalid offset (WorldPart): -310 (length: 532512)
    RisingWorld.Common.World.Dungeons.DungeonElement..cctor () (at <00000000000000000000000000000000>:0)
    RisingWorld.Common.World.Dungeons.DungeonElement..cctor () (at <00000000000000000000000000000000>:0)
    RisingWorld.Server.Npc.Threading.ServerNpcManagerThread.SpawnSurfaceNpcs (RisingWorld.Server.Chunks.ServerChunkPart chunkPart, RisingWorld.Common.Definitions.Biomes+Region region, RisingWorld.Common.Definitions.Biomes+Biome biome, System.Single spawnProximity) (at <00000000000000000000000000000000>:0)
    RisingWorld.Server.Npc.Threading.ServerNpcManagerThread.Run () (at <00000000000000000000000000000000>:0)
    System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) (at <00000000000000000000000000000000>:0)
    ExceptionExtensions:PrintStackTrace(Exception)
    RisingWorld.Server.Npc.Threading.ServerNpcManagerThread:Run()
    System.Threading.ExecutionContext:RunInternal(ExecutionContext, ContextCallback, Object, Boolean)


    WorldPart verwende ich meines Wissens nirgends

    Hey, danke erstmal für dein Feedback.

    Ist das mit dem Crash immer wieder reproduzierbar? Könntest du das auf dem testserver mal gucken ob das auch dort passiert?


    Wenn du mit der Anzeige der Bereiche die generelle Anzeige oben links meinst, dann hat diese eigentlich genau die Funktion zu zeigen in welchem Bereich man sich befindet oder ob man diesen einnehmen kann oder halt nicht. Wenn ich die Anzeige ausblenden lasse wenn man den Bereich nicht einnehmen kann, könnte das andere wieder verwirren weil sie nicht wissen warum sie dann jetzt den Bereich nicht einnehmen können 😅


    Allerdings hatte ich mir für mein neuestes Plugin schon überlegt, dass ich sowas wie Einstellungen für die Spieler selber brauche. Wenn ich das implementiert habe, kann ich auch speichern ob jemand die Anzeige oben sehen möchte oder nicht und dann ein kleines overlay machen indem man die Einstellungen einstellen kann halt 😅


    Ja das mit den stats wollte ich selber schon in ein Fenster umwandeln dass man über das Menü öffnen kann. Ich werde nach und nach wahrscheinlich alle konsolenbefehle bzw Chat Befehle irgendwie durch menüpunkte ersetzen. Wahrscheinlich werde ich das mit dem allgemeinen mod-info zusammengelegt in so ein infofenster packen dass man über das Menü öffnen kann.

    Hey i was asked to implement some "Player xyz is going to bed" message so everybody on the server knows that players want to skip night but i cant find any event in the api i could use for that. There is only a skipnight event but i think thats fired after or before skipping.

    Anyone else have an idea?

    Hey red51 i'm currently experiencing some more issues with the Area API.


    I noticed that my rename-area code is only temporary setting the new area name.


    area.setName(v);


    Also if i do a Server.addArea(area, true); afterwards, it is not reflected in the db file and gone after restart.


    The only way i currently experimenting with is to do

    Code
    area.setName(v);
    Server.removeArea(area);
    Server.addArea(area, true);

    But this comes with an even bigger downside (bug)
    The area is removed and readded to the database with the correct name but ingame it is not found by Server.getAllAreas() until the server restarts.

    I'm thinking of using my own SQL to update the area names as workaround to fix that but i dont know yet if thats causing any other side-effects.
    Using SQL to update name works for now.

    Another bug: when deleting an area where the player itself is standing in, the non-area area gets the name of the deleted area instead of "wildernes" for example. Everytime you leave an area the old area name pops up.