Skip to content

Commit

Permalink
Fixed some bugs and added EffKickPlayerFromCloud
Browse files Browse the repository at this point in the history
  • Loading branch information
byPixelTV committed Apr 9, 2024
1 parent b0dec51 commit 6a83ace
Show file tree
Hide file tree
Showing 5 changed files with 73 additions and 7 deletions.
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ plugins {
}

group = "de.bypixeltv"
version = "1.3"
version = "1.4"

repositories {
mavenCentral()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,14 @@ package de.bypixeltv.skcloudnet.commands

import ch.njol.skript.Skript
import de.bypixeltv.skcloudnet.Main
import de.bypixeltv.skcloudnet.tasks.UpdateCheck
import de.bypixeltv.skcloudnet.utils.GetVersion
import de.bypixeltv.skcloudnet.utils.UpdateChecker
import dev.jorel.commandapi.kotlindsl.commandTree
import dev.jorel.commandapi.kotlindsl.literalArgument
import dev.jorel.commandapi.kotlindsl.playerExecutor
import dev.jorel.commandapi.kotlindsl.stringArgument
import eu.cloudnetservice.driver.inject.InjectionLayer
import eu.cloudnetservice.driver.provider.ServiceTaskProvider
import eu.cloudnetservice.driver.service.ServiceTask
import net.axay.kspigot.config.JsonConfigManager.saveConfig
import eu.cloudnetservice.driver.registry.ServiceRegistry
import eu.cloudnetservice.modules.bridge.player.PlayerManager
import net.kyori.adventure.text.minimessage.MiniMessage
import java.nio.file.Files
import java.nio.file.Paths
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
package de.bypixeltv.skcloudnet.elements.effects

import ch.njol.skript.Skript
import ch.njol.skript.doc.Description
import ch.njol.skript.doc.Examples
import ch.njol.skript.doc.Name
import ch.njol.skript.doc.Since
import ch.njol.skript.lang.Effect
import ch.njol.skript.lang.Expression
import ch.njol.skript.lang.SkriptParser
import ch.njol.util.Kleenean
import de.bypixeltv.skcloudnet.Main
import eu.cloudnetservice.driver.inject.InjectionLayer
import eu.cloudnetservice.driver.provider.CloudServiceProvider
import eu.cloudnetservice.driver.registry.ServiceRegistry
import eu.cloudnetservice.modules.bridge.player.PlayerManager
import net.axay.kspigot.chat.literalText
import org.bukkit.entity.Player
import org.bukkit.event.Event

@Name("Kick Player From Cloud")
@Description("Kicks a player from the CloudNet network.")
@Examples("kick \"byPixelTV\" parsed as player from proxy due to \"Star SkCloudnet now!!!\"")
@Since("1.4")

class EffKickPlayerFromCloud : Effect() {

private val serviceRegistry: ServiceRegistry = InjectionLayer.ext().instance(ServiceRegistry::class.java)
private val playerManager: PlayerManager = serviceRegistry.firstProvider(PlayerManager::class.java)

companion object{
init {
Skript.registerEffect(EffKickPlayerFromCloud::class.java, "(kick|disconnect) %player% from (cloud|cloudnet|network|proxy|bungee|velocity|bungeecord) [(due to|because of|with reason|for) %-string%]")
}
}

private var player: Expression<Player>? = null
private var reason: Expression<String>? = null

@Suppress("UNCHECKED_CAST")
override fun init(
expressions: Array<Expression<*>>,
matchedPattern: Int,
isDelayed: Kleenean,
parser: SkriptParser.ParseResult
): Boolean {
this.player = expressions[0] as Expression<Player>
this.reason = expressions[1] as Expression<String>
return true
}

override fun toString(event: Event?, debug: Boolean): String {
return "kick ${this.player} from cloudnet ${this.reason}"
}

override fun execute(event: Event?) {
val player = this.player?.getSingle(event)
var reason = this.reason?.getSingle(event)
val playerExecutor = player?.let { playerManager.playerExecutor(it.uniqueId) }
if (reason == null) {
reason = " "
}
if (player != null) {
literalText(reason).let { playerManager.playerExecutor(player.uniqueId).kick(it) }
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import eu.cloudnetservice.driver.registry.ServiceRegistry
import eu.cloudnetservice.modules.bridge.player.PlayerManager
import org.bukkit.entity.Player
import org.bukkit.event.Event
import java.util.*


@Name("CloudNet Proxy of Player")
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/plugin.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
main: "de.bypixeltv.skcloudnet.Main"
name: "SkCloudnet"
version: "v1.3"
version: "v1.4"
api-version: "1.20"

author: "byPixelTV"
Expand Down

0 comments on commit 6a83ace

Please sign in to comment.