Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,5 @@ hs_err_pid*
.idea/
*.iml
.gradle/
build/
out/
5 changes: 5 additions & 0 deletions src/main/java/guild/Guild.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package guild

import java.util.*

class Guild(val masterUUID: UUID, val memberUUIDList: List<UUID>, val name: String)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

このクラスはこのプラグインに居ていい奴だっけ?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

あとこれdata classのほうがいいやつですね

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

とりあえずないとつらいから書いた

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

とりあえずで各プラグインに書いたクラスをあとでコアに移植するのと、
そもそもの使い方を事前にバチっと決めて最初にコアにクラス宣言しておくのどっちが楽か迷っているなう

34 changes: 34 additions & 0 deletions src/main/java/guild/GuildContainer.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package guild

import org.bukkit.Bukkit
import java.util.*

class GuildContainer() {

private val guildSet: MutableSet<Guild> = mutableSetOf()

fun createGuild(masterUUID: UUID, name: String) {
if (permitsToCreateBy(masterUUID)) {
guildSet.add(Guild(masterUUID, listOf(), name))
Bukkit.getServer().getPlayer(masterUUID)?.sendMessage("Your guild '$name' has been initialized!!")
}
}

fun destroyGuild(masterUUID: UUID) {
val masterPlayer = Bukkit.getServer().getPlayer(masterUUID) ?: return
val removedGuild = guildSet.find { it.masterUUID == masterUUID }
if (removedGuild == null) {
masterPlayer.sendMessage("You do not have guild.")
return
}
if (guildSet.remove(removedGuild)) {
masterPlayer.sendMessage("Your guild '${removedGuild.name}' has been dissolved!!")
} else {
masterPlayer.sendMessage("Failed to dissolve your guild.")
}
}

fun permitsToCreateBy(builderUUID: UUID): Boolean {
return guildSet.none { guild -> guild.masterUUID == builderUUID }
}
}
36 changes: 36 additions & 0 deletions src/main/java/life/grass/sarcandra/GuildCommandExecutor.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package life.grass.sarcandra

import guild.GuildContainer
import org.bukkit.command.Command
import org.bukkit.command.CommandExecutor
import org.bukkit.command.CommandSender
import org.bukkit.entity.Player

class GuildCommandExecutor(private val guildContainer: GuildContainer) : CommandExecutor {

public override fun onCommand(sender: CommandSender, command: Command, label: String, args: Array<out String>): Boolean {
if (args.isEmpty()) return false
val senderPlayer = sender as? Player ?: return false
when (args[0].toUpperCase()) {
"INIT" -> {
if (args[1].isNullOrBlank()) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

条件式の真偽が逆になっていませんか

guildContainer.createGuild(senderPlayer.uniqueId, args[1])
}
}
"DISBAND" -> {
guildContainer.destroyGuild(senderPlayer.uniqueId)
}
"INVITE" -> {
println("invite")
}
"CONFIRM" -> {
println("confirm")
}
"LEAVE" -> {
println("leave")
}
else -> return@onCommand false
}
return true
}
}
2 changes: 2 additions & 0 deletions src/main/java/life/grass/sarcandra/Sarcandra.kt
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
package life.grass.sarcandra

import guild.GuildContainer
import org.bukkit.plugin.java.JavaPlugin

class Sarcandra : JavaPlugin() {

override fun onEnable() {
super.onEnable()
getCommand("guild")?.setExecutor(GuildCommandExecutor(GuildContainer()))
}

}
11 changes: 11 additions & 0 deletions src/main/resources/plugin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,14 @@ name: Sarcandra
version: @version@
depend: [Arabidopsis]
main: life.grass.sarcandra.Sarcandra
commands:
guild:
description: Sarcandra commands of guild.
usage: /guild [init/disband/invite/confirm/leave]
permission: sarcandra.guild
permission-message: sorry, you do not have permission to do.
permissions:
sarcandra.*:
default: op
sarcandra.guild:
default: true