
✨ mGiveaway | DISCORD ➱ MINECRAFT GIVEAWAYS
mGiveaway is a plugin that allows you to create and manage Discord giveaways from Minecraft. It then automatically rewards the winners in-game. Uses slash commands for easy giveaway creation and button/modal interactions for user-friendly entry.
Tags
Creators
Details
v0.4
Compatibility
Changes
mGiveaway v0.4 Changelog
This update focuses on adding essential administrative features and improving plugin robustness.
✨ Features
/mgwreloadCommand:- Server administrators can now use the
/mgwreloadcommand (permission:mgiveaway.reload) to gracefully reload the plugin in-game. - This command allows reloading the plugin's configuration, Discord bot connection, and giveaway tasks without requiring a full server restart.
- Useful for applying configuration changes, especially for Discord bot settings and giveaway definitions, without server downtime.
- Server administrators can now use the
🐛 Bug Fixes and Improvements
-
Improved Plugin Robustness:
- Implemented better null checks throughout the plugin to prevent potential
NullPointerExceptionerrors and improve overall stability. - Enhanced error handling, particularly in areas involving Discord API interactions, Vault, PlaceholderAPI, configuration loading, and database operations.
- Plugin now pauses giveaway processing and logs severe errors to console if critical issues are detected (e.g., database connection failure, missing required config values). Users are prompted to reload the plugin to attempt recovery.
- Addressed potential issues where plugin might not function correctly after configuration changes, especially related to Discord bot settings.
- Implemented better null checks throughout the plugin to prevent potential
-
Enhanced Configuration Handling:
- Improved handling of missing or invalid configuration values during plugin startup and reload.
- Replaced reliance on "XXX" placeholder default values with more robust null handling and warnings for unset critical configuration options.
🛠️ Technical Changes
- Lowered
api-versioninplugin.ymlto1.13:- Set
api-version: '1.13'inplugin.ymlto allow the plugin to be loadable on a wider range of Paper and potentially Spigot servers (API version compatibility). - Note: While
api-versionis lowered for load compatibility, the plugin is still designed and tested primarily for Paper servers running Minecraft 1.17 and higher. Functionality on significantly older versions is not guaranteed.
- Set
- Compiled with Java 17 JDK:
- Plugin is now compiled using Java 17 JDK to ensure compatibility with Java 17 and newer Java Runtime Environments, which are common for modern Minecraft servers (including Paper 1.17+).
- Addressed
UnsupportedClassVersionErrorissues encountered when running plugins compiled with newer JDKs on older server versions.
📝 Important Notes
- Paper Server Recommendation: mGiveaway continues to be designed and optimized for Paper servers (1.17+). While
api-versionhas been lowered for wider load compatibility, best performance and full feature functionality are only guaranteed on Paper servers version 1.17 or higher. - Configuration Reload: Use the
/mgwreloadcommand after making changes toconfig.ymlto ensure all settings are properly reloaded and applied.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:2OjhrCrw:BW6MomZM"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:2OjhrCrw:BW6MomZM"
}
