
RDQ 4.7.3
Cross Server | Quests | Ranks | Tree | Passives/Unlocks | Stats | Achievements
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:
[code]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"][/code]
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: Arrow
Some 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
Fixed ranking up without groups created in LuckPerms
Fix showing potion name in Rank Up GUI instead of potion ID
Updated kill counting to properly manage in database
Updated /rq killcount to require proper syntax
New Command: /rq killtop {PlayerName | MobName}
/rq KillTop PlayerName - display top 10 kills for specified player
/rq KillTop MobType - display top 10 kills for specified mob (for PVP kills use MobType "Player")
Bug fixes to ranks and deprecated all Bukkit legacy player message methods replacing them with Spigot Chat API components for better integration with Spigot/Paper servers.
Added support for potions to rank cost
Added support for damageable items. i.e. can no longer turn in damaged items for rank up
Fixed NPC listener null error
Fixed PassiveGUI and PassiveNPC permission node
Fixed Rank and RankManager null errors
Fixed available rank checks to check LuckPerm group
Example config for potions:
Potion Item ID : amount requiremed
splash_potion{Potion:strong_healing}:1
Item IDs can be found at https://minecraftitemids.com/
Rank cost example:
Rank1:
Cost: ["splash_potion{Potion:strong_healing}:1",Economy:50,Diamond:1,JobsReborn:Woodcutter:1,mcMMO:Mining:1,Custom:10
SQLite bug fix when initially creating tables.
Fix for Citizens listeners throwing null
Items.yml added to allow you to change the condensed dirt and stone items
See wiki for config files [url]https://plugins.amzmcwiki.com/en/RaindropQuests/Config[/url]
Updated all maven dependencies
Changed from 1.19.2 to 1.19.3
Deprecated old inventory methods
Updated java docs
Fixed Passives GUI to not require LuckPerms
Fixed passives GUI to show enchanted icons with owned description when player owns passive.
Fixed AutoMelons null pointer error
Several permission nodes had typos that have been updated.
Potion passive cool downs now properly update in the database.