Skip to content

Commit 2844009

Browse files
authored
Default permissions (#16)
* UPDATE version from v.3.7 to v.3.8 * Add new default permissions feature * Modify README.md * Remove unnecessary import
1 parent 1b5ee59 commit 2844009

File tree

5 files changed

+103
-2
lines changed

5 files changed

+103
-2
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ The plugin also features an auto update System. This System downloads the newest
1616
The plugin now also features a "per-warp-permission System".
1717
That means if you enable "RequirePermissionForEachWarp" in your Warps.yml Config, every Warp Point gets an individual Permission that follows this scheme: "simplewarp.warp.WARPNAME".
1818
(You have to replace WARPNAME with the exact name of your warp point). Only players with the correct permissions can see and use the warp points.
19+
You can now set Default Warp Point permissions in the Permission.yml file. Note: Only simplewarp permissions can be set by default. Other Permissions in the Permission.yml file will be ignored.
1920

2021
[![CircleCI](https://circleci.com/gh/marylieh/SimpleWarpV3/tree/main.svg?style=shield)](https://circleci.com/gh/marylieh/SimpleWarpV3/tree/main)
2122
## Commands

src/main/kotlin/me/marylieh/simplewarp/SimpleWarp.kt

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,18 @@ package me.marylieh.simplewarp
22

33
import me.marylieh.simplewarp.commands.*
44
import me.marylieh.simplewarp.commands.position.PositionCommandExecutor
5+
import me.marylieh.simplewarp.listener.PlayerJoinListener
56
import me.marylieh.simplewarp.utils.Config
7+
import me.marylieh.simplewarp.utils.PermissionFile
68
import me.marylieh.simplewarp.utils.Updater
9+
import org.bukkit.Bukkit
710
import org.bukkit.plugin.java.JavaPlugin
11+
import java.util.logging.Level
812

913
class SimpleWarp : JavaPlugin() {
1014

1115
val prefix = "§6[SimpleWarp]"
12-
val version = "R-3.7"
16+
val version = "R-3.8"
1317

1418
companion object {
1519
lateinit var instance: SimpleWarp
@@ -18,18 +22,26 @@ class SimpleWarp : JavaPlugin() {
1822

1923
override fun onLoad() {
2024
Config.Config()
25+
PermissionFile.Permission()
2126
instance = this
2227
}
2328

2429
override fun onEnable() {
2530
registerCommands()
2631
initConfig()
32+
initDefaultPermissions()
33+
registerListener()
2734

2835
if (Config.getConfig().getBoolean("auto-update")) {val updater = Updater(this, 395393, this.file, Updater.UpdateType.DEFAULT, true)}
36+
37+
if (Bukkit.getOnlinePlayers().isNotEmpty()) {
38+
Bukkit.getLogger().log(Level.WARNING, "$prefix It looks like the Server reloaded, this is not recommended. Please restart instead. SimpleWarp $version might not work as expected.")
39+
}
2940
}
3041

3142
override fun onDisable() {
3243
Config.save()
44+
PermissionFile.savePermissions()
3345
}
3446

3547
private fun registerCommands() {
@@ -49,6 +61,15 @@ class SimpleWarp : JavaPlugin() {
4961
delWarpCommand.setTabCompleter(WarpTabCompleter())
5062
}
5163

64+
private fun registerListener() {
65+
val pluginManager = Bukkit.getPluginManager()
66+
67+
if (Config.getConfig().getBoolean("DefaultPermissions")) {
68+
pluginManager.registerEvents(PlayerJoinListener(), this)
69+
Bukkit.getLogger().log(Level.INFO, "The Following default permissions will be set for each player: ${PermissionFile.getFile().getList("DefaultPermissions")}")
70+
}
71+
}
72+
5273
private fun initConfig() {
5374
if (Config.getConfig().get("PositionSystem") == null) {
5475
Config.getConfig().set("PositionSystem", false)}
@@ -59,7 +80,18 @@ class SimpleWarp : JavaPlugin() {
5980
if (Config.getConfig().get("RequirePermissionForEachWarp") == null) {
6081
Config.getConfig().set("RequirePermissionForEachWarp", false)
6182
}
83+
if (Config.getConfig().get("DefaultPermissions") == null) {
84+
Config.getConfig().set("DefaultPermissions", false)
85+
}
6286
Config.save()
6387
}
6488

89+
private fun initDefaultPermissions() {
90+
val defaultPermissionsList: List<String> = listOf("ThisCouldBeYourDefaultPermission", "MakeSureToEditThisBeforeEnablingDefaultPermissions")
91+
if (PermissionFile.getFile().get("DefaultPermissions") == null) {
92+
PermissionFile.getFile().set("DefaultPermissions", defaultPermissionsList)
93+
}
94+
PermissionFile.savePermissions()
95+
}
96+
6597
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package me.marylieh.simplewarp.listener
2+
3+
import me.marylieh.simplewarp.SimpleWarp
4+
import me.marylieh.simplewarp.utils.PermissionFile
5+
import org.bukkit.event.EventHandler
6+
import org.bukkit.event.Listener
7+
import org.bukkit.event.player.PlayerJoinEvent
8+
9+
class PlayerJoinListener : Listener {
10+
11+
@EventHandler fun handleJoin(event: PlayerJoinEvent) {
12+
val permissions = PermissionFile.getFile().getList("DefaultPermissions") as List<String>
13+
14+
permissions.forEach {
15+
16+
if (!it.startsWith("simplewarp")) {
17+
return
18+
}
19+
20+
val attachment = event.player.addAttachment(SimpleWarp.instance)
21+
attachment.setPermission(it, true)
22+
}
23+
24+
}
25+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package me.marylieh.simplewarp.utils
2+
3+
import org.bukkit.configuration.file.YamlConfiguration
4+
import java.io.File
5+
import java.io.IOException
6+
7+
object PermissionFile {
8+
9+
private lateinit var file: File
10+
private lateinit var permission: YamlConfiguration
11+
12+
fun Permission() {
13+
var dir: File = File("./plugins/SimpleWarp")
14+
15+
if (!dir.exists()) {
16+
dir.mkdirs()
17+
}
18+
19+
file = File(dir, "Permission.yml")
20+
21+
if (!file.exists()) {
22+
try {
23+
file.createNewFile()
24+
} catch (e: IOException) {
25+
e.printStackTrace()
26+
}
27+
}
28+
29+
permission = YamlConfiguration.loadConfiguration(file)
30+
}
31+
32+
fun getFile(): YamlConfiguration {
33+
return permission
34+
}
35+
36+
fun savePermissions() {
37+
try {
38+
permission.save(file)
39+
} catch (e: IOException) {
40+
e.printStackTrace()
41+
}
42+
}
43+
}

src/main/resources/plugin.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ api-version: 1.16
33
authors:
44
- Marylieh
55
main: me.marylieh.simplewarp.SimpleWarp
6-
version: 3.7
6+
version: 3.8
77

88
commands:
99
setwarp:

0 commit comments

Comments
 (0)