Karma icon

Karma -----

All-kind Reputation plugin




- Fixed an error when pvp wanted time expressions are empty
----------, Nov 9, 2024

FIXED:
  • An error occuring on startup with Paper 1.21+
  • NPE when using suggestions on the "/karma eval" command
----------, Jul 26, 2024

ADDED:
  • You can now avoid receiving messages from pve by putting this to FALSE in the config.yml:
    • pve.send-message-on-karma-change (DEF: TRUE)
  • Possibility to reload the config silently (and no message upon reload on changing tier/karma/wanted state)
FIXED:
  • pvp.send-message-on-*-change not well read.
----------, Mar 21, 2024

ADDED
  • New command option when editing player datas (karma, tier, wanted): Do not send messages to the target player using the -s OR the --silent argument inside the command.
    • /karma edit player Rosstail tier set sheriff -s
  • New config options:
    • pvp.send-message-on-karma-change (DEF TRUE)
    • pvp.send-message-on-tier-change (DEF TRUE)
    • pvp.send-message-on-wanted-change (DEF TRUE)
    • Put these options to FALSE in order to not receive karma message on PvP.
FIXED
  • An error that occures when using the karma command with argument without subcommand. Ex: /karma -s
----------, Mar 17, 2024

FIXED:
  • Spamming errors when events based upon real time trigger for a player on Offline (cracked) servers. (Such as Overtime, automatic save, Wanted duration)
  • Miscount of wanted time and overtime with these 3 specific conditions. The third point must be tested completely:
    • countdown-on-disconnect is TRUE (true by default)
    • Using SQLite storage for karma data (true by default)
    • having a Minecraft server running on a machine that is not on GMT (+00h00m) timezone.
----------, Jan 21, 2024

FIXED:
  • A critical error on Karma startup in karma 1.14.1c for some people.
  • PvE per-mob message were not sent upon hit or killing
  • The possibility to bypass karma limits by placing and breaking blocks if the player karma is not already at the limit
----------, Sep 16, 2023

FIXED:
  • Fixed error messages whil fighting CItizens Npcs. Compatibility not available right now.
----------, Aug 27, 2023

ADDED:
  • Block - Trampling check will now also check the landed block (generally FARMLAND) and not only the block upward.
FIXED :
  • PvP commands that use attacker/victim placeholders that leads to wrong values or just errors
----------, Aug 25, 2023

ADDED :
  • Added Italian (it_IT) locale for karma with the new locale files, thanks to @Yukiteru94 !
  • the Block feature is now compatible with breaking blocks by trampling. Especially useful on crops.
  • Added regex compatibilty for blocks name on Block feature. That way, a block section can affect multiple blocks at once (useful for all type of wood blocks, coloured blocks, etc). more infos here, at "regex"
I would like to focus on Nodewar for now on. If you need a feature on Karma, it may need some time.
----------, Aug 21, 2023

COMPLETE REWORK FROM KARMA PLUGIN. PLEASE CHECK ON THE NEW WIKI TO UPDATE YOUR CONFIG.YML AND LANG FILES.

If needed, go to the Discord server and ask to Rosstail.

Added:

  • Fallback system for lang files if impossible to read a critical text. Non-critical empty text are ignored.
  • PvP now has karma change expression for the victim if hit or killed.
  • Added karma leaderboard for both greatest and lowest karma values. Only usable through PAPI actually.
  • Compatibility with more storage system such as LiteSQL, Mysql, MariaDB and mongoDB
  • Changing player karma by breaking and placing blocks with filters
  • Possibility to split main parts of the config.yml into subconfigs
  • Many placeholders
  • Executing commands on PvP with conditions (attacker/victim tier, karma, status, hour....)
  • Possibility to edit data of players, even disconnected or without karma data.
  • Many commands with optional arguments to improve possibilities
Changes:
  • Kill commands for tier vs tier as been moved from the Tier section to the PvP section and has been completely reworked
  • Reworked language files
  • Reworked config.yml
  • Local placeholders are now between brackets [] instead of following the PAPI system (still usable through PAPI)
Removed:
* Temporary removed compatibility with citizens​
* Removed playerdata/playeruuid.yml files since LiteSQL is now used by default.
----------, Aug 12, 2023

THIS UPDATE BREAKS THE CURRENT CONFIG.YML FILE AND LOCALE FILES.
ONLY ENGLISH AND FRENCH ARE AVAILABLE RIGHT NOW.

THIS UPDATE IS ACTUALLY SENT WITHOUT UPDATING THE CURRENT WIKI. IF YOU HAVE ANY DOUBT, JOIN THE DISCORD SERVER OR WAIT FOR THE RELEASE VERSION.
----------, Aug 10, 2023


ADDED
  • punish commands in pvp.wanted.commands.
    • happends when a killer in a tier with "punish-wanted" true and not in a wanted state kills a wanted player.
    • These commands can use %attacker% and %victim% placeholders.

FIXED

  • Default config for shops with wrong value : "sender" becomes "send-by"
  • Fixed calculations issues on commands and fights for wanted time.
----------, Jun 8, 2023

Fixed default config for overtimes, using values that just can't be used.
----------, May 19, 2023

PLEASE UPDATE YOUR CONFIG.YML ON OVERTIME SECTION BEFORE UPDATING TO 1.13+. Check the WIKI.

New default config: https://github.com/Rosstail/Karma/wiki/Default-config.yml
New Overtime system: https://github.com/Rosstail/Karma/wiki/Karma-change-and-commands-over-time

Changes:
  • The overtime system has been totally reworked. You can now set multiple overtime with conditions (connected, disconnected, minimum and / or maximum karma...)
----------, May 19, 2023

PLEASE UPDATE YOUR CONFIG.YML BEFORE UPDATING. ESPECIALLY ON WANTED.DURATION AND WANTED.MAX-DURATION.

ADDED :
  • Commands that triggers upon entering, leaving or refreshing wanted state (log-in while wanted or changes wanted duration counts as refresh)
  • Added %now% placeholder, simplier than %timestamp%
CHANGES :
  • Changed wanted.duration and wanted.max-duration expression.
    • The expression will now use time markers instead of a raw value in milliseconds:
      • ex: "(%timestamp% + (3600 * 1000) + (45 * 60 * 1000)" to add 1hour and 45 minutes from now becomes "%now% 1h 45m".
  • Mathematical expressions do not need parenthesis around them anymore.
----------, May 6, 2023

Fixed wanted message on connect and fixed default lang files for wanted.set-wanted
----------, Apr 30, 2023

Fixed incorrect default permissions and command permissions.
----------, Feb 1, 2023

FIX :
  • `karma.command.wanted.check.self` were used instead of `karma.command.wanted.check.other` on the shop command while targeting another player
----------, Feb 1, 2023

Fixed /karma wanted edit command that could not target a player
----------, Nov 13, 2022

THIS UPDATE GREATLY CHANGES THESE FOLLOWING:
* Permissions
* Commands
* Config.yml
* Lang files

PLEASE BE AWARE AND UPDATE EVERYTHING BEFORE UPDATING TO 1.12.0. CHECK ON THE WIKI IF NEEDED


ADDED:
  • Simple karma shops that uses player karma in order to launch commands
CHANGES:
  • Changed entirely how the help is displayed. It affects lang files
  • Many permissions and commands has been modified
----------, Nov 7, 2022

FIX :
  • Fixed Wanted status placeholder which didn't applied colours
----------, Aug 30, 2022

Please update your config.yml file before updating karma. Check the default config.yml file on the wiki.

ADDED :
  • Added commands on PVE, for hit and kill. Compatible with attackers placeholders.

CHANGES :
  • The delay between hit/kill messages are now separated between pve and pvp.
----------, Aug 30, 2022

FIXED :
  • Plugin was using the following permissions:
    • karma.own
    • karma.wanted.own
  • Instead of:
    • karma.self
    • karma.wanted.self
  • Use .self perms from now on.
----------, Jul 27, 2022

ADDED:
  • overtime.countdown-on-disconnect
    • True by default
    • If true, the karma changes will use the delta time between disconnection and connection in order to multiply the karma changes upon connection.
    • It works likes overtime, so it'll use first-delay then next-delay.
    • Also, reconnecting to the server does not reset the overtime timer.

FIXED
:
  • The plugin used `karma.default-karma` instead of `karma.default` to get the default karma, resulting at always using 0. This has been fixed.
    • Kee using `karma.default`.
----------, Jul 26, 2022

ADDED
  • /karma reload : Reloads the config.yml:
    • if players are connected, the karma limits and the new tiers will be applied if a change is needed. Same for Overtimes and Wanted schedules if enabled.
----------, Apr 13, 2022

You can now access to the API. Check the Wiki for more informations.
----------, Mar 3, 2022

FIXED
  • Reccuring error messages when the wanted system is disabled. Sorry for the inconvenience.
----------, Feb 7, 2022

I have potentially fixed both timers feature.
----------, Feb 7, 2022

IF YOU COME FROM A VERSION INFERIOR AT 10.0.0, CHECK THE 1.10.0 POST UPDATE BEFORE INSTALLING THIS VERSION.

FIXED :
  • Despite the ping feature, the database stops connection after a while.
    • From now, the connection only opens when a request (or a bunch of) must be executed. The connection is closed right after.
----------, Feb 2, 2022

PLEASE BE CAREFUL IF YOU WANT TO UPDATE KARMA TO THIS VERSION. CHECK THE CONFIG.YML ON WIKI AND APPLY THESE REQUEST INTO YOUR DATABASE IF YOU USE THIS SAVE SYSTEM. IN DOUBT, CHECK THE DISCORD OR GITHUB FOR SUPPORT.


For database users only, please use it before updating.
Code (Text):
ALTER TABLE `Karma` CHANGE `Wanted_Time` `Wanted_Time` BIGINT UNSIGNED NULL DEFAULT '0';


ADD [COLUMN] `Last_Update` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;



ADDED :
  • `pvp.wanted.countdown-on-disconnect` (boolean) in config.yml:
    • If enabled, a wanted player will have his wanted timer decreased, similar if he was connected.
    • If disabled, the player must stay connected to have his wanted timer decreased, even after a huge period of time.
FIXED :
  • The hex colors wasn't detected like {#19AF00}.
  • The plugin disconnects from database after a while without player connected.
CHANGED :
  • SQL saves:
    • Changed Wanted_Time from DATETIME to BIGINT.
    • Added the Last_Update column (Timestamp).
----------, Feb 2, 2022

FIXED:
  • An error with PlaceholdersAPI during the server closure. It happens when at least one player stills connected to the server with PAPI installed and if the karma saves data in local files.
----------, Jan 31, 2022

It is advised to add the new value in #config.yml and apply changes to lang file before updating Karma version.

ADDED
  • %karma_player_wanted_time_delay% : Shows the amount of tick before a player is not wanted anymore
    • useful for debugging
  • %karma_player_wanted_time_delay_display% : Shows the time left of a wanted player.
    • Formated with general.countdown-format in config.yml
  • general.countdown-format (String) in config.yml. Variables can be:
    • {d} {dd} -> Total days
    • {H} {HH} -> Hours in one day (0-23h format only)
    • {h} {hh} -> Total hours
    • {M} {MM} -> Minutes in hour (0-59)
    • {m} {mm} -> Total minutes
    • {S} {SS} -> Seconds in minute (0-59)
    • {s} {ss} -> Total seconds
    • One character shows the value with one or two digits, two characters place a 0 before the value if it is only one digit.
CHANGES
  • Hexadecimal format: #RRGGBB -> {#RRGGBB}.
----------, Jan 31, 2022

FIX
  • PAPI shows the karma with all decimals -> The amount of decimals shown is now the same as defined in karma config
----------, Jan 26, 2022

FIXED
  • An error occures when at least one player stills connected on server shutdown
  • Players data cannot be saved with on server disable.
----------, Jan 24, 2022

ADDED :
  • entry-min-karma: (unset by default) : Check if player has at least the required amount of karma set. If not, cancels the player movement.
  • entry-max-karma: (unset by default) : Check if player karma does not overtake the flag. If the condition isn't respected, cancels the player movement.
  • This is a beta version of this feature, so maybe you'll notice some problems (most of the time a test spam message for now). Please notice me on Github or on Discord.
----------, Dec 27, 2021

This update is not necessary unless you use the karma API.

Added playerdata karma add function in API.
----------, Dec 14, 2021

Added 1.18+ compatibility.
----------, Dec 10, 2021

PLEASE UPDATE YOUR CONFIG AND LANG FILES BEFORE USING IT ON A PUBLIC SERVER MORE INFOS ON THE WIKI.

ADDED:
  • Commands and permissions:
    • ./karma wanted check <player> : Check your own wanted status (default) or another player (OP)
    • ./karma wanted set [player] [value] : Sets the wanted time of target to the specified value (OP)
    • ./karma wanted add [player] [value] : Add the value to the wanted time of target
    • ./karma wanted remove [player] : Remove the value from the wanted time of target
    • ./karma wanted reset [player] Reset entirely the player wanted timer to the 01-01-1970 00:00
    • PERMISSION: karma.immune. Immunes the player to karma changes on fights, but not from commands
  • Events:
    • PlayerWantedChangeEvent (cancellable): Triggers when player have his wanted time changes
    • PlayerWantedHasChangedEvent : Triggers when the player wanted time has been changed
    • PlayerWantedPeriodStartEvent : Triggers when the player enters wanted state
    • PlayerWantedPeriodRefreshEvent : Triggers when the player is on Wanetd state and have is wanted timer edited
    • PlayerWantedPeriodEndEvent : Triggers when the player exits wanted state
  • Wanted system:
    • Added conditions (karma win/unchanged/loss) to be Wanted
    • Added conditions to cancel karma changes
EDITED:
  • Config.yml file: Check the wiki for more informations
  • Lang files: Check the wiki for more informations
  • Players data save:
    • Instead of each player having a save time depending of their connexion time, all connected players will have their data saved at the same time depending on the server start.
    • Players data will be saved asynchronously on disconnection, every X seconds (see config.yml) or on /karma save command.
    • On onDisable (plugin disabled), the datas will be saved SYNCHRONOUSLY in order to save before server closing. However, this feature doesn't work right now.
----------, Nov 28, 2021

FIXED
  • Hit messages on entities that does not show to the player that kill them
  • PvP hit message that show to the player killing a mob
  • Fixed durations on PvP / PvE messages
----------, Oct 26, 2021

WARNING: This is an update that highly changes many things in Karma. Please do not use it on a public server until everything works perfectly. Check the wiki or ask me on discord if you need some informations.

ADDED :
  • Placeholders:
    • %karma_player_wanted_time% : Displays the timestamp of the player wanted time.
    • %karma_player_wanted_time_display% : Shows the player wanted time but formatted like in config.yml.
    • %karma_player_wanted_status% : Displays if the player is wanted or innocent
    • %timestamp% (local) : Shows the timestamp of the server
    • %msg% (local) : Sends message to player instead of sending command
    • %msg-actionbar% -local): Sends message to player on actionbar instead of command or chat
    • %msg-title% (and optional %msg-subtitle%) (local) Sends message to player on title (and subtitle) instead of command or chat
  • Events:
    • PlayerWantedPeriodStartEvent : When player enters wanted state
    • PlayerWantedPeriodRefreshEvent : When players refresh his wanted state or connect on server while wanted
    • PlayerWantedPeriodEndEvent : When player exits Wanted state
  • Added title durations in general in config.yml
CHANGES :
  • Crime-time has been reworked to be the Wanted Time system with expressions to determinate a player wanted duration instead of just put a simple delay
  • Moved some messages from config.yml to the lang files
  • Moved delay between pvp messages from general to pvp in config.yml
  • Local player saves : last-attack becomes wanted-time
  • Database: Last_Attack becomes Wanted_Time
REMOVED :
  • Obsolete infos in config.yml
----------, Oct 24, 2021

FIXED
  • Line 171 of default config.yml causing plugin to crash on startup
----------, Oct 16, 2021

ADDED
  • Added Korean language (ko_KO.yml), thanks to @HyeonJin !
  • HEX colours supports, use `#RRGGBB`
  • Added `tiers.none-short-display`, works exactly like the regular one
  • Added `tiers.list.<tier>.short-display`. It works exactly like the regular display.
  • Added 2 local and PAPI placeholders:
    • %karma_player_tier_short_display%
    • %karma_player_previous_tier_short_display%
  • Added `pvp.crime-time.refresh` boolean value, to refresh or not the crime-time if an agressor keep fighting.

FIXED
  • PAPI placeholders for the previous player tier use some of actual player tier infos.
----------, Oct 15, 2021

ADDED
  • Added Korean language (ko_KO.yml), thanks to @Eyat !
  • HEX colours supports, use `#XXXXXX`
  • Added `tiers.none-short-display`, works exactly like the regular one
  • Added `tiers.list.<tier>.short-display`. It works exactly like the regular display.
  • Added 2 local and PAPI placeholders:
    • %karma_player_tier_short_display%
    • %karma_player_previous_tier_short_display%
  • Added `pvp.crime-time.refresh` boolean value, to refresh or not the crime-time if an agressor keep fighting.

FIXED
  • PAPI placeholders for the previous player tier use some of actual player tier infos.
----------, Oct 15, 2021

FIXED
  • Mob name displays in console when a player hits it
----------, Oct 8, 2021

FIXED
  • Karma consideres the use of an enderpearl as a fight.
  • The default config generates the entities without spaces between mob names ("WitherSkeleton" instead of "Wither Skeleton")
----------, Oct 1, 2021

ADDED :
  • Italian language (it_IT) file (thanks to @Yukiteru94 )
FIXED :
  • Nothing occures on PvX when players are fighting against other players or mobs, karma wasn't changing and messages not displaying
----------, Sep 28, 2021

ADDED :
  • Dutch default language file (nl_NL.yml)
  • Cause on events:
    • PlayerKarmaChangeEvent#getCause() : Returns an object of what triggered this event
      • Works actually only on Fights (PlayerDeathEvent, EntityHitByEntityEvent)
    • PlayerKarmaHasChangedEvent#getCause() : Returns the instance of PlayerKarmaChangeEvent that triggered.
----------, Sep 24, 2021

This update fix an error in default config.yml, line 129:


Code (YAML):
   sheriff:
      display
: "&6Sheriff"
      minimum
: 1251
      maximum
: 1500
        score
:
        criminal
: 20
        thug
: 5
        citizen
: -50
        vigilante
: -70
        sheriff
: -200
Become

Code (YAML):
   sheriff:
      display
: "&6Sheriff"
      minimum
: 1251
      maximum
: 1500
      score
:
        criminal
: 20
        thug
: 5
        citizen
: -50
        vigilante
: -70
        sheriff
: -200
Sorry for the inconvenience.
----------, Sep 19, 2021

There is an error in the new default config at line 129: there is two extra spaces

ADDED
:

  • Local and PAPI placeholders, they globally returns the limit karma of a player tier or his previous one:
    • %karma_player_tier_minimum%
    • %karma_player_tier_maximum%
    • %karma_player_previous_tier_minimum%
    • %karma_player_previous_tier_maximum%
  • Tier Scores:
    • On every tiers, it is now possible to add a score depending of the self tier, another one, or none. This can help admins to add/remove specific values when a player from a tier hit/kills another player:
Code (YAML):
tiers:
  none-display
: "&f[&8None&f]&r"
  list
:
    criminal
:
      display
: "&4Criminal"
      minimum
: -3000
      maximum
: -1500
      score
:
        criminal
: 50
        thug
: 5
        none
: 0 #Player without tier, 0 by default
        citizen
: -20
        vigilante
: -70
        sheriff
: -150
 
  • You can use this value ONLY on the hit/kill expressions by using the placeholder `%karma_attacker_victim_tier_score%`
----------, Sep 17, 2021

This update is made for developpers who wish to use Karma in their own plugin.

More info here

I have created a Discord server by the way ! you can join it here
----------, Sep 8, 2021

ADDED :
  • Four Custom Events Handlers, for developpers:
    • `OnPlayerOverTimeResetEvent(Player player)` [CANCELLABLE]: Happens before the player OverTime countdown resets.
    • `OnPlayerOverTimeHasResetEvent(Player player)` : Happens after the player OverTime countdown is reset
    • `OnPlayerOverTimeTriggerEvent(Player player)` [CANCELLABLE]: When the player OverTime triggers
    • `OnPlayerOverTimeHasTriggeredEvent(Player player)` : Happens after ther player OverTime has been triggered.
CHANGES :
  • Added optional parameters in players karma edit commands:
    • At the end of command, indicates if the player overtime countdown must be reset.
    • TRUE by default
    • Syntaxes :
      • /karma set/add/remove [PLAYER] [VALUE] (true/false)
      • /karma reset [PLAYER] (true/false)
----------, Sep 6, 2021

PLEASE UPDATE YOUR CONFIG.YML FILE BEFORE INSTALLING THIS PLUGIN VERSION. CHECK THE WIKI FOR MORE INFORMATIONS

ADDED :
  • Four Custom Events Handlers, useful for devs (Before I did not used them, sorry):
    • `OnPlayerKarmaChangeEvent(Player player, double karma)` [CANCELLABLE]: Happens before the player karma is changed.
    • `OnPlayerKarmaHasChanged(Player player, double karma)` : Happens after the player karma is changed.
    • `OnPlayerTierChangeEvent(Player player, Tier tier)`: Before the player tier changes
    • `OnPlayerTierHasChanged(Player player, Tier tier)` : Happens after ther player tier is changed.
  • Commands on overtime system for decrease and increase.
    • `overtime.values.decrease/increase.commands`
  • Commands on kills between tiers that launch if a player with tier X kills another player with a tier that has X in the killed-commands list. It is possible to use both attacker and victim placeholders
    • Example:
      • `tiers.list.tier1.commands.killed-commands.tier2` will send commands when a tier2 kills a tier1
      • `tiers.list.tier3.commands.killed-commands.tier1` will send commands when a tier1 kills a tier3
CHANGES :
  • Every commands in tiers are now under `tiers.list.[tier].commands` section
  • `tiers.list.[tier].commands.killed-commands` in config.yml is now a section.
  • `tiers.list.[tier].commands.killed-commands.commands` in config.yml is now the command list for when a player dies in this tier.
FIXES :
  • World time system that wasn't working properly

P reviously, my versions numbers weren't really useful. From this version, I want to make my code better, by providing an API to developpers. This will be avaiable soon.

X.Y.Z versions number will be:

X - Complete rewrite of the code, even if the config.yml doesn't need to be updated.
Y - Added or highly changed an entire feature. It can need an update in the config.yml
Z - Only for code optimizations, fixes or some little changes without impact on the config.yml
----------, Aug 28, 2021

This is a Beta Build for Spigot 1.17+ (and previous versions). Please test it on a clean server before using it. Maybe the compatilities with Worldguard and PlaceholdersAPI are broken. Feel free to report any problem on github.

ADDED
  • Added compatibility with Spigot 1.17 and superior versions (Java 16+)
    • you can still using this plugin in Minecraft 1.16.X and previous versions (Java 8)
  • The "/karma calculate" command:
    • This will help you to test some expressions outside combat.
    • If PAPI compatibility isn't broken, you can use some placeholders as long the sender is a player.
    • The command is "/karma calculate [expression]". Examples
      • /karma calculate sqrt(50 + 3^4) /53
      • /karma calculate -1500 + cos(%karma_player_karma%)
    • Needs the karma.calculate permission.

CHANGES
  • In case of errors of karma calculations, the result will always be 0 and an error message sent in the console with the expression used instead of sending errors and breaking the code. Useful in the case of division per 0.
  • Added a help line with the calculate command.
----------, Aug 18, 2021

FIXES
  • Errors when players hit or kill while using the crime-time feature. If you still have a problem for some players, use this:
    • sql:
      Code (Text):
      UPDATE `karma` SET `Last_Attack`= "1970-01-01 01:00:00" WHERE `Last_Attack` IS NULL
    • Local files: set last-attack to 0 on every files without last-attack or if null
  • Miscalculations when players fight eachother while the decimal format is different of 0.
----------, Jul 8, 2021

FIX
  • Error when saving datas of a player who attacked something else
  • Debug messages that show in the console
  • Error on loading the player data if never attacked something else
----------, Jul 7, 2021

PLEASE UPDATE YOUR CONFIG.YML AND YOUR LANG FILES, THE PLACEHOLDERS HAVE CHANGED DRASTICALLY. CHECK THE WIKI FOR MORE INFOS

CHANGES :

  • Placeholders have been changed to fit with the PAPI style.
  • Placeholders for killed-commands in tiers can be used for the killer and the victim.
  • Cloning the source code on github and renaming the plugin will be easier. Recompiling with a custom name will help you to use Karma multiple time on the same server, useful to create DnD alignements.
----------, Jul 4, 2021

One issue occured since some versions of the plugin. In order to fix it, just update to this version.

FIXED
:
  • Fights do not change karma or send messages if `world-fight-system.active` is not set on TRUE or isn't NULL.
----------, Apr 20, 2021

PLEASE UPDATE YOUR CONFIG.YML WITH THE OVERTIME FEATURE.

(add this following code inside config.yml)
Code (YAML):
overtime : #Useful for GTA Wanted Level. Reset when karma changes from fights and commands.
  active
: false
  first-delay
: 60 #first occurrence in seconds after a karma change.
  next-delay
: 10 #every occurrences in seconds after the first one
  values
:
    decrease
:
      value
: 5
      limit
: 0
    increase
:
      value
: 5
      limit
: 0
Added:
  • Change karma overtime :
    • Made to change the karma of players automatically over time
    • Can be used to both increase and decrease karma depending of situation (if you want to automatically stabilize karma somewhere between minimum and maximum karma)
    • The overtime feature uses two delays: first and next.
      • First delay is used when a player see his karma changed by hit, kill or command. It can be used to set a period of time before your karma can change over time.
      • next delay is used once the first karma change overtime is done: perfect to make the karma change quicker or slower after the first one. it is used indefinetly until the player see his karma changed with hit/kill/command.
  • Tier command on death :
    • on tiers, can be used to launch commands when a player inside specified tier is killed: it works only if player is killed and not from a natural death. Perfect to put criminals in jails and put their karma back to default.
----------, Apr 16, 2021

It is advised but OPTIONAL to update your config.yml file with the following message.

ADDED:
  • Save new values in players data file/karma table in database:
    • On players data file, the following values will be added on the next players saves (don't update yourself so):
      • previous-karma : The previous karma the player had
      • previous-tier : The previous tier the player had
    • On database, the following columns will be added automatically to avoid errors.
      • Previous_Karma : The previous karma the player had
      • Previous_Tier: The previous tier the player had
  • Expansion to use player's data of this plugin in your other plugins, here's the placeholder list (it does not replace lang.yml and config.yml placeholders)
    • %karma_karma% : Shows the player's actual karma
    • %karma_previous_karma% Shows the previous karma of player
    • %karma_tier% : Shows the player's actual tier identifier
    • %karma_tier_display% : Shows the player's actual tier display
    • %karma_previous_tier% : Shows the player's previous tier identifier
    • %karma_previous_tier_display% : Shows the player's actual karma
    • %karma_last_attack% : Shows the player's last non-justified attack.
  • Added new value to config.yml :
    • Code (YAML):
      general:
          date-time-format
      : "yyyy-MM-dd HH:mm:ss" "#string
      It is used to format the %karma_last_attack% PAPI placeholder.
----------, Apr 14, 2021

It is advised but OPTIONAL to update your config.yml file with the following message.

ADDED:
  • Save new values in players data file/karma table in database:
    • On players data file, the following values will be added on the next players saves (don't update yourself so):
      • previous-karma : The previous karma the player had
      • previous-tier : The previous tier the player had
    • On database, the following columns will be added automatically to avoid errors.
      • Previous_Karma : The previous karma the player had
      • Previous_Tier: The previous tier the player had
  • Expansion to use player's data of this plugin in your other plugins, here's the placeholder list (it does not replace lang.yml and config.yml placeholders)
    • %karma_karma% : Shows the player's actual karma
    • %karma_previous_karma% Shows the previous karma of player
    • %karma_tier% : Shows the player's actual tier identifier
    • %karma_tier_display% : Shows the player's actual tier display
    • %karma_previous_tier% : Shows the player's previous tier identifier
    • %karma_previous_tier_display% : Shows the player's actual karma
    • %karma_last_attack% : Shows the player's last non-justified attack.
  • Added new value to config.yml :
    • Code (YAML):
      general:
          date-time-format
      : "yyyy-MM-dd HH:mm:ss" "#string
      It is used to format the %karma_last_attack% PAPI placeholder.
----------, Apr 14, 2021

AN UPDATE OF YOUR CONFIG.YML AND LANGUAGE FILE IS ADVISED.

ADDED :
  • You can now enable / disable karma's change in fights on specific worlds (check the main page ! Request from KingsRequin on Github)
  • Added one line on language files :
    • too-few-arguments : triggers when there is not enough arguments on command
CHANGES :
  • Too see your karma or karma from another player, the command is now /karma check (player)
  • In language files, disconnected-player is now disconnected
  • In language files, help is now a List of string (check the structure in main page !)
----------, Mar 26, 2021

PLEASE UPDATE YOUR CONFIG.YML AND LANGUAGE FILES BEFORE UPDATING. Check the main page.

I call this a 1.5.0 and not 1.4.9 because the plugin will work almost exactly like before for default users.

CHANGES:

  • Drastically improved almost everything in the code, from readability to performances :
    • Players datas are now saved on period (every 5 mins by default, can be changed in config.yml) instead of on every events. This was the most important issue with my unknowledge of java ^^
    • Displaying the previous tier or/and karma will not make a request in files/database.
----------, Mar 17, 2021

PLEASE UPDATE YOUR CONFIG.YML BEFORE UPDATE

FEATURES

  • Compatibility set for mysql, mariaDB and everything working on jdbc (needs some tests !)
  • pvp rewards formula (on hit / kill) are now fully configurable.

FIXES
  • Error on a first connection per player if Karma uses the local players files
  • Fixed Last_Attack update on SQL servers.

CHANGES
  • Updated default config.yml
    • Removed "mysql.active"
    • Added "mysql.connector" that can use mysql, mariadb or none (or something else)
    • Removed "pvp.hit-reward-variables" and "pvp.kill-reward-variables".
    • Added " pvp.hit-reward-expression" and "kill-reward-expression" where you can put your own mathematical expression
      • These expressions can use <VICTIM_KARMA> to use the vic'im's karma.
----------, Jul 8, 2020

ADDED
  • <MESSAGE> in tier-change commands : Placed at the beginning of the line, the content will be sent directly to the player.
  • /karma help command : With custom text inside lang files, can be used to send list of command to the sender. players need karma.help permission, granted by default.
  • On edit command (/karma add / remove / set), if the value isn't a number, a custom (lang file) message will be sent to sender.
CHANGES
  • Updates into players file and database are now asyncronous to improve performances.
FIXES
  • Hitting a CustomNPC NPC without Karma metadata set changes player karma even if the NPC is unvulnerable.
----------, Jun 27, 2020

ADDED
  • Compatibility with PAPI placeholders tested with Players and servers from PAPI ecloud).
    • You can put
  • general.use-action-bar-on-actions: <boolean> in config.yml
    • if TRUE, send hit / kill messages on the actionbar instead of chat.
----------, Jun 4, 2020

FIXED
  • <victimkarma> hasn't been updated on the deault config generation. Changed to <VICTIM_KARMA>.
----------, Jun 3, 2020

!!! READ AND APPLY THE CHANGES BEFORE UPDATINGN TO 1.4.6 !!!

The actual placeholders doesn't work anymore, same for victimKarma inside the Config -> PvP -> Formula. Please read the explanations on the plugin page

ADDED

  • New local "placeholders" for commands, language files, tier commands, etc... You can see them on the main page
  • decimal-number-to-show: <int> Limit the number of decimal digits to the specified value on display (doesn't affect datas and calculations)
CHANGES
  • The old placeholders doens't work anymore.
  • pvp.hit-reward-variables.2 can't use "<victimKarma>" anymore but uses "<VICTIM_KARMA>" now. Replace this in priority.
FIX
  • Removed commands-on-down in tiers executing on a new player.
----------, Jun 2, 2020

ADDED
  • Self-defense system. Set a player as agressor if he attacks a non-aggressor player if pvp.crime-time.enable is TRUE inside Config.yml
    • This feature isn't used if the victim is a Citizen's NPC.
  • The aggressor stays in this state for the delay in seconds specified in pvp.crime-time.delay inside Config.yml.
  • Every non-agressor player can attack an agressor without karma change if
    • They won Karma and pvp.crime-time.active-on-up is FALSE in Config.yml
    • They don't have their Karma changed and pvp.crime-time.active-on-still is FALSE in Config.yml
    • They lose Karma and pvp.crime-time.active-on-down is FALSE in Config.yml

    • Even if the karma changes, they will not become agressors.
CHANGES
  • Added two lines in the languages files. THEY NEED TRANSLATIONS !
    • self-defending-off : When a non-agressor player defends himself against an agressor but his Karma isn't changed.
    • self-defending-on : When a non-agressor player defends himself against an agressor AND his Karma is changed.
FIXES
  • Some errors when a player hits / kills a citizen NPC
  • The first attack once connected of a player doesn't trigger Karma changes / check etc.
----------, May 30, 2020

ADDED
  • Uses the PvP hit : kills formula.
    • If the npc killed doesn't have Karma metadata, Karma changes on hit/kill will be cancelled for player
    • If npc have a karma metadata (even at any value), karma changes on hit / kill will use it if "victimKarma" is writed in the formula
----------, May 22, 2020

Fixed
  • Error messages when a Citizen NPC hit / kill an entity
Hit / kill a Citizen NPC doesn't change your karma atm, this feature will be added later.
----------, May 21, 2020

ADDED
  • commands-on-up: same use as "commands" but is used only if the previous player tier is before in the list
  • commands-on-down: same use as "commands" but is used only if the previous player tier is after in the list
CHANGES
  • Karma commands aren't case sensitive anymore.
  • commands, commands-on-up and commands-on-down can be empty / deleted.
FIXES
  • Some errors messages if the new player tier doesn't have any command listed.
----------, May 20, 2020

You must add "chance : <int>" inside every times slot if you update the plugin !


ADDED

  • Added karma-change-chance flag for WorldGuard regions
    • This flag must be set between 0 and 100 as integer
    • Default at 100
    • Percentage of chance to changes karma when hit / kill
  • Added chance on times slot
    • Percentage of chance to changes karma when kill / hit depending of time hour
    • Must be set between 1 and 100 as integer (Don't put a time slot if you want 0 ;D )
CHANGES
  • You must add "chance : <int>" inside every times slot.
  • use-both-system-and-worlds-time doesn't need upcase anymore.
----------, May 18, 2020

ADDS :
  • Softdepends with WORLDGUARD 7+
  • Custom worldguard region flag : karma-multiplier
    • karma-multiplier is a double.
    • karma-multiplier multiply the karma won/loss on kills/hit if setup in a region where the player killer stands.
    • Can be used only if general.use-worldguard is TRUE
CHANGES :
  • Every values linked to karma are now DOUBLES to be compatible with karma-multiplier flag
    • Doubles can uses decimal numbers, no need to changes the values in the config.
FIXES :
  • Non-specified API on plugin starts
----------, May 15, 2020

FIXED
  • Error message if a non-player entity shoots another entity since times range had been added (1.3.0)
----------, May 8, 2020

ADDED
  • You can now specify on which times range a player can lose / won karma when hitting / killing an entity
  • Options list
    • NONE : doesn't use the hours range systems
    • SYSTEM: check if the server locale time is inside one of the systems times ranges.
    • WORLDS: check if the server locale time is inside one of the systems times ranges based on the world of the attacker.
    • BOTH: check both SYSTEM and WORLDS checks. Both must be true.
----------, May 2, 2020

ADDED
  • Added KARMA RELOAD command.
    • This command isn't functionnal yet.
    • Deny the research of infos about "Reload" player.
  • Added a new feature, the times check:
    • on hit/kill something
    • Can be disabled
    • check only server time system
    • planned to add worlds hours check and BOTH server/world time
    • If the hit/kill isn't set inside a hour fork in the config.yml, attacker karma will not change.
    • You can add many hours forks as you wish
----------, Apr 25, 2020

FIXES
  • Fixed tiers command aren't launched on tier change
----------, Apr 12, 2020

FIXES :
  • Fixed Tier commands that aren't launched when the player changes of tier.
  • Fixed
    Code (Text):
    /karma <player>
    that displays his tier identifier instead of displaying tier
  • Fixed some MySQL errors when player connect once added to the database.
----------, Apr 12, 2020

FEATURES :
  • Added MySQL databases config support. please update your config.yml
  • Some optimizations in the code (Getters, setters, less useless classes, better structure...), it's lighter than the previous versions !
TO DO :
  • At the moment, request are synchronized. That will be changed soon.
  • there is the "Legacy plugin Karma v1.1.2 does not specify an api-version." message. That will be fixed soon.
----------, Apr 11, 2020

Just some code improvement and cleaning.
----------, Apr 9, 2020

ADD :
  • Spanish (es_ES.yml) language to the lang folder generation (Thanks to @matahombres !)
FIX :
  • Tiers displays their identifier instead of display name on commands / actions
  • Some errors language inside Romanian lang file (ro_RO.yml), thanks to @R3sTr1cT again for the base file !
----------, Apr 5, 2020

FEATURES
  • Updated config.yml to 1.1
  • messages in config.yml are removed
  • Plugin now generates languages files into karma/lang/ if that folder doesn't exists:
    • Added en_EN.yml
    • Added fr_FR.yml
    • Added ro_RO.yml ( thanks to @R3sTr1cT )
  • Karma now send message from the language choosed in Config.yml
FIXES
  • Fixed a wrong language generation in karma/lang/ folder
----------, Mar 26, 2020

FIXED :
  • Error messages when an entity his hit or killed without hit/kill message in the config.
----------, Mar 22, 2020

Resource Information
Author:
----------
Total Downloads: 4,889
First Release: Mar 15, 2020
Last Update: Nov 9, 2024
Category: ---------------
All-Time Rating:
7 ratings
Find more info at github.com...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings