-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fixed some bugs and added EffKickPlayerFromCloud
- Loading branch information
Showing
5 changed files
with
73 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,7 +5,7 @@ plugins { | |
} | ||
|
||
group = "de.bypixeltv" | ||
version = "1.3" | ||
version = "1.4" | ||
|
||
repositories { | ||
mavenCentral() | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
67 changes: 67 additions & 0 deletions
67
src/main/kotlin/de/bypixeltv/skcloudnet/elements/effects/players/EffKickPlayerFromCloud.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) } | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters