MinecraftPluginUtils/README.md
2024-07-04 14:10:24 +08:00

2.4 KiB

MinecraftPluginUtils

Usage

Maven

<repositories>
    <repository>
        <id>lunadeer-repo</id>
        <url>https://ssl.lunadeer.cn:14454/repository/maven-snapshots/</url>
    </repository>
</repositories>

<dependencies>
<dependency>
    <groupId>cn.lunadeer</groupId>
    <artifactId>MinecraftPluginUtils</artifactId>
    <version>1.3.4-SNAPSHOT</version>
</dependency>
</dependencies>

Gradle

repositories {
    maven {
        url 'https://ssl.lunadeer.cn:14454/repository/maven-snapshots/'
    }
}

dependencies {
    implementation 'cn.lunadeer:MinecraftPluginUtils:1.3.0-SNAPSHOT'
}
import cn.lunadeer.MinecraftPluginUtils

Example

Logger

import cn.lunadeer.minecraftpluginutils.XLogger;

public final class YourPlugin extends JavaPlugin {
    @Override
    public void onEnable() {
        new XLogger(this);      // Initialize the logger with the plugin instance once

        XLogger.setDebug(true); // Enable debug mode if needed

        XLogger.info("Hello, world!");  // Call the static method
        XLogger.warn("This is a %s", "warning");    // Call the static method with format
    }
}

Notification

import cn.lunadeer.minecraftpluginutils.Notification;

public final class YourPlugin extends JavaPlugin {
    @Override
    public void onEnable() {
        new Notification(this); // Initialize the notification with the plugin instance once

        Bukkit.getPluginManager().registerEvents(new PlayerEvents(), this);
    }


    public class PlayerEvents implements Listener {
        @EventHandler
        public void onPlayerJoin(PlayerJoinEvent event) {
            Notification.info(event.getPlayer(), "Welcome to the server!"); // Send a notification to the player
            Notification.all("Greetings from %s!", event.getPlayer().getName()); // Send a notification to all players
        }
    }
}

Scheduler

import cn.lunadeer.minecraftpluginutils.Scheduler;

public final class YourPlugin extends JavaPlugin {
    @Override
    public void onEnable() {
        new Scheduler(this); // Initialize the scheduler with the plugin instance once

        Scheduler.runTaskLater(() -> {
            XLogger.info("Hello, world!");  // Call the static method
        }, 20L);    // Delay 20 ticks
    }
    
    @Override
    public void onDisable() {
        Scheduler.cancelAll(); // Cancel all tasks to prevent memory leaks
    }
}