Voxel Shop beta is live. Expect occasional bugs. Learn more
Cross Server | Quests | Ranks | Tree | Passives/Unlocks | Stats | Achievements
Fix /quests.html to only show available quests (if random mode is on) to player (note: OP players see all quests)
Replaced RankHTML class with static rank.html file
Fixed offline player permissions
Added color codes to rank name in header of Web GUI
Added color codes to prefix/suffix in Web GUI
Added color codes to required ranks section of Web GUI
Improved tree.html dynamic container size to better accommodate a large row/button names
Replaced all IDs with friendly names in Rank and Web GUI
Updated all JavaDocs to 3.0.0
***New default rank.yml***
Updated plugin.yml with new permissions
Fixed citizens tab complete dependency section
Added /rq web to tab complete
Two new permissions! They were disabled during BETA.
RaindropQuests.web - required to log into web UI
RaindropQuests.command.web - required to use web command
This should have been enabled in the 3.0.0 release but it was accidentally commented out for testing.
New command:
/rq web - Provides a link to the web GUI (clickable when in game)
Updated the web.yml to provide access to setting the proxy.
################################################
# #
# WEB #
# #
# Developed by ItsRainingHP #
# Join 1.19.4 server at AntiMatterZoneMC.com #
# https://discord.gg/PqqXNNBs9Z #
# #
# Support #
# https://discord.gg/pqG9DWm #
################################################
# If true, a web server is enabled on plugin start for players to access using linked discord account
Enabled: false
# To give players access outside your network use a reverse proxy like nginx and point it to this port
# Alternatively, you can open the port to external users via router (!*not recommended!*)
Port: 8080
# Entities that will appear red in the list
Bosses: [SkeletalKnight]
# Authentication expiration (in days) - Note: Expiration on server restart
# For added security - tokens are stored in plugin memory only and are not accessible outside RDQ. Thus, server restarts
# will reset logins. If server owners request token retention outside the plugin I will add the feature.
Expiration: 30
Discord:
# Channel used in Discord SRV
Channel: "global"
########################################
# Please use https://discordjs.guide/oauth2/#a-quick-example "Getting an Oauth2 URL" guide to set this up
########################################
Client_ID: "0000000000000000000"
Client_Secret: ""
# This must end in /auth.html
Redirect_URL: "http://127.0.0.1:8080/auth.html"
Token: "";
# This is the base URL for the web GUI. Use an IP address for internal access or set up a reverse proxy
# and set it to a domain like www.my-server.com
Proxy: "http://127.0.0.1:8080"
OAuth_URL: ""Updated Rank GUI to display Rank Name in the path instead of path (rank) ID
Updated Rank GUI to better identify Job Costs for players
Bug fix for gold passive
Bug fix for quest requirements
Created and implemented database interface class to reduce duplicate code and improve database management
Improved kill count SQLite/MySQL queries to reduce database calls and optimize performance
Updated legacy discord calls to strip colors
Added Discord SRV support - falls back to legacy mode if you do not have DiscordSRV
structure.yml removed in lieu of new Web UI
*Experimental*
New Web UI!!! (Requires DiscordSRV with linked accounts) - Simple, Lightweight, and Convenient GUI for displaying plugin information including a visual representation of your rank tree. Created dynamically using the set configuration.
Simply setup web.yml to initiate the webserver on plugin startup.
Players will be able to login using Discord at the designated port (which is confirmed working through reverse proxy)
128-bit OAuth Discord authentication
Set login expiration - Default 30 days (expires on server restart)
OP Users will see additional plugin data (Rank ID, Path ID, Quest ID, commands, etc.)
Light/Dark mode toggle
MC Color code conversion
Run quest PAPI placeholders - giving players the ability to see if they meet the requirement
WebGUI includes:
/index.html
/quests.html
/tree.html
/kills.html
/<rankID>.html - accessible via /tree.html
Changed quest timer logic to set only after turning quest in.
Fixed null error when opening quest GUI using MySQL.
Placeholder API logic for quest requirements.
Note: for placeholders returning a number such as player_level, kills, etc the required number set is a minimum. In the example below the player requires minimum level of 10.
Suggestion: NEW REQUIREMENT FOR QUESTS
PlaceholderAPI Match: Complete the quest if the Placeholder matches the value in quests.yml
Examples:
Requirements: ["PAPI:%player_level%", 10]
Requirements: ["PAPI:%player_is_op%", "yes"]
Requirements: ["PAPI:%player_gamemode%", "survival"]
Example quests.yml:
Quest1: # This can be anything - no duplicates
# Quest title
Title: "&dQuest1"
# Quest GUI Object
Button: STICK
# Cooldown - set to 0 for no cool down
Cooldown: 300 # 5 minutes
# Quest completion limit
Limit: -1 # No limit
# Quest lore
Lore:
- "&fGIVE ME COAL"
- "&dRight click to turn in quest"
- "&cRequirements: 10 Coal, 5 Iron Ore"
- "&e&lRewards: 300 Dollars, 3 Raindrops, 1 Diamond, 1 MelonWand"
# Format: <Requirement, Amount>
# Note: Only accepts vanilla items
Requirements: ["PAPI:%player_level%", 10, "PAPI:%player_is_op%", "yes", "PAPI:%player_gamemode%", "survival", COAL, 10, IRON_ORE, 5]
# Quest money reward
Economy:
# Current rewards (-1 to disable)
Vault: 300 # Your economy currency
Currency: 3 # Plugin currency - Set the currency name in the config
# Format: <Reward>, <Number>
# Number = amount if material or number of times the command will run
# Command Format: CMD:<command>
Reward: [DIAMOND, 1, "CMD:/rq melonwand %player_name% 10", 1]
# Message upon completing a quest
Messages:
Discord: false
Logger: false
Broadcast: false
Player: false
Completed: "%player_name% completed Quest1!"Added 2.2.0 perms to plugin.yml
Updated tab complete to filter by first letter
Added PotionCount to tab complete
Check if sync enabled before initiating runnable - instead of after - reducing overhead if disabled
By Request: Randomly available quests - A broadcast message will be sent when the server detects or changes the quests available. Number of quests available and cool down are configurable.
New config options:
config.yml
Quests:
# Enables randomly available quests
Random: false
# Number of quests randomly available
Available: 2
# Cool down before new quests are available - server wide - seconds
CoolDown: 86400
# If using MySQL - One server must have this enabled to use Quest Random Available across server networks
# If this is enabled - every server will select and change the available quests when the timer is met
# For SQLite users - Leave enabled
Master: true
MySQL:
# Quest Random table - only used if random is enabled
random_table: random
Removed duplicate SQLite table variables
Deprecated SQLite column manipulation - Not supported by SQLite
Created update schema method for MySQL - SQLite has no support for altering columns
New ranks.yml config option:
rank1:
# Crafting requirements. Currently only supports potions. Support for other items are created upon request.
Crafting: ["splash_potion{Potion:strong_healing}:1", "splash_potion{Potion:strong_harming}:1"]
New Commands:
/rq PotionCount <PlayerName> <PotionID>
New Permissions:
RaindropQuests.command.PotionCount
RaindropQuests.command.PotionCountOthers
RaindropQuests.command.ranks.bypass.crafting
Fixed syntax error when creating the counters table on initial SQLite startup.
Sorry about the two fixes today. I don't like posting so many updates but fixes had to be made public.
Hotfix to the main table database check. Updates main table with new passive. Sorry!
Updated dependency for Towny to 0.98.6.8
Fixed passive checks - some were not being checked due to a misplaced } bracket
Fixed set passive command
Fixed passive cool downs
Automatically switch to SQLite database if MySQL connection fails
Fixed MySQL kill count table
Updated database queries to check each table and add player to same if not present
Remove unnecessary logger comments
Implemented method to update tables in MySQL and SQLite for new passive
Fixed MySQL errors with playerkills - sorry for those using MySQL.
Updated all Deprecated event.sendMessage to spigot components
This new update will remove any unnecessary data columns and update them with the new data. Please report any errors in discord.
New passive: Crystallize: craft amethyst blocks to x shards


Deprecated all old methods for cool downs in the prefix and suffix classes. Implemented new methods that properly utilize cool down. Note: cool downs reset upon server restart. Not intended for long cool downs. If requested I will add it to the database.
Updated Towny to 0.98.6.7
Add commands to rank up. String list of commands without / slash. Commands run upon player obtaining rank. Supports PlaceholderAPI
Updated Towny dependency checks
Examples:
rank1:
Commands: ["msg %player_name% test"]
rank2:
Commands:
- "msg %player_name% test"
- "give %player_name% diamond 2"Adds a prefix and suffix GUI items for players to remove their prefix or suffix. This adds to you configs! If you run this update without added to your configs it will fail to run!
Ranks/config.yml
Prefix:
# Item that appears in the GUI to remove a prefix (clearing a prefix title)
RemoveMaterial: Arrow
Suffix:
# Item that appears in the GUI to remove a suffix (clearing a suffix title)
RemoveMaterial: ArrowSome bug fixes and quality of life update to the kill count commands. Color codes to allow easier review. All Entity IDs have been replaced with Proper name for viewing.
Fix for kill counters in the database.
Fix MythicMobs dependency check for new commands.
Implement Spigot Chat API calls for all console log messages.
New command:
/rq MythicTop {player_name | mob_name} - display top 10 mythic kills for specified player
/rq
MythicCount <PlayerName> <MobName> - Get kill count of a mythic mob