占位符
This commit is contained in:
@@ -65,6 +65,10 @@
|
||||
<id>spigotmc-repo</id>
|
||||
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>placeholderapi</id>
|
||||
<url>https://repo.helpch.at/releases/</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<dependencies>
|
||||
@@ -102,5 +106,12 @@
|
||||
<version>4.4.1</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<!-- PlaceholderAPI -->
|
||||
<dependency>
|
||||
<groupId>me.clip</groupId>
|
||||
<artifactId>placeholderapi</artifactId>
|
||||
<version>2.12.2</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
||||
@@ -1,23 +1,39 @@
|
||||
package xyz.fortern.forternhelper
|
||||
|
||||
import me.clip.placeholderapi.expansion.PlaceholderExpansion
|
||||
import net.kyori.adventure.platform.bukkit.BukkitAudiences
|
||||
import org.bukkit.Bukkit
|
||||
import org.bukkit.plugin.java.JavaPlugin
|
||||
import xyz.fortern.forternhelper.command.HelperCommand
|
||||
import xyz.fortern.forternhelper.listener.ForternListener
|
||||
import xyz.fortern.forternhelper.placeholder.ForternExpansion
|
||||
|
||||
class Helper : JavaPlugin() {
|
||||
private lateinit var adventure: BukkitAudiences
|
||||
|
||||
private lateinit var expansion: PlaceholderExpansion
|
||||
|
||||
override fun onEnable() {
|
||||
// Plugin startup logic
|
||||
this.adventure = BukkitAudiences.create(this)
|
||||
logger.info("Registering listeners...")
|
||||
// register listeners
|
||||
Bukkit.getPluginManager().registerEvents(ForternListener(this), this)
|
||||
logger.info("Registering commands...")
|
||||
// register commands
|
||||
Bukkit.getPluginCommand("helper")?.setExecutor(HelperCommand(this, adventure))
|
||||
// register placeholders
|
||||
if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) {
|
||||
expansion = ForternExpansion(this)
|
||||
logger.info("Registering placeholders...")
|
||||
expansion.register()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDisable() {
|
||||
// Plugin shutdown logic
|
||||
if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) {
|
||||
expansion.unregister()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
package xyz.fortern.forternhelper.placeholder
|
||||
|
||||
import me.clip.placeholderapi.expansion.PlaceholderExpansion
|
||||
import org.bukkit.Bukkit
|
||||
import org.bukkit.OfflinePlayer
|
||||
import org.bukkit.plugin.java.JavaPlugin
|
||||
|
||||
|
||||
class ForternExpansion(
|
||||
val plugin: JavaPlugin
|
||||
) : PlaceholderExpansion() {
|
||||
override fun getIdentifier(): String {
|
||||
return "fortern"
|
||||
}
|
||||
|
||||
override fun getAuthor(): String {
|
||||
return plugin.description.authors.toString()
|
||||
}
|
||||
|
||||
override fun getVersion(): String {
|
||||
return plugin.description.version
|
||||
}
|
||||
|
||||
override fun persist(): Boolean {
|
||||
return true
|
||||
}
|
||||
|
||||
override fun onRequest(player: OfflinePlayer, params: String): String {
|
||||
return if (params.startsWith("loadlevel_")) {
|
||||
// e.g. peace_the_nether_x,z
|
||||
val first = params.indexOf('_')
|
||||
if (first < 0) return "unknown"
|
||||
val last = params.lastIndexOf('_')
|
||||
if (last <= first) return "unknown"
|
||||
val chunkPos = params.substring(last + 1)
|
||||
val split = chunkPos.split(',')
|
||||
if (split.size < 2) return "unknown"
|
||||
val chunkX = split[0]
|
||||
val chunkZ = split[1]
|
||||
val worldName = params.substring(first + 1, last)
|
||||
val world = Bukkit.getWorld(worldName) ?: return "unknown"
|
||||
try {
|
||||
val x = Integer.parseInt(chunkX)
|
||||
val z = Integer.parseInt(chunkZ)
|
||||
world.getChunkAt(x, z).loadLevel.toString()
|
||||
} catch (_: NumberFormatException) {
|
||||
"unknown"
|
||||
}
|
||||
} else {
|
||||
"unknown"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,7 @@ version: '${version}'
|
||||
authors: [ Fortern ]
|
||||
api-version: '26.1'
|
||||
main: xyz.fortern.forternhelper.Helper
|
||||
softdepend: ["PlaceholderAPI"]
|
||||
|
||||
libraries:
|
||||
- org.jetbrains.kotlin:kotlin-stdlib:2.3.21
|
||||
|
||||
Reference in New Issue
Block a user