Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package de.leonhard.xcore.bungee.commands
- import co.aikar.commands.annotation.CommandAlias
- import co.aikar.commands.annotation.CommandCompletion
- import co.aikar.commands.annotation.Default
- import co.aikar.commands.annotation.Subcommand
- import de.leonhard.storage.Yaml
- import de.leonhard.xcore.XCore
- import de.leonhard.xcore.bungee.Party
- import de.leonhard.xcore.bungee.PartyManager
- import de.leonhard.xcore.data.yaml.ConfigFactory
- import de.leonhard.xcore.data.yaml.language.LanguageManager
- import de.leonhard.xcore.util.EasyComponent
- import de.leonhard.xcore.util.UniversalCommand
- import net.md_5.bungee.api.ProxyServer
- import net.md_5.bungee.api.chat.TextComponent
- import net.md_5.bungee.api.connection.ProxiedPlayer
- import java.util.*
- @CommandAlias("party|p")
- class PartyCommand : UniversalCommand() {
- private val cfg = Yaml(LanguageManager.getLanguage().code, XCore.PATH + "/languages")
- init { //WAS für ein KeyWord ist das?
- cfg.pathPrefix = "commands.bungee.PartyCommand"
- }
- private val prefix = ConfigFactory.getPartyPrefix()
- private val notInParty: String = cfg.getOrSetDefault("NotInParty",
- "You are in no party. Use &7/party help for &7help")
- private val usage: String = cfg.getOrSetDefault("UseHelp", "Use /party help for help")
- private val notLeader: String = cfg.getOrSetDefault("NotLeader", "You are not the leader of the party")
- @Default
- fun onParty(p: ProxiedPlayer) {
- /*
- Wenn in keiner Party -> DU bist in keiner Party
- Wenn in einer Party ->Help ->
- */
- doHelp()
- }
- @CommandAlias("pc")
- @Subcommand("chat|c")
- fun onChat(p: ProxiedPlayer, args: Array<String>) {
- isFalse(PartyManager.isInParty(p.uniqueId), notInParty)
- val party: Party = PartyManager.getPartyFromPlayer(p.uniqueId)
- var msg = "§e" + p.name + "§7 » "
- args.forEach {
- msg = "$msg$it "
- }
- val leader: ProxiedPlayer = ProxyServer.getInstance().getPlayer(party.leader)
- send(leader, msg, ConfigFactory.getPartyPrefix())
- party.members.forEach {
- ProxyServer.getInstance().getPlayer(it).sendMessage(TextComponent(ConfigFactory.getPartyPrefix() + msg))
- }
- }
- @Subcommand("list|info")
- fun onList(p: ProxiedPlayer) {
- isFalse(PartyManager.isInParty(p.uniqueId), notInParty)
- val party: Party = PartyManager.getPartyFromPlayer(p.uniqueId)
- send("§7Leader:§7 ${party.getLeaderName()}", prefix)
- send("§7Size: ${party.members.size.plus(1)}", prefix)
- party.members.forEach {
- if (it == party.leader)
- return
- send("§a§l•§7 ${ProxyServer.getInstance().getPlayer(it).name}", prefix)
- }
- }
- @Subcommand("create")
- fun onCreate(p: ProxiedPlayer) {
- val party = Party(p.uniqueId)
- send(cfg.getOrSetDefault("PartyCreated", "§7Party created §asuccessfully"))
- }
- @CommandCompletion("@players")
- @Subcommand("invite")
- fun onInvite(p: ProxiedPlayer, args: Array<String>) {
- checkArgsStrict(1, LanguageManager.providePlayer())
- val party: Party? = PartyManager.getPartyFromPlayer(p.uniqueId)
- checkNotNull(party, notInParty)
- val target: ProxiedPlayer = getPlayerIfOnlineBungee(args[0], LanguageManager.NotOnline(true))
- isTrue(party!!.members.contains(target.uniqueId),
- cfg.getOrSetDefault("AlreadyInParty", "§cThis player is already member §cof the party"))
- party.invite(target.uniqueId)
- send(cfg.getOrSetDefault("SuccessfullyInvited", "Invited §6%name §asuccessfully").replace("%name", target.name))
- send(target, cfg.getOrSetDefault("InvitedByParty", "You have been invited to party the from ${p.name}"))
- EasyComponent.builder("§6[§a§lJOIN§6]").onHover("Click to join").onClickRunCmd("/party join ${p.name}").send(target)
- }
- @CommandCompletion("@players")
- @Subcommand("join")
- fun onJoin(p: ProxiedPlayer, args: Array<String>) {
- checkArgsStrict(1, LanguageManager.providePlayer())
- val target: ProxiedPlayer = getPlayerIfOnlineBungee(args[0], LanguageManager.NotOnline(true)) //TODO Change in pro
- val uuid: UUID = target.uniqueId
- isFalse(PartyManager.parties.containsKey(target.uniqueId),
- cfg.getOrSetDefault("HasNoParty", "The player &6%name is in &cnot the leader&7 of any party."))
- val party: Party = PartyManager.getPartyFromPlayer(uuid)
- isFalse(party.isInvited(p.uniqueId), cfg.getOrSetDefault("NotInvited",
- "You have no invitation for the party of %name").replace("%name", target.name))
- party.add(p.uniqueId)
- party.broadcast("§6${p.name}§7 joined the party")
- }
- @Subcommand("remove")
- fun onRemove(p: ProxiedPlayer, args: Array<String>) {
- checkArgsStrict(1, usage)
- val party: Party? = PartyManager.getPartyFromPlayer(p.uniqueId)
- checkNotNull(party, notInParty)
- isFalse(party!!.isLeader(p.uniqueId), cfg.getOrSetDefault("NotLeader", "You are not the leader of the party"))
- val target: ProxiedPlayer = getPlayerIfOnlineBungee(args[0], LanguageManager.NotOnline(true))
- isFalse(party.isMember(target.uniqueId), cfg.getOrSetDefault("NotAnMember", "The player %name is not an member of this party"))
- party.remove(target.uniqueId)
- send(cfg.getOrSetDefault("Removed", "You have removed %name successfully from the party").replace("%name", target.name))
- }
- @Subcommand("promote")
- fun onPromote(p: ProxiedPlayer, args: Array<String>) {
- val party: Party? = PartyManager.getPartyFromPlayer(p.uniqueId)
- checkNotNull(party, notInParty)
- checkArgsStrict(1, usage)
- isFalse(party!!.isLeader(p.uniqueId), notLeader)
- val target = getPlayerIfOnlineBungee(args[0], LanguageManager.NotOnline(true))
- isTrue(party.isLeader(target.uniqueId), cfg.getOrSetDefault("AlreadyLeader", "&cYou are already leader of the party"))
- party.promote(target.uniqueId)
- PartyManager.parties.remove(p.uniqueId)
- PartyManager.parties[target.uniqueId] = party
- send(cfg.getOrSetDefault("SuccessfullyPromoted.1", "§aSuccessfully promoted §6%name").replace("%name", target.name))
- send(cfg.getOrSetDefault("SuccessfullyPromoted.2", "§7You are no longer the leader of this party."))
- }
- @Subcommand("delete")
- fun onDelete(p: ProxiedPlayer) {
- val party: Party? = PartyManager.getPartyFromPlayer(p.uniqueId)
- checkNotNull(party, notInParty)
- isFalse(party!!.isLeader(p.uniqueId), notLeader)
- PartyManager.delete(p.uniqueId)
- }
- @Subcommand("leave")
- fun onLeave(p: ProxiedPlayer) {
- val party: Party? = PartyManager.getPartyFromPlayer(p.uniqueId)
- checkNotNull(party, notInParty)
- isTrue(party!!.isLeader(p.uniqueId), cfg.getOrSetDefault("CantLeave",
- "&7The party leader can't leave his own party." +
- " Use &6/party delete &7to delete your party"))
- party.remove(p.uniqueId)
- send(cfg.getOrSetDefault("LeftTheParty", "You have §asuccessfully §7left the party"))
- }
- @Subcommand("help")
- fun onHelp(p: ProxiedPlayer) {
- doHelp()
- }
- private fun doHelp() {
- send(cfg.getOrSetDefault("Usage.0", "===== §ePartySystem by ${XCore.NAME} §7====="), prefix)
- send(cfg.getOrSetDefault("Usage.1", "/party <invite> <player> &7Invite a player"), prefix)
- send(cfg.getOrSetDefault("Usage.2", "/party <remove> <player> &7Remove a player"), prefix)
- send(cfg.getOrSetDefault("Usage.3", "/party <promote> <player> - &7Transfered party leadership"), prefix)
- send(cfg.getOrSetDefault("Usage.4", "/party <leave> &7Leaves the party"), prefix)
- send(cfg.getOrSetDefault("Usage.5", "/party <delete> &7 Deletes the party"), prefix)
- send(cfg.getOrSetDefault("Usage.6", "/pc <Message> Chat with party members"), prefix)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement