Posts by Machete

A new update is now available, introducing a lot of new content!
Latest hotfix: 0.7.5.1 (2024-09-02)

    New Version: V0.51.0:

    • command for recalling animals home:
      /abm warphome all (recalls all animals home)
      /abm warphome ID (recalls one animal home - use /abm list to find out the ID)
    • admin only command for recalling all tamed animals from all players home at once:
      /abm warpallhome
    • improved output of animal listing
    • the animal watcher now sends an animal home regardless if the owning player is online or not
    • fixed a null pointer exception when a player disconnects



    Neue Version: V0.51.0:

    • Kommando zum Zurückrufen der Tiere:
      /abm warphome all (all deine Tiere zurückrufen)
      /abm warphome ID (ein bestimmtes Tier zurückrufen - benutze /abm list, um die ID herauszufinden)
    • Kommando nur für Admins: alle Tiere von allen Spielern gleichzeitig zurückrufen:
      /abm warpallhome
    • Ausgabe der Tierliste verbessert
    • zu weit entfernte Tiere werden nun auch nach Hause geschickt, wenn der Besitzer offline ist
    • Fehler behoben: null pointer exception wenn ein Spieler einen Server verlässt

    Hi!


    I'm thinking about completely removing the renaming feature!
    At least as long as the gui-api is in such an early state. The annoyances outweigh the benefits.


    The trouble is that AnimalBreedMaster uses event-driven GUI instead of - as usual in other plugins - command-driven per chat command.


    On the one hand, this plugin is fortunately completely independent of third-party plugins, but on the other hand it still interferes with other (maybe outdated) plugins.
    I can not and do not want to compensate for this!


    And a renaming by chat is no longer intuitive for me and inhibits the flow of the game.


    I hope you understand my concerns and support my decision, no matter how I decide!

    Hi @sharkbitefischer!


    The issue you have found is related to an old behaviour in the initial release version - before the plugin was server compatible!
    Unfortunately, an administrator must log in to run the time settings after a restart.


    I will fix it as soon as possible. At the moment I have little time, but over Easter perhaps!

    I do not plan to adjust the date. Maybe not everyone would agree with a date change.
    But I would like to encourage you to supplement this on your own.
    The source code is available for free and you can modify it as you wish! :)

    I had an error with this plugin that was some SQL database being used and it would not save the world. I had to delete and reload all the files from the zipfile again to make it go away. Not sure what caused it. I did not use the reload database features.. I might do that if I get this problem again. Seems to be running fine on my server right now.

    Hi!
    This would be hard for me to reproduce, perhaps this is related to a possible issue with the world database that @Jon_miner shortly discovered: some illegal values stored in a specific database table.


    but does not provide a "grand total"

    It is only a matter of "outputting and formatting"! The next update will provide an improved output with a total number!


    there are animals that they never seem to be able to find (after even minutes of doing /abm list commands) and they stay on their list

    I suspect that this is due to your discovery with these "NaN NaN NaN NaN" entries in the Npc-table of the world database.


    Could you perhaps provide me an export of the Npc-table?
    This would be very helpful for me to investigate the problem and possibly offer a solution.

    @Jon_miner


    Another lit nit, but can the "/abm list all" provide a total count?

    Can you cover it with /abm count all?


    If an animal is really lost, i.e. is dead/ killed, then it is automatically removed from the list. This "dead animal watcher" is active every 20 seconds.
    I would like to say that at the latest after 20 seconds the "/abm list all" should be actual.


    This "NaN NaN NaN NaN"-issue in the main db would really affect a "tamed animal" in the way that it is "not here and not there".
    Let's hope that it finds the way home from nowhere! :D

    I installed per directions, however, there was no prefs.xml file created

    Hi! Make sure that it looks similar like this then it should be created after first world load:

    Code
    -- /RisingWorld
    |
    |-- /plugins
    |
    |-- /animalbreedmaster
    |- AnimalBreedMaster.jar
    |- changelog_de.txt
    |- changelog_en.txt
    |- readme_de.txt
    |- readme_en.txt


    If not then probably something else blocks it or so.

    I made a plugin for reproducing this issue. :)


    The attribute "level" is set in onConnect().
    When using chat command /attr get, it prints null instead of 1337.
    But: after reloading with "rp" in console, all works fine, no uninitialised attribute!


    But when you set the attribute in onSpawn(), all works (almost?) fine.


    I append both the plugin jar and the source code to play with.
    Hopefully this can help you to track it down.


    Chat commands:
    /attr get prints the value of "level" (should be 1337 but null)
    /attr exception force an exception
    /attr print output value of "level" for each player currently online on server


    plus:
    /attr set setting "level" to 1337


    Cheers! (and please press the thumb that HSV wins today!!) :)


    P.S.: I just found out that it is random if getAttribute() returns null or the intended value.
    Eventually you have to restart the game completely. For me the second start did it.

    @sharkbitefischer
    On the main menu top right corner you find your id, with a right click on it you can copy it and paste it in the server.properties.
    When I installed my test server I missed this too, but after replacing my name with the id, the clock was visible again.


    My server.properties-example:
    #Thu Feb 15 19:08:24 CET 2018
    admins=78961198061737524
    ...

    Hi @red51!


    Before version 0.9.2.2 I was using player.setAttribute() in an event method for PlayerConnectEvents. Something like this:


    Java
    @EventMethod(Threading.Async)
    public void onPlayerConnectEvent(PlayerConnectEvent evt)
    {
    Player player = evt.getPlayer();
    player.setAttribute("xyz", 123);
    }

    But this leads now to null pointer exception when calling player.getAttribute("xyz") later in code somewhere.
    I have to move this now to the PlayerSpawnEvent method to circumvent that. Example:

    Java
    @EventMethod(Threading.Async)
    public void onPlayerSpawnEvent(PlayerSpawnEvent evt)
    {
    Player player = evt.getPlayer();
    player.setAttribute("xyz", 123);
    }


    Can you confirm that something has changed there under the hood? :)