[ECON/FUN] HeavenActivity v0.3.1 - Activity based iConomy income [1000]

Discussion in 'Inactive/Unsupported Plugins' started by Sevenos, May 5, 2011.

  1. Offline

    Sevenos

    HeavenActivity
    Track player activity and give iConomy income based on it.

    Download:
    v0.3.1 (iConomy 5): HeavenActivity.zip (including annotated config) or jar only
    v0.1-beta (iConomy 4.6): HeavenActivity.jar
    Source: GitHub

    HeavenActivity tracks the player's activity of the last minutes (default: 15) by tracking block place/break, movement, chat and command usage. Everything is configurable (points per event, delays, timeframe, notification cycle etc).
    It can give iConomy income based on activity AND player balance.

    Features:
    • Track player activity by block place/break, movement, chat and command usage
    • Extremely configurable
    • Individual activity modifiers per group/player (optional)
    • Give players iConomy income based on activity (optional)
    Commands:
    Code:
    /activity <target> - Your or <target>'s current activity ("activity.view.other" permission to show <target>'s activity)
    /activity list - Shows activity of all online players ("activity.view.list" permission)
    /activity admin <stats|reload|resetstats> - Admin commands to see stats, reload config or
     reset the stats ("activity.admin" permission)
    Dependencies:
    • iConomy 5
    • Permissions (optional, 2.7.2 - 3.1.6 should work)
    How does it work?

    The tracking is based on sequences, those sequences have a configurable length (in seconds) and a configurable max amount. By default, there are 15 sequences with a length of 60 seconds each. This results in tracked activity for the last 15 minutes. Each tracked event is added to the current sequence, the activity is the average point value of all available sequences. One sequence can have more than 100 points, but the average activity is capped at 100 points/percent.

    How does the income work?

    Let me just give the actual calculation for now, feel free to ask if you have questions (and remember +- = -):
    Code:
    base_value
    + (((ACTIVITY - target_activity) / activity_modifier) * base_value)
    + (PLAYER_BALANCE * balance_multiplier)
    Config Examples (open)

    Default: 50% activity = 100% of base_value, 1% activity = 35% of base_value, 100% activity = 135% of base_value
    target_activity: 50
    activity_modifier: 75
    Linear income: 50% activity = 50% of base_value, 1% activity = 1% of base_value, 100% activity = 100% of base_value
    target_activity: 100
    activity_modifier: 100

    Complete annotated config.yml (included in zip download) (open)

    Code:
    # The comments will be gone after first reload/disable of the plugin
    general:
        # The time (in seconds) one sequence lasts
        sequence_interval: 60
        # Multiplier for all points, if you want more activity for all activities, rise this
        point_multiplier: 1.0
        # Sequence(s) in which the income is given
        # (max_sequences % income_sequence == 0)
        income_sequence: 15
        # Sequence(s) in which the players are notified about their activity, 6 means in sequence 6, 12(, ...)
        # (max_sequences % notification_sequence == 0)
        notification_sequence: 6
        # Max sequences which are stored, default 15 * 60 = 15 minutes
        max_sequences: 15
    income:
        # iConomy income enabled?
        enabled: true
        # Minimum activity to get income
        min_activity: 1
        # Allow negative income? (e.g. because of a negative balance_multiplier)
        allow_negative: true
        # Multiplies the current balance of the players and adds/subtracts it to/from the income
        balance_multiplier: 0.0
        # How much the activity affects the income, less is more (read documentation!)
        activity_modifier: 75
        # Base income value, this is the value the players get at target_activity
        base_value: 8.0
        # Target activity for the base_value, everything above will give more income
        # everything below will give less income
        target_activity: 50
    block:
        # Enable tracking of block break/place events?
        tracking: true
        # Points per tracked broken block event
        break_points: 1.95
        # Points per tracked placed block event
        place_points: 3.75
        # Minimum delay between 2 tracked block place/break events (ms)
        delay: 950
    move:
        # Enable tracking of move events?
        tracking: true
        # Points per tracked move event
        points: 0.58
        # Minimum delay between 2 tracked move events (ms)
        delay: 1100
    chat:
        # Enable tracking of chat?
        tracking: true
        # Points per character on chat
        char_points: 0.49
        # Points per chat use (adds on the char value)
        points: 1.0
    command:
        # Enable tracking of commands?
        tracking: true
        # Points per character on commands
        char_points: 0.53
        # Points per command use (adds on the char value)
        points: 1.0
    # This tree is just used for statistic and doesn't affect anything
    stats:
        move_points: 0.0
        block_break_points: 0.0
        chat_points: 0.0
        chat_char_points: 0.0
        command_char_points: 0.0
        block_place_points: 0.0
        command_points: 0.0


    Group/Player multipliers:

    You can set individual multipliers for each group/player using the Permissions "info" node. The following example would give 20% more activity for breaking blocks and 20% less activity for chatting:
    Code:
    info:
        # prefix etc is here too
        activity:
            multiplier:
                block_break: 1.2
                block_place: 1.0
                move: 1.0
                chat_char: 0.8
                command_char: 1.0
    How it looks ingame:
    This may look spammy, but it's normally split to about 50 minutes. Messages and colors will get configurable at some point.
    [​IMG]

    Changelog:
    v0.3.1:
    • Fixed a bug which caused only one player to get income, please update if you use the income feature!
    v0.3.0:
    • Added configurable minimum activity to get income (config node income.min_activity, default: 1)
    • Added config node to (dis)allow negative income (income.allow_negative, default: true)
    • Added config nodes to disable specific trackings (e.g. move.tracking, by default all are enabled)
    • Refactored permission handling, Permissions plugin is now optional (OP always has all permissions, admin commands OP only without Permissions plugin)
    • No longer ignore every y changing move events, instead check if x and z have changed
    • Changed default config to enable income and disable balance_multiplier (0.0)
    • Added ability to log commands to console (config node general.log_commands, default: false)
    • Some refactoring
    Old versions (open)

    v0.2.0:
    • Fixed config overwrite on reload/stop and only adding most important config nodes if they aren't set (no more auto-generation of all config nodes)
    • Fixed iConomy error on startup (skipping income on startup)
    • Added permission nodes "activity.view.list" and "activity.view.other"
    • Reformatted list of online players' activity (now it's only one row for all players)
    v0.1.1:
    • Upgraded iConomy support to 5.0 (just use the "older" Version if you're still on iConomy 4.6)
    • Better method to hook into Permissions and iConomy (ServerListener)
    v0.1-beta:
    • First public release
     
    Rollese and Phaedrus like this.
  2. Offline

    Retricide

    @matjam
    Thanks so much, really appreciate it.
     
  3. Offline

    matjam

    Yeah. I only did the bare minimum to have it work with iCo6, as thats what I'm using.

    I'm really surprised there is no 5 to 6 bridge, in fact, no attempt at all to make iConomy 6 backwards compatible with iConomy 5 plugins, and bugger all documentation.

    Thats harsh. I might take a stab at supporting iConomy 5.
     
  4. Offline

    Rollese

    That would be awesome, thank you for trying! :)
     
  5. Offline

    Sevenos

    Sorry for the inactivity, I lost interest in mc for some times because of community issues but got "back" after a little break.

    The dev version is quite far function-wise, running on my 1.8.1 server with no problems. Though it's hard to use if you can't lookup stuff in sources. I promise to release an official version within the next 3 days (including example config and stuff).

    @matjam: Thanks for the effort, nothing against helping out users ;) As already said on github those changes are not needed for the dev/next version, as I solved it more extensively already (Register support, configurable multiplier nodes, ..)
     
    Rollese likes this.
  6. Offline

    Rollese

    Awesome, can't wait :D
     
  7. Offline

    heifinator

    This still happening?
     
  8. Offline

    heifinator

    I am assuming he has decided to not update again....

    Was quite a while ago. I am having my dev team revive this. Will setup a bukkit dev for it.
     
  9. Offline

    micler12

    20:49:55 [SEVERE] Could not pass event PLAYER_MOVE to HeavenActivity
    java.lang.NoClassDefFoundError: com/nijiko/permissions/PermissionHandler
    at net.blockheaven.kaipr.heavenactivity.HeavenActivityPlayerListener.onP
    layerMove(HeavenActivityPlayerListener.java:42)
    at org.bukkit.plugin.java.JavaPluginLoader$7.execute(JavaPluginLoader.ja
    va:302)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:58)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:339)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:180)
    at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java
    :618)
    at net.minecraft.server.Packet10Flying.a(SourceFile:126)
    at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:92)
    at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java
    :500)
    at net.minecraft.server.NetworkListenThread.a(SourceFile:108)
    at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:471)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:374)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:417)

    PLS HELP
     
  10. Offline

    tyzoid

    Hello everyone. ( @heifinator @micler12 )

    I built his source on github.
    The newly built plugin can be found here

    I will be taking this over as the original author hasn't been active in over two months.

    Edit: there is a bug with activity always being 11%. I am looking into the issue.
     
  11. Offline

    tyzoid

  12. Offline

    tyzoid

  13. Getting a 403 on that link tyziod
     
  14. Offline

    tyzoid

    Yea, I am having trouble getting it approved because I need a better description.

    I'm working on this.
    For now though, just use the dl link I provided a few posts above.

    Ok. The mod was approved :)

    The first download is available. on bukkitdev.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 15, 2016
  15. Offline

    Sevenos

    An event made me loose all interest in mc, which teaches me (again) to never promise anything.

    I would be glad if someone really "takes over the project", but just copying everything which is already there is not "taking over". The new code isn't tested out and the documentation is totally outdated.
     
  16. Offline

    tyzoid

    Sevenos
    Welcome back to bukkit.
    If you don't mind, I will be glad to take over this project.

    I have a few questions/comments for you:
    The first thing is I had found code on github that has been updated, and there are few bugs that I have found so far.
    I had been planning to just use the code you had, and do a re-write when I had more time. For now, this plan seems to be working fine.

    Secondly, there was a question of what license you wanted the project under. Since there was no way to contact you, I had chosen the Ms-PL as a temporary license.

    Lastly, if you had a few minutes, would it be possible for you to elaborate a little on the sequences?
    I kind of grasp the concept, but if I am to take it over, a full understand of how it works would be required.

    Thank you for you time, and thank you for returning once more.
    It is nice that a plugin author would want to see the plugin in good hands.
     
  17. Offline

    LNitrogen

    Liquid Nitrogen (which includes tyzoid) may be reviving this project. Stay tuned.
     
  18. Offline

    RROD

    You can only revive a plugin if you have the author's permission. Make sure you've got it. Just confirm it with them first.
     
  19. Offline

    tyzoid

    I've already had permission from the author.

    I am just transferring authorship (i guess you could call it that) to the coding group.
     
  20. Offline

    Retricide

    LNitrogen
    Should we expect to see an update or anything for 1.2.3? Just wondering.
     
  21. Offline

    tyzoid

    Last edited by a moderator: May 15, 2016
  22. Offline

    tyzoid

    I am rewriting this plugin from the ground up.

    When I release it, it may not have as many features as it does now, but they will all eventually be added (and more!)
     
  23. Offline

    tyzoid

    Almost done with the re-write.

    It is giving me an error every time I try to give the player money, so I need to debug this first.
     
  24. Offline

    Pr07o7yp3

    I really happy that you are re-writing the plugin. :)
    Please, when it already done write me to download it. :p
     
  25. Offline

    tyzoid

    Almost done, Economy not being recognized.

    Warning: this plugin will not use yml, however, it will be easy to migrate your yml file to the settings file.
     
  26. Offline

    Pr07o7yp3

    Ok, I'll wait you. :p
     
  27. Offline

    tyzoid

  28. Offline

    md_5

    Long time no see Sevenos. You will notice that this thread has now been placed into the Inactive Plugin subforum.
    If you wish to revive this plugin, please ensure that you update and test compatibility with the latest recommended Bukkit build before reporting your original post, asking for it to be moved back to the release forum.

    Thanks for your time.
    md_5
     

Share This Page