Compare commits
2 Commits
5939c47603
...
b1cab088c1
| Author | SHA1 | Date | |
|---|---|---|---|
| b1cab088c1 | |||
| ec0e12e4c5 |
@@ -6,7 +6,7 @@
|
||||
|
||||
<groupId>xyz.fortern</groupId>
|
||||
<artifactId>fortern-helper</artifactId>
|
||||
<version>1.0</version>
|
||||
<version>1.1</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>fortern-helper</name>
|
||||
@@ -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,38 @@
|
||||
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 placeholder
|
||||
expansion = ForternExpansion(this)
|
||||
if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) {
|
||||
expansion.register()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDisable() {
|
||||
// Plugin shutdown logic
|
||||
if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) {
|
||||
expansion.unregister()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
package xyz.fortern.forternhelper.placeholder
|
||||
|
||||
import me.clip.placeholderapi.expansion.PlaceholderExpansion
|
||||
import org.bukkit.Bukkit
|
||||
import org.bukkit.Chunk
|
||||
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? {
|
||||
if (params.startsWith("peace_")) {
|
||||
// e.g. peace_the_nether_x,z
|
||||
val first = params.indexOf('_')
|
||||
if(first < 0) return null
|
||||
val last = params.lastIndexOf('_')
|
||||
if (last <= first) return null
|
||||
val chunkPos = params.substring(last + 1)
|
||||
val split = chunkPos.split(',')
|
||||
if (split.size < 2) return null
|
||||
val chunkX = split[0]
|
||||
val chunkZ = split[1]
|
||||
val worldName = params.substring(first, last)
|
||||
val world = Bukkit.getWorld(worldName)
|
||||
if (world != null) {
|
||||
return try {
|
||||
val x = Integer.parseInt(chunkX)
|
||||
val z = Integer.parseInt(chunkZ)
|
||||
val loadLevel = world.getChunkAt(x, z).loadLevel
|
||||
if (loadLevel == Chunk.LoadLevel.TICKING || loadLevel == Chunk.LoadLevel.ENTITY_TICKING) {
|
||||
"true"
|
||||
} else {
|
||||
"false"
|
||||
}
|
||||
} catch (_: NumberFormatException) {
|
||||
null
|
||||
}
|
||||
}
|
||||
}
|
||||
return null
|
||||
}
|
||||
}
|
||||
@@ -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