
RulesAgreement is a simple utility plugin designed specifically for my needs. I decided to release it publically, as it seems to fill a void. I hope you enjoy it. I will be working to expand on it. Please be sure to read the entire page. Thanks!
Pictures:
Pictures
In Action:
https://gfycat.com/ifr/OrangeLoneGannet
Permission Nodes:
Permission Nodes
rules.use - Let's a player go through the rank up process.
rules.reload - Permission for /rules reload command.
(If you're using inheritance [as you should be] you will want to negative node this for your non-guest ranks)
Config:
config.yml
# RulesAgreement Configuration File
# Author: [email protected]
# Version: 3.0.1-SNAPSHOT
# Developer debug - used for plugin development.
# (Default: false)
Debug: false
# If you don't want to use the Rank portion of this plugin, and only want to use the
# plugin as a fancy way to display your /rules. Set this to true. Upon completing /rules
# the player will still receive any and all rewards, but will be set to "has read the rules"
# and won't receive them again.
# (Default: false)
No Rank Up: false
# Should we send a message to a new player when they join? This will create clear the players screen.
# You can add any message you like here, but I suggest something along the lines of informing them to
# type /rules to get promoted. Anything else you like is up to you.
# (Default: false)
Send Welcome: false
# Should we freeze a player until he accepts the /rules?
# (Default: true)
Freeze Player: true
# What message should we send to the player when he attempts to move?
# Color code support.
# Use %player% to insert the players name.
# (Default: "&f[&6Rules&f] You must accept the rules first %player%.")
Freeze Message: "&f[&6Rules&f] You must accept the rules first %player%."
# What delay for anti-spam purposes, should we have between Freeze Messages?
# Time is in seconds.
# (Default: 10)
Freeze Anti-Spam: 10
# How long should we wait to send the welcome messages? Some servers have a large amount of content sent
# when a player joins. This ensures this is actually read! I suggest no more than 5 seconds.
# (Default: 2)
Welcome Delay: 2
# If set to true, this message is sent to a player. Don't worry, it's formatted very nicely. Like the rules
# please keep this to 350 characters maximum, but as always you can just play with it to get the length right.
# Color code is supported.
# Use '%player%' to insert the players name.
Welcome Message: "Welcome to &6FiberOptic.xyz&f, %player%! Before we begin, you need to rank yourself up to &bMember &fstatus. You can do that by typing /rules. If you need any help, feel free to ask in chat, someone will be happy to assist you!"
# Should we also send the welcome message as a welcome title? If enabled, this requires two messages below.
# Main title, and Subtitle.
# (Default: true)
Send Welcome Title: true
# How long should the Welcome Title float on the screen for? This time is in Seconds.
# (Default: 60)
Title Float: 60
# Color codes are supported. Keep in mind, these need to be relatively shorter than the welcome message. Especially the Main line.
# You can play with it on your own of course.
# You can use %player% to subsitute the players name.
Welcome Title Main: "&fWelcome &b%player% to &6FiberOptic.xyz"
Welcome Title Sub: "&fYou can &bRank Up &fby typing &6/rules"
# Introduction. The following is editable, but if you are using this plugin for server rules, then
# you can leave it as it is. Feel free to change it as you see fit. Color codes are supported.
# (Default: "Thank you for reviewing our rules! Once you finish reviewing these rules you will be asked if you agree to follow the rules. Should you choose to decline, you will remain your current rank and you may miss out rewards. Use the \"Back\" and \"Next\" button to read through the rules. Thank you!")
Introduction: "Thank you for reviewing our rules! Once you finish reviewing these rules you will be asked if you agree to follow the rules. Should you choose to decline, you will remain your current rank and you may miss out rewards. Use the \"Back\" and \"Next\" button to read through the rules. Thank you!"
# Agree Message. The following is the message that we will send to the player once they finish going
# through all of the rules. This is pretty straight forward, edit it as you see fit. Color codes are
# supported. Keep it short, and play around with your config as per the usual.
# (Default: "By clicking Agree below, you agree to follow our servers rules at all times while connected to our server.")
Agree Message: "By clicking Agree below, you agree to follow our servers rules at all times while connected to our server."
# Decline Message. This is the message sent to the player when they decline accepting the rules.
# Color code support.
# Use %player% to insert the players name.
# (Default: "&f[&6Rules&f] I'm sorry you feel that way %player%.")
Decline Message: "&f[&6Rules&f] I'm sorry you feel that way %player%."
# Should we nag the player every so often to check out the rules?
# Time and message are configurable below.
# (Default: true)
Player Nagging: true
# TitleManager Support? If this is set to true, we won't send a text message to the player
# instead we will use TitleManager to send a floating message to the player.
# This REQUIRES the following plugin: https://goo.gl/vI0RGY
# (Default: false)
Title Nagging: false
# Color codes are supported. Keep in mind, these need to be relatively shorter than the welcome message. Especially the Main line.
# You can play with it on your own of course.
# You can use %player% to subsitute the players name.
Nagging Title Main: "&fHey there, %player%!"
Nagging Title Sub: "&fDid you know you can &bRank Up &fby typing &6/rules&f?"
# Delay between nagging, this is in seconds.
# (Default: 300)
Nagging Delay: 300
# The message to send to the player based on the timer above.
# Color code is supported.
# Use %player% to insert the players name.
# To use the welcome message, just type 'none' below or leave this empty.
# (Default: "&f[&6Rules&f] Hi %player%, did you know you can rank up by typing /rules?")
Nagging Message: "&f[&6Rules&f] Hi %player%, did you know you can rank up by typing /rules?"
# Kick player if they decline the rules? Some people may want this, others may not. Your call.
# Note: If this is enabled, we will use the 'Decline Message' above as the kick message.
# Configure that as you wish, to show up on the kick screen. Be sure to test it out!
#
# (Default: false)
Kick on Decline: false
# Old Rank. What is the name of rank players will be promoted FROM?
# (Default: "Guest")
Old Rank: "Guest"
# New Rank. What is the name of rank players will be promoted TO?
# (Default: "Member")
New Rank: "Member"
# Do you want to give money to players? Requires an economy plugin and vault!
# (Default: false)
Give Money: false
# Amount of money to give if above is set to true. This number must be a double.
# (Default: 100.00)
Money Amount: 100.00
# Broadcast new players whom accept the rules?
# (Default: true)
Broadcast: true
# Broadcast Message to send when a player accepts the rules. Color Codes are supported.
# Use %player% to insert the players name.
# Use %oldrank% to insert the name of the old rank.
# Use %newrank% to insert the name of the new rank.
# (Default: "%player% has accepted the rules and is now a %newrank%!")
Broadcast Message: "%player% has accepted the rules and is now a %newrank%!"
# Link to servers rules.
# This plugin overwrites essentials /rules command, this is an alternative to replace it.
# You can place a link to your servers rules here.
# (Default: "http://www.google.com/")
Rules Link: "http://www.google.com/"
# Commands to run after completeing the rules agreement.
# These commands are run as the console. If you want to give a player an item you would want to run
# the command: /give %player% <item> <amount>
# %player% - will be replaced with the players name.
Console Commands:
- "broadcast Testing"
- "give %player% 260 1"
# Commands to run after completeing the rules agreement.
# These commands are run as the player.
# %player% - will be replaced with the players name.
Player Commands:
- "me loves to read the rules!"
- "kit starter"
# Server Rules - Here you can list all of your rules out, as many as you need. Use the format below
# otherwise you may miss rules or break the plugin. Rules need to be less than 350 characters. Color
# codes do not count to characters. This is roughly 50-55 words. Obviously just play with it a bit.
#
# Example)
#
# Rules:
# Example Rule: "This example rule is designed to show you what the rules look like. You can edit this rule in the config.yml. Make sure you keep your rules under 350 characters otherwise you may break the display functionality of the plugin, and it will look like a hot mess. The next rule available is a simple Lorum Ipsum exmaple to show you formatting."
# Second Example: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent euismod dictum risus sed sagittis. Suspendisse lacus nunc, posuere sit amet commodo eu, malesuada id diam. Ut massa velit, semper vitae facilisis ut, lacinia a sem. Nulla facilisi. Nullam ut nulla eget mauris auctor venenatis. Aliquam sit amet ligula sit amet elit pretium tempor sed."
#
#
Rules:
Example Rule: "This example rule is designed to show you what the rules look like. You can edit this rule in the config.yml. Make sure you keep your rules under 350 characters otherwise you may break the display functionality of the plugin, and it will look like a hot mess. The next rule available is a simple Lorum Ipsum exmaple to show you formatting."
Second Example: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent euismod dictum risus sed sagittis. Suspendisse lacus nunc, posuere sit amet commodo eu, malesuada id diam. Ut massa velit, semper vitae facilisis ut, lacinia a sem. Nulla facilisi. Nullam ut nulla eget mauris auctor venenatis. Aliquam sit amet ligula sit amet elit pretium tempor sed."Use Case:
Let your users rank up after reading and agreeing to your servers rules. Depends on Vault and a permissions system that is compatible with Vault.
When a player finishes reading through the rules and accepts, you can enable a broadcast message to announce this to the server. Once a player has been promoted, they (assuming you setup your permissions properly) will no longer have access to the rules page.
Due to Essentials having a /rules command, this plugin will overwrite essentials I have included a workaround, when a player who has already been promoted types /rules they will receive a message with a link to your rules page, for example to your websites forums.

Planned Additions:
- "Quiz" option. Create questions and provide answers to choose from.
- Rewards for completing Rules/Quiz. Such as:
- Currency Reward, pay out to players.
- Give items, give items to players.
Any other suggestions? Post in the Discussion forum.
-----------------------------------------------------------------------------------------------
Like my content? Want to see more? Consider pledging to my Patreon page located below. Every penny helps and ensures I can keep coding!
https://www.patreon.com/FiberDev
SUPPORT WILL NOT BE PROVIDED IN THE 'REVIEW' SECTION.
GO TO THE DISCUSSION PAGE FOR HELP.
All of my plugins are very well commented. Please read thoroughly prior to contacting me for support.
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
26.2MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.9MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
4.7MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta