Daily Bonus

DailyBonus

Source: https://www.spigotmc.org/resources/daily-bonus-1-7-1-13-2-increase-player-retention.13974/

NOTICE: All default configuration values are based on 1.8. This means if you are attempting to use 1.9 or above you will have to modify the config to use updated values before anything will work.

Images.png

[​IMG]

About.png

You may be wondering what is Daily Bonus? Daily Bonus is a plugin focused on giving players an incentive to join your server every day. With this plugin you can easily reward players for continually returning giving them better rewards for the longer the streak!

Created and compiled with Java 8
Support for versions earlier than Spigot 1.7.10 will not be provided

Features.png

Some of just many features that this plugin includes are:

– MySQL support for cross server syncing
– Completely automated
– Set an unlimited amount of rewards
– Set clickable NPC’s
– Customize the menu items, names etc.
– Click to receive rewards
– Choose from 5 menu designs
– Well designed menu
– Required playtime check
– IP single claim protection
– Unique permission rewards
– Specialized player checks
– Auto opens on join (if reward available)
– Can view daily progression menu with command
– Autosaves timers on server stop
– Initializes timers on server start
– Adjustable delay timer
– Reminder messages (if reward available)
– Editable menu lores
– PlaceholderAPI & MVdWPlaceholder integration
– Updating lore placeholders
– Action based rewards
– JavaScript action integration
– Vault economy support
– Custom received lore
– And much more!

Commands.png

The plugin does not feature too many commands as it is all mainly automated by the plugin itself using events. These are the current commands featured in this plugin.

Command: /dailybonus – opens the bonus menu
Permission: dailybonus.menu.open

Command: /dailybonus test <reward #> – tests the actions for the specific reward

Command: /dailybonus reset <player name> – resets the players day count
Permission: dailybonus.admin

Command: /dailybonus set <player name> <amount> – sets the players day count to the specified value
Permission: dailybonus.admin

Command: /db npc create – toggles NPC create mode, next right clicked entity will be set
Permission: dailybonus.admin

Command: /db npc delete – toggles NPC delete mode, next right clicked NPC will be deleted
Permission: dailybonus.admin

Command: /dailybonus reload – reloads the plugin files
Permission: dailybonus.admin

In addition to the per command permissions the plugin also contains the following permissions with different purposes.

Permission: dailybonus.menu – allows for players to get rewards and view the menu on join

Permisison: dailybonus.exempt – disallows the player from getting rewards

Set-Up.png

Regular Installation:
1 – Place DailyBonus.jar into your servers plugins folder
2 – Restart your server
3 – Edit config and rewards yml to your liking
4 – Either reload or restart your server
5 – Watch your player retention grow!

MySQL Installation:
1 – Place the DailyBonus.jar into your servers plugin folder
2 – Restart the servers
3 – Set the MySQL settings in the config yml
4 – Configure the rest of the files to your liking
5 – Restart the servers

Other.png

Actions:
Actions are what will be executed when the player is eligible to receive a reward. Actions range from player commands, to console commands, and even more such as whether or not a sound will play. They are completely configurable to your liking however when defining them know that they are CaSe-Sensitive.

[Chance=<percentage>] [<action>] – Chance out of 100% that this action will be performed
[Delay=<time>] [<action>] – Delays the action to be performed after the delay period in seconds
[SyncTask][<action>] – Performs the action in sync with the server tick
[PlayerCommand] <command> – Executes the command as a player
[ConsoleCommand] <command> – Executes the command as the console
[OperatorCommand] <command> – Executes the command as an operator
[Broadcast] <message> – Broadcasts the following message to the server
[Message] <message> – Sends the following message to the player
[Sound] <sound value> – Plays the sound for the player
[JSONBroadcast] <json> – Sends the JSON message to the server
[JSONMessage] <json> – Sends the JSON message to the player
[VaultGive] <amount> – Adds the amount to the players Vault economy balance
[VaultTake] <amount> – Takes the amount from the players Vault economy balance
[Teleport] <world name>;<x>;<y>;<z> – Teleports the player to the specified coordinates
[TitleBroadcast] <title> – Displays the title for the server
[TitleBroadcast] <title>;<subtitle> – Displays the title & subtitle for the server
[Title] <title> – Displays the title for the player
[Title] <title>;<subtitle> – Displays the title & subtitle for the player
[ActionbarBroadcast] <message> – Displays the action bar message for the server
[Actionbar] <message> – Displays the action bar message for the player
[Bungee] <server> – Sends the player to the specified bungee server

Example action:
– ‘[Delay=5] [ConsoleCommand] op %player%’

The above action would wait 5 seconds after they have opened the GUI to receive their rewards then run command ‘op %player%’ giving operator status to whoever was the receiver of the reward

JavaScript Actions:
You can also use JavaScript in your actions to further enhance what you can do with your rewards and other parts of the plugin.

Objects:

  • BukkitPlayer – The player who the action is being executed for
  • DailyBonus – The instance of the plugin

Example:

Code (Text):
[ConsoleCommand] eco give %player% [JavaScript=%dailybonus_day% * 20]

Placeholders:
In the plugin there are a few placeholders you can choose from for use in either item lore, messages, or actions. They can be very useful when trying to execute complex or even basic rewards.

Code (Text):

Player Placeholders:

%player% – players name
%player_displayname% – players display name
%player_saturation% – players saturation
%player_hunger% – players hunger
%player_health% – players health
%player_x% – players X coordinate
%player_y% – players Y coordinate
%player_z% – players Z coordinate
%player_world% – players world name
%player_level% – players level
%player_exp% – players experience
%dailybonus_days% – players consecutive days
%dailybonus_delay% – delay before players next reward

Other Placeholders:

%server_motd% – message of the day
%server_maxplayers% – player maximum limit
%server_playercount% – amount of online players

PlaceholderAPI 2.3.0+
Download DailyBonus placeholders in-game using PlaceholderAPI and the following command. It will automatically download the extension to your PlaceholderAPI extensions folder.

/papi cloud download dailybonus

Files.png

Code (Text):
# ======================================================
#
# DailyBonus Version: 2.1.4
# Created by: JC_Plays_MC
#
# ======================================================
#
# This is the DailyBonus configuration file where all general settings
# and other plugin toggles will be found. If you have any questions feel free
# to ask me preferably by PM on spigot. Also if you have any feature suggestions
# or anything like that i’m always open to new ideas.
#
# Thank you for supporting this project!
#
# ======================================================
#
# Settings Configuration
#
# If you plan on saving data to a MySQL database for use with the receiver plugin
# use_mysql: false
#
# Your MySQL settings (only required if using MySQL)
# host: localhost
# port: 3306
# database: database
# username: user
# password: pass
#
# Determines whether or not players can claim rewards on this server
# allow_claiming: true
#
# If set to true it will reward players for joining each calendar day
# use_universal_timer: false
#
# The delay in seconds before a bonus can be claimed again
# delay_between_bonuses: 86400
#
# The amount of time the player has to claim their bonus before their consecutive
# day count is to be reset
# claim_bonus_timeframe: 86400
#
# The name you want for the bonus menu
# menu_name: ‘&8Daily Bonus’
#
# The size of the bonus menu, the value can be between 1-5. (1 = Smallest, 5 = Largest)
# menu_size: 1
#
# Whether or not you want the menu border items to update the lore placeholders. This is
# mainly used to give the player the time before they can claim their next bonus
# update_lore: true
#
# Whether or not you want the menu to open on join (if a reward is pending)
# open_on_join: true
#
# Determines whether or not the menu should automatically open once a reward is available
# open_if_online: true
#
# The delay in seconds after joining before the menu opens (if reward available)
# open_delay: 1
#
# Require the player to click the pending item in the menu to be rewarded
# click_to_claim: false
#
# Determines whether or not you want the menu to close upon clicking any item within
# close_on_click: true
#
# Determines whether or not players can recieve the first reward immediately on first join
# instant_claim: false
#
# This will determine whether or not multiple players can claim their reward on the same IP adress
# allow_same_ip: false
#
# Will determine whether or not items in the menu use 1.8 item flags
# use_item_flags: true
#
# The string to use if the players delay time is equal to zero
# placeholder_string: ‘Claim your bonus now!’
#
# Whether or not the player has to move before being able to claim their bonus
# require_movement: true
#
# The time in seconds that the player must be on online before receiving their reward
# required_playtime: 300
#
# The time in seconds that the player must be on online before receiving their reward
# required_playtime: 300
#
# Whether or not you want the player to recieve a message when his reward is available
# notify_player: true
#
# Whether or not you want the player’s day count to reset after receiving the last reward
# reset_after_last_reward: false
#
# The value to be used in the %coloured_glass% placeholder if the reward is claimed
# placeholder_data_claimed: 5
#
# The value to be used in the %coloured_glass% placeholder if the reward is unclaimed
# placeholder_data_unclaimed: 15
#
# The item material to be used for the border of the menu (<material>;<amount>;<data value>)
# border_item: STAINED_GLASS_PANE;1;%coloured_glass%
#
# The item name to be used for the border of the menu
# border_name: ‘&bDaily Bonus’
#
# The lore used on the border items of the menu
# border_lore:
# ‘&7Come back every day to receive’
# ‘&7your daily bonus!’
# ”
# ‘&aThe more days in a row you’
# ‘&ajoin the better the reward!’
# ”
# ‘&cYou must wait: &7%dailybonus_delay%’
# ‘&cbefore claiming your next bonus’
#
# All DailyBonus NPC’s locations will be stored here. (Recommended not to touch)
# registered_npc: [] #
# ======================================================use_mysql: false
host: localhost
port: 3306
database: database
username: user
password: pass
allow_claiming: true
use_universal_timer: false
delay_between_bonuses: 86400
claim_bonus_timeframe: 86400
menu_name: ‘&8Daily Bonus’
menu_size: 1
update_lore: true
open_on_join: true
open_if_online: true
open_delay: 1
click_to_claim: false
close_on_click: true
instant_claim: false
use_item_flags: true
allow_same_ip: false
require_movement: true
placeholder_string: Claim your bonus now!
required_playtime: 300
notify_player: true
reset_after_last_reward: false
placeholder_data_claimed: 3
placeholder_data_unclaimed: 15
border_item: STAINED_GLASS_PANE;1;%coloured_glass%
border_name: ‘&bDaily Bonus’
border_lore:
– ‘&7Come back every day to receive’
– ‘&7your daily bonus!’
– ”
– ‘&aThe more days in a row you’
– ‘&ajoin the better the reward!’
– ”
– ‘&cYou must wait: &7%dailybonus_delay%’
– ‘&cbefore claiming your next bonus’
registered_npc: []

 

Code (Text):
# ======================================================
#
# DailyBonus Version: 2.1.4
# Created by: JC_Plays_MC
#
# ======================================================
#
# Rewards File
#
# This is the rewards file where you will define what rewards a player
# will receive for each consecutive day joined. The maximum amount of displayed rewards
# allowed is 54 and if there is less than the highest reward will be applied to
# the remaining amount of slots
#
# ======================================================
#
# Example Reward
#
# rewards:
#   <reward identifier>:
#     value: <0-6>
#     default_lore:
#     – <line of lore>
#     received_lore:
#     – <line of lore>
#     actions:
#     – <actions>
#
# Rewards Index:
#
# <rewards number> | The reward identifier, each must be different
# value: <0-6> | The amount of consecutive days required to get this reward (0 = lowest, 6 = highest)
# default_lore: – <line of lore> | The reward lore to be displayed on the item
# received_lore: – <line of lore> | The reward lore to be displayed if the player has recived this reward
# actions: – <actions> | The actions to be executed once the player reaches this reward
# permission_actions: – <actions> | The actions if the player has the permission: ‘dailybonus.premium’
#
# ======================================================
#
# Valid Actions:
#
# ** Please note that all actions are case-sensitive **
#
# [Chance=<percent>] [<action>] – Chance out of 100% that this action will be performed
# [Delay=<time>] [<action>] – Delays the action to be performed after the delay period in seconds
# [PlayerCommand] <command> – Executes the command as a player
# [ConsoleCommand] <command> – Executes the command as the console
# [OperatorCommand] <command> – Executes the command as the console
# [Broadcast] <message> – Broadcasts the following message to the server
# [Message] <message> – Sends the following message to the player
# [JSONBroadcast] <message> – Sends the following json message to the server
# [JSONMessage] <message> – Sends the following json to the player
# [Sound] <sound value> – Plays the sound for the player
# [VaultGive] <amount> – Adds the amount to the players Vault economy balance
# [VaultTake] <amount> – Take the amount from the players Vault economy balance
# [Teleport] <world name;x;y;z> – Teleports the player to the specified coordinates
# [Teleport] <world name;x;y;z;yaw;pitch> – Teleports the player to the specified coordinates
# [Title] <title> – Displays the title for the player
# [Title] <title>;<subtitle> – Displays the title & subtitle for the player
# [ActionBar] <message> – Displays the message in the actionbar for the player
# [Bungee] <server> – Sends the player to the specified bungee server
#
# ======================================================rewards:
‘0’:
value: 0
default_item: COAL_BLOCK;%amount%;0
default_name: ‘&cReward #%amount%’
default_glow: false
default_lore:
– ‘&7Come back every day to’
– ‘&7receive even better rewards!’
– ”
– ‘&e&lReward:’
– ‘&f- $5000’
received_item: EMERALD_BLOCK;%amount%;0
received_name: ‘&aReward #%amount%’
received_glow: false
received_lore:
– ‘&7Keep up the streak to receive’
– ‘&7even better rewards!’
– ”
– ‘&a&lCompleted!’
pending_item: GOLD_BLOCK;%amount%;0
pending_name: ‘&eReward #%amount%’
pending_glow: true
pending_lore:
– ‘&7Come back tomorrow to receive’
– ‘&7this reward!’
– ”
– ‘&e&lReward:’
– ‘&f- $5000’
actions:
– ‘[Message] &aYou have received a daily bonus of $5000!’
– ‘[VaultGive] 5000’
permission_actions:
– ‘[Message] &aYou have received a daily bonus of $10000!’
– ‘[VaultGive] 10000’
‘1’:
value: 1
default_item: COAL_BLOCK;%amount%;0
default_name: ‘&cReward #%amount%’
default_glow: false
default_lore:
– ‘&7Come back every day to’
– ‘&7receive even better rewards!’
– ”
– ‘&e&lReward:’
– ‘&f- $10000’
received_item: EMERALD_BLOCK;%amount%;0
received_name: ‘&aReward #%amount%’
received_glow: false
received_lore:
– ‘&7Keep up the streak to receive’
– ‘&7even better rewards!’
– ”
– ‘&a&lCompleted!’
pending_item: GOLD_BLOCK;%amount%;0
pending_name: ‘&eReward #%amount%’
pending_glow: true
pending_lore:
– ‘&7Come back tomorrow to receive’
– ‘&7this reward!’
– ”
– ‘&e&lReward:’
– ‘&f- $10000’
actions:
– ‘[Message] &aYou have received a daily bonus of $10000!’
– ‘[VaultGive] 10000’
permission_actions:
– ‘[Message] &aYou have received a daily bonus of $20000!’
– ‘[VaultGive] 20000’
‘2’:
value: 2
default_item: COAL_BLOCK;%amount%;0
default_name: ‘&cReward #%amount%’
default_glow: false
default_lore:
– ‘&7Come back every day to’
– ‘&7receive even better rewards!’
– ”
– ‘&e&lReward:’
– ‘&f- $25000’
received_item: EMERALD_BLOCK;%amount%;0
received_name: ‘&aReward #%amount%’
received_glow: false
received_lore:
– ‘&7Keep up the streak to receive’
– ‘&7even better rewards!’
– ”
– ‘&a&lCompleted!’
pending_item: GOLD_BLOCK;%amount%;0
pending_name: ‘&eReward #%amount%’
pending_glow: true
pending_lore:
– ‘&7Come back tomorrow to receive’
– ‘&7this reward!’
– ”
– ‘&e&lReward:’
– ‘&f- $25000’
actions:
– ‘[Message] &aYou have received a daily bonus of $25000!’
– ‘[VaultGive] 25000’
permission_actions:
– ‘[Message] &aYou have received a daily bonus of $50000!’
– ‘[VaultGive] 50000’
‘3’:
value: 3
default_item: COAL_BLOCK;%amount%;0
default_name: ‘&cReward #%amount%’
default_glow: false
default_lore:
– ‘&7Come back every day to’
– ‘&7receive even better rewards!’
– ”
– ‘&e&lReward:’
– ‘&f- $50000’
received_item: EMERALD_BLOCK;%amount%;0
received_name: ‘&aReward #%amount%’
received_glow: false
received_lore:
– ‘&7Keep up the streak to receive’
– ‘&7even better rewards!’
– ”
– ‘&a&lCompleted!’
pending_item: GOLD_BLOCK;%amount%;0
pending_name: ‘&eReward #%amount%’
pending_glow: true
pending_lore:
– ‘&7Come back tomorrow to receive’
– ‘&7this reward!’
– ”
– ‘&e&lReward:’
– ‘&f- $50000’
actions:
– ‘[Message] &aYou have received a daily bonus of $50000!’
– ‘[VaultGive] 50000’
permission_actions:
– ‘[Message] &aYou have received a daily bonus of $100000!’
– ‘[VaultGive] 100000’
‘4’:
value: 4
default_item: COAL_BLOCK;%amount%;0
default_name: ‘&cReward #%amount%’
default_glow: false
default_lore:
– ‘&7Come back every day to’
– ‘&7receive even better rewards!’
– ”
– ‘&e&lReward:’
– ‘&f- $75000’
received_item: EMERALD_BLOCK;%amount%;0
received_name: ‘&aReward #%amount%’
received_glow: false
received_lore:
– ‘&7Keep up the streak to receive’
– ‘&7even better rewards!’
– ”
– ‘&a&lCompleted!’
pending_item: GOLD_BLOCK;%amount%;0
pending_name: ‘&eReward #%amount%’
pending_glow: true
pending_lore:
– ‘&7Come back tomorrow to receive’
– ‘&7this reward!’
– ”
– ‘&e&lReward:’
– ‘&f- $75000’
actions:
– ‘[Message] &aYou have received a daily bonus of $75000!’
– ‘[VaultGive] 75000’
permission_actions:
– ‘[Message] &aYou have received a daily bonus of $150000!’
– ‘[VaultGive] 150000’
‘5’:
value: 5
default_item: COAL_BLOCK;%amount%;0
default_name: ‘&cReward #%amount%’
default_glow: false
default_lore:
– ‘&7Come back every day to’
– ‘&7receive even better rewards!’
– ”
– ‘&e&lReward:’
– ‘&f- $100000’
received_item: EMERALD_BLOCK;%amount%;0
received_name: ‘&aReward #%amount%’
received_glow: false
received_lore:
– ‘&7Keep up the streak to receive’
– ‘&7even better rewards!’
– ”
– ‘&a&lCompleted!’
pending_item: GOLD_BLOCK;%amount%;0
pending_name: ‘&eReward #%amount%’
pending_glow: true
pending_lore:
– ‘&7Come back tomorrow to receive’
– ‘&7this reward!’
– ”
– ‘&e&lReward:’
– ‘&f- $100000’
actions:
– ‘[Message] &aYou have received a daily bonus of $100000!’
– ‘[VaultGive] 100000’
permission_actions:
– ‘[Message] &aYou have received a daily bonus of $200000!’
– ‘[VaultGive] 200000’
‘6’:
value: 6
default_item: COAL_BLOCK;%amount%;0
default_name: ‘&cReward #%amount%’
default_glow: false
default_lore:
– ‘&7Come back every day to’
– ‘&7receive even better rewards!’
– ”
– ‘&e&lReward:’
– ‘&f- $250000’
received_item: EMERALD_BLOCK;%amount%;0
received_name: ‘&aReward #%amount%’
received_glow: false
received_lore:
– ‘&7Keep up the streak to receive’
– ‘&7even better rewards!’
– ”
– ‘&a&lCompleted!’
pending_item: GOLD_BLOCK;%amount%;0
pending_name: ‘&eReward #%amount%’
pending_glow: true
pending_lore:
– ‘&7Come back tomorrow to receive’
– ‘&7this reward!’
– ”
– ‘&e&lReward:’
– ‘&f- $250000’
actions:
– ‘[Message] &aYou have received a daily bonus of $250000!’
– ‘[VaultGive] 250000’
permission_actions:
– ‘[Message] &aYou have received a daily bonus of $500000!’
– ‘[VaultGive] 500000’

 

Code (Text):
# ======================================================
#
# DailyBonus Version: 2.1.4
# Created by: JC_Plays_MC
#
# ======================================================
#
# Messages File
#
# This is the messages file where all messages found throughout the plugin will be stored.
# You can change these while the server is running however you must use the reload command
# for any and all changes to take effect. Leave a message empty to not have it send anything.
#
# ======================================================messages:
no_permission: ‘&cYou do not have permission to use this command’
exempted_player: ‘&cYou cannot claim rewards as you have the dailybonus.exempt permission!’
invalid_player: ‘&cThe player you have specified is not in the database’
invalid_number: ‘&cThe number specified must be greater than zero’
same_ip: ‘&cA user from this IP address has already claimed their reward’
must_move: ‘&cYou must move on the server before claiming your bonus’
required_time: ‘&cYou must play on the server for %dailybonus_delay% before you
can receive your bonus’
days_reset: ‘&aThe players day count has successfully been reset to zero’
days_set: ‘&aYou have successfully set the players day count to %days%’
pending_create: ‘&aRight-Click the entity you wish to set as a DailyBonus NPC’
pending_delete: ‘&aRight-Click the entity you wish to remove from the DailyBonus
NPC list’
deleted_npc: ‘&aThe selected entity has been removed from the DailyBonus NPC list’
created_npc: ‘&aThe selected entity has been set as a DailyBonus NPC’
invalid_npc: ‘&cThe entity you have selected is not a valid NPC’
npc_exists: ‘&cThe entity you have selected is already a registered NPC’
npc_timeout: ‘&cYou have taken to long to select an entity. The request has been
cancelled’
npc_list_empty: ‘&cYou have not created a DailyBonus NPC yet’
reward_notification: ‘&a%player% you can claim your Daily Bonus! &7/dailybonus’
help:
– ‘&8&m——————————‘
– ‘&bDailyBonus Help’
– ‘&a/dailybonus – &7Opens the DailyBonus menu’
– ‘&a/dailybonus reset <playername> – &7Resets the players day count’
– ‘&a/dailybonus set <playername> <amount> – &7Sets the players day count’
– ‘&a/dailybonus npc create – &7Allows for the creation of a new NPC’
– ‘&a/dailybonus npc delete – &7Allows for you to delete an existing NPC’
– ‘&a/dailybonus reload – &7Reloads the plugin files’
– ‘&8&m——————————‘

 

Code (Text):
# ======================================================
#
# DailyBonus Version: 2.1.4
# Created by: JC_Plays_MC
#
# ======================================================
#
# Player File
#
# This file is used to store all player data based on their UUID.
# If the server is ever stopped or restarted it will save all of
# the current players delay times whether it be the day timer or
# the waiting timer and restart all of them upon starting the server.
#
# Because the plugin depends on this file to save vital data on stops/restarts
# it is highly recommended that you DO NOT edit this fie while the server is on!
#
# ======================================================players:
<player uuid>:
name: JC_Plays_MC
joined_today: false
consecutive_days: 0

Terms Of Service.png

By purchasing this plugin you are in acceptance and agree to adhere to the following terms and conditions stated.

If you have any issues with the plugin you will contact me via PM and I will help you with your issue before you post a negative review stating something like “The plugin doesn’t work”.

I am under no obligation to provide support and do so at my own discretion.

You may not decompile and/or edit the source code without written permission from JC_Plays_MC.

You acknowledge that by running this software we reserve the right to collect device information including but not limited to the IP address.

You also acknowledge that there will be NO REFUNDS issued and you will not file a chargeback, dispute, or claim through PayPal.

Finally you will not redistribute the Daily Bonus plugin or any of its source code publicly or privately.

By purchasing this plugin you are entitled to run it on up to (3) of your own servers, however this does not mean share it with your friends! A server is considered a machine running under a single IP address. If you require additional servers then you can contact JC_Plays_MC for additional licensing purchase options.

Other Resources.png

[​IMG]

Leave a Reply

Your email address will not be published. Required fields are marked *

two × 2 =

Skip to toolbar