ElvenideCore includes several utility providers to handle common development tasks.
Log Provider
Provides low-verbosity console logging with MiniMessage support.
Core.log.info("<green>Plugin started successfully!");
Core.log.error("An error occurred: " + e.getMessage());
Perm Provider
Simplified permission checking.
if (Core.perms.has(player, "admin.use")) {
// Player has permission
}
It also supports negated permissions.
if (Core.perms.has(player, "-admin.use")) {
// Player doesn't have permission
}
Event Provider
Creating custom events using the Bukkit event system is very verbose, with lots of unnecessary boilerplate. ElvenideCore provides the CoreEvent interface, which is a powerful, simple, yet familiar alternative for custom events.
You can even use CoreEvent with record classes to eliminate the need for constructors for simple events.
Example event class:
import com.elvenide.core.providers.event.CoreEvent;
import org.bukkit.entity.Player;
public record YourCustomEvent(Player player, String message) implements CoreEvent {
// YUP, that's all.
// No need for constructors
// No need for handler lists
// No need for getter methods and private fields
}
If you want your event to be cancellable, just add the CoreCancellable interface:
import com.elvenide.core.providers.event.CoreEvent;
import com.elvenide.core.providers.event.CoreCancellable;
import org.bukkit.entity.Player;
public record YourCustomEvent(Player player, String message) implements CoreEvent, CoreCancellable {
// YUP, that's all.
// No need for setCancelled()
// No need for isCancelled()
}
To call your event:
public void callingEventExample(Player player) {
String message = "your message here";
new YourCustomEvent(player, message).callCoreEvent();
}
To create a listener for your event:
import com.elvenide.core.providers.event.CoreEventPriority;
import com.elvenide.core.providers.event.CoreListener;
import com.elvenide.core.providers.event.CoreEventHandler;
public class YourListener implements CoreListener {
@CoreEventHandler(priority = CoreEventPriority.NORMAL)
public void onYourCustomEvent(YourCustomEvent event) {
// Example: send the message to the player
event.player().sendRichMessage(event.message());
// Example: cancel the event for other, later-priority listeners
event.setCancelled(true);
}
}
Register your listener:
// Example registering listeners in your plugin's onEnable() method
public void onEnable() {
new YourListener().register();
}