Skip to content

Commit

Permalink
Add staff and change to minimessage
Browse files Browse the repository at this point in the history
  • Loading branch information
Nlkomaru committed Feb 23, 2022
1 parent 18eec6d commit f6f8efa
Show file tree
Hide file tree
Showing 69 changed files with 1,137 additions and 1,589 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/blank.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
run: |
before="${{ steps.tag_version.outputs.new_tag }}"
after="${before//v/}"
sed -i -e "s/\${version}/$after/i" './src/main/resources/plugin.yml'
sed -i -e "s/version/$after/i" './build.gradle.kts'
cat ./src/main/resources/plugin.yml
- name: Change wrapper permissions
run: chmod +x ./gradlew
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
34 changes: 32 additions & 2 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@

import net.minecrell.pluginyml.bukkit.BukkitPluginDescription.Permission.Default

plugins {
id("java")
Expand All @@ -8,6 +8,7 @@ plugins {
id("com.github.johnrengelman.shadow") version "7.0.0"
id("xyz.jpenilla.run-paper") version "1.0.6"
id("org.sonarqube") version "3.3"
id("net.minecrell.plugin-yml.bukkit") version "0.5.1"
}

group = "dev.nikomaru"
Expand Down Expand Up @@ -41,10 +42,14 @@ dependencies {
implementation("org.jetbrains.exposed:exposed-dao:$exposedVersion")
implementation("org.jetbrains.exposed:exposed-jdbc:$exposedVersion")
implementation("org.jetbrains.exposed:exposed-java-time:$exposedVersion")
implementation("com.google.api-client:google-api-client:1.33.1")
implementation("com.google.api-client:google-api-client:1.33.2")
implementation("com.google.oauth-client:google-oauth-client-jetty:1.33.0")
implementation("com.google.apis:google-api-services-sheets:v4-rev20210629-1.32.1")
implementation("net.kyori:adventure-text-minimessage:4.1.0-SNAPSHOT")
compileOnly("net.luckperms:api:5.4")
library(kotlin("stdlib"))
library("com.google.code.gson", "gson", "2.8.7")
bukkitLibrary("com.google.code.gson", "gson", "2.8.7")
}

java {
Expand Down Expand Up @@ -82,4 +87,29 @@ sonarqube {
property("sonar.organization", "nlkomaru")
property("sonar.host.url", "https://sonarcloud.io")
}
}


bukkit {
name = "RaceAssist"
version = "version"
website = "https://github.com/Nlkomaru/RaceAssist-core"

main = "dev.nikomaru.raceassist.RaceAssist"

apiVersion = "1.18"
softDepend = listOf("Vault")
libraries = listOf("com.github.shynixn.mccoroutine:mccoroutine-bukkit-api:1.5.0", "com.github.shynixn.mccoroutine:mccoroutine-bukkit-core:1.5.0")


permissions {
register("RaceAssist.admin") {
default = Default.OP
childrenMap = mapOf("RaceAssist.commands.*" to true)
}
register("RaceAssist.user") {
default = Default.TRUE
children = listOf("RaceAssist.commands.audience.join", "RaceAssist.commands.audience.leave", "RaceAssist.commands.bet.open")
}
}
}
2 changes: 2 additions & 0 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
# suppress inspection "UnusedProperty" for whole file
# suppress inspection "UnusedProperty" for whole file
kotlin.code.style=official
exposedVersion=0.37.3
50 changes: 33 additions & 17 deletions src/main/kotlin/dev/nikomaru/raceassist/RaceAssist.kt
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import dev.nikomaru.raceassist.bet.commands.*
import dev.nikomaru.raceassist.bet.event.BetGuiClickEvent
import dev.nikomaru.raceassist.database.*
import dev.nikomaru.raceassist.files.Config
import dev.nikomaru.raceassist.race.commands.HelpCommand
import dev.nikomaru.raceassist.race.commands.audience.AudienceJoinCommand
import dev.nikomaru.raceassist.race.commands.audience.AudienceLeaveCommand
import dev.nikomaru.raceassist.race.commands.audience.AudienceListCommand
Expand All @@ -33,16 +34,22 @@ import dev.nikomaru.raceassist.race.commands.player.PlayerAddCommand
import dev.nikomaru.raceassist.race.commands.player.PlayerDeleteCommand
import dev.nikomaru.raceassist.race.commands.player.PlayerListCommand
import dev.nikomaru.raceassist.race.commands.player.PlayerRemoveCommand
import dev.nikomaru.raceassist.race.commands.race.*
import dev.nikomaru.raceassist.race.commands.race.RaceDebugCommand
import dev.nikomaru.raceassist.race.commands.race.RaceStartCommand
import dev.nikomaru.raceassist.race.commands.race.RaceStopCommand
import dev.nikomaru.raceassist.race.commands.setting.SettingCopyCommand
import dev.nikomaru.raceassist.race.commands.setting.SettingCreateCommand
import dev.nikomaru.raceassist.race.commands.setting.SettingDeleteCommand
import dev.nikomaru.raceassist.race.commands.setting.SettingStaffCommand
import dev.nikomaru.raceassist.race.event.SetCentralPointEvent
import dev.nikomaru.raceassist.race.event.SetInsideCircuitEvent
import dev.nikomaru.raceassist.race.event.SetOutsideCircuitEvent
import dev.nikomaru.raceassist.utils.CommandSuggestions
import dev.nikomaru.raceassist.utils.Lang
import net.luckperms.api.LuckPerms
import org.bukkit.command.CommandSender
import org.bukkit.configuration.file.YamlConfiguration
import org.jetbrains.exposed.sql.SchemaUtils
import org.jetbrains.exposed.sql.selectAll
import org.jetbrains.exposed.sql.transactions.transaction
import java.io.File

Expand All @@ -56,20 +63,26 @@ class RaceAssist : SuspendingJavaPlugin() {
Config.config = YamlConfiguration.loadConfiguration(File(dataFolder, "config.yml"))
Config.load()
settingDatabase()
setRaceID()
setCommand()
registerEvents()
if (!VaultAPI.setupEconomy()) {
plugin.logger.warning("Vault not found, disabling plugin")
server.pluginManager.disablePlugin(this)
return
}
VaultAPI.setupPermissions()
if (!server.pluginManager.isPluginEnabled("LuckPerms")) {
plugin.logger.warning("LuckPerms not found, disabling plugin")
server.pluginManager.disablePlugin(this)
return
}
luckperms = plugin.server.servicesManager.load(LuckPerms::class.java)!!
}

private fun settingDatabase() {
org.jetbrains.exposed.sql.Database.connect(url = "jdbc:sqlite:${plugin.dataFolder}${File.separator}RaceAssist.db", driver = "org.sqlite.JDBC")
transaction {
SchemaUtils.create(CircuitPoint, PlayerList, RaceList, BetList, BetSetting)
SchemaUtils.create(CircuitPoint, PlayerList, RaceList, BetList, BetSetting, RaceStaff)
}
}

Expand Down Expand Up @@ -101,33 +114,42 @@ class RaceAssist : SuspendingJavaPlugin() {
}

annotationParser.parse(CommandSuggestions())

annotationParser.parse(AudienceJoinCommand())
annotationParser.parse(AudienceLeaveCommand())
annotationParser.parse(AudienceListCommand())

annotationParser.parse(PlaceCentralCommand())
annotationParser.parse(PlaceDegreeCommand())
annotationParser.parse(PlaceFinishCommand())
annotationParser.parse(PlaceLapCommand())
annotationParser.parse(PlaceReverseCommand())
annotationParser.parse(PlaceSetCommand())

annotationParser.parse(PlayerAddCommand())
annotationParser.parse(PlayerDeleteCommand())
annotationParser.parse(PlayerListCommand())
annotationParser.parse(PlayerRemoveCommand())
annotationParser.parse(RaceCreateCommand())
annotationParser.parse(RaceDebugCommand())
annotationParser.parse(RaceDeleteCommand())

annotationParser.parse(RaceStartCommand())
annotationParser.parse(RaceStopCommand())
annotationParser.parse(RaceDebugCommand())

annotationParser.parse(BetCanCommand())
annotationParser.parse(BetDeleteCommand())
annotationParser.parse(BetListCommand())
annotationParser.parse(BetOpenCommand())
annotationParser.parse(BetRateCommand())
annotationParser.parse(BetRevertCommand())
annotationParser.parse(BetSheetCommand())
annotationParser.parse(RaceCopyCommand())
annotationParser.parse(BetRemoveCommand())

annotationParser.parse(SettingCreateCommand())
annotationParser.parse(SettingDeleteCommand())
annotationParser.parse(SettingCopyCommand())
annotationParser.parse(SettingStaffCommand())

annotationParser.parse(HelpCommand())
}

private fun registerEvents() {
Expand All @@ -139,15 +161,9 @@ class RaceAssist : SuspendingJavaPlugin() {

companion object {
lateinit var plugin: RaceAssist
val raceID = mutableListOf<String>()

fun setRaceID() {
transaction {
RaceList.selectAll().forEach {
raceID.add(it[RaceList.raceID])
}
}
}
private set
lateinit var luckperms: LuckPerms
private set
}
}

Expand Down
9 changes: 9 additions & 0 deletions src/main/kotlin/dev/nikomaru/raceassist/api/VaultAPI.kt
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,14 @@
package dev.nikomaru.raceassist.api

import net.milkbowl.vault.economy.Economy
import net.milkbowl.vault.permission.Permission
import org.bukkit.Bukkit.getServer
import org.bukkit.plugin.RegisteredServiceProvider

object VaultAPI {

private lateinit var econ: Economy
private lateinit var perms: Permission

fun setupEconomy(): Boolean {
if (getServer().pluginManager.getPlugin("Vault") == null) {
Expand All @@ -33,7 +35,14 @@ object VaultAPI {
return true
}

fun setupPermissions(): Boolean {
val rsp = getServer().servicesManager.getRegistration(Permission::class.java)
perms = rsp!!.provider
return true
}

fun getEconomy(): Economy {
return econ
}

}
32 changes: 13 additions & 19 deletions src/main/kotlin/dev/nikomaru/raceassist/bet/GuiComponent.kt
Original file line number Diff line number Diff line change
Expand Up @@ -18,100 +18,94 @@ package dev.nikomaru.raceassist.bet

import dev.nikomaru.raceassist.files.Config.betUnit
import dev.nikomaru.raceassist.utils.Lang
import net.kyori.adventure.text.Component.text
import net.kyori.adventure.text.TextComponent
import net.kyori.adventure.text.format.TextColor
import net.kyori.adventure.text.Component
import org.bukkit.Material
import org.bukkit.inventory.ItemStack
import org.bukkit.inventory.meta.ItemMeta
import java.text.MessageFormat
import java.util.*

object GuiComponent {

fun guiComponent(): TextComponent {
return text("レース賭け自販機").color(TextColor.fromHexString("#228b22"))
fun guiComponent(): Component {
return Component.text("レース賭け自販機")
}

fun onceUp(locale: Locale): ItemStack {
val onceUp = ItemStack(Material.PINK_STAINED_GLASS_PANE)
val onceUpMeta: ItemMeta = onceUp.itemMeta
onceUpMeta.displayName(text(MessageFormat.format(Lang.getText("to-bet-one-unit", locale), betUnit)).color(TextColor.fromHexString("#f08080")))
onceUpMeta.displayName(Lang.getComponent("to-bet-one-unit", locale, betUnit))
onceUp.itemMeta = onceUpMeta
return onceUp
}

fun onceDown(locale: Locale): ItemStack {
val onceDown = ItemStack(Material.LIGHT_BLUE_STAINED_GLASS_PANE)
val onceDownMeta: ItemMeta = onceDown.itemMeta
onceDownMeta.displayName(text(MessageFormat.format(Lang.getText("to-cancel-bet-one-unit", locale),
betUnit)).color(TextColor.fromHexString("#add8e6")))
onceDownMeta.displayName(Lang.getComponent("to-cancel-bet-one-unit", locale, betUnit))
onceDown.itemMeta = onceDownMeta
return onceDown
}

fun tenTimesUp(locale: Locale): ItemStack {
val tenTimesUp = ItemStack(Material.RED_STAINED_GLASS_PANE)
val tenTimesUpMeta: ItemMeta = tenTimesUp.itemMeta
tenTimesUpMeta.displayName(text(MessageFormat.format(Lang.getText("to-bet-ten-unit", locale),
betUnit * 10)).color(TextColor.fromHexString("#ff0000")))
tenTimesUpMeta.displayName(Lang.getComponent("to-bet-ten-unit", locale, betUnit * 10))
tenTimesUp.itemMeta = tenTimesUpMeta
return tenTimesUp
}

fun tenTimesDown(locale: Locale): ItemStack {
val tenTimesDown = ItemStack(Material.BLUE_STAINED_GLASS_PANE)
val tenTimesDownMeta: ItemMeta = tenTimesDown.itemMeta
tenTimesDownMeta.displayName(text(MessageFormat.format(Lang.getText("to-cancel-bet-ten-unit", locale),
betUnit * 10)).color(TextColor.fromHexString("#0000cd")))
tenTimesDownMeta.displayName(Lang.getComponent("to-cancel-bet-ten-unit", locale, betUnit * 10))
tenTimesDown.itemMeta = tenTimesDownMeta
return tenTimesDown
}

fun accept(locale: Locale): ItemStack {
val accept = ItemStack(Material.GREEN_WOOL)
val acceptMeta: ItemMeta = accept.itemMeta
acceptMeta.displayName(text(Lang.getText("gui-decide", locale)).color(TextColor.fromHexString("#228b22")))
acceptMeta.displayName(Lang.getComponent("gui-decide", locale))
accept.itemMeta = acceptMeta
return accept
}

fun deny(locale: Locale): ItemStack {
val deny = ItemStack(Material.RED_WOOL)
val denyMeta: ItemMeta = deny.itemMeta
denyMeta.displayName(text(Lang.getText("gui-cancel", locale)).color(TextColor.fromHexString("#ff0000")))
denyMeta.displayName(Lang.getComponent("gui-cancel", locale))
deny.itemMeta = denyMeta
return deny
}

fun reset(locale: Locale): ItemStack {
val reset = ItemStack(Material.WHITE_WOOL)
val resetMeta: ItemMeta = reset.itemMeta
resetMeta.displayName(text(Lang.getText("gui-reset", locale)).color(TextColor.fromHexString("#ffffff")))
resetMeta.displayName(Lang.getComponent("gui-reset", locale))
reset.itemMeta = resetMeta
return reset
}

fun noBet(locale: Locale): ItemStack {
val noBet = ItemStack(Material.BARRIER)
val noBetMeta: ItemMeta = noBet.itemMeta
noBetMeta.displayName(text(Lang.getText("gui-no-one-betting", locale)).color(TextColor.fromHexString("#ff0000")))
noBetMeta.displayName(Lang.getComponent("gui-no-one-betting", locale))
noBet.itemMeta = noBetMeta
return noBet
}

fun noUnderNotice(locale: Locale): ItemStack {
val noUnderNotice = ItemStack(Material.BARRIER)
val noUnderNoticeMeta: ItemMeta = noUnderNotice.itemMeta
noUnderNoticeMeta.displayName(text(Lang.getText("cannot-decrease-more-money", locale), TextColor.fromHexString("#ff0000")))
noUnderNoticeMeta.displayName(Lang.getComponent("cannot-decrease-more-money", locale))
noUnderNotice.itemMeta = noUnderNoticeMeta
return noUnderNotice
}

fun noHaveMoney(locale: Locale): ItemStack {
val noHaveMoney = ItemStack(Material.BARRIER)
val noHaveMoneyMeta: ItemMeta = noHaveMoney.itemMeta
noHaveMoneyMeta.displayName(text(Lang.getText("no-have-money", locale), TextColor.fromHexString("#ff0000")))
noHaveMoneyMeta.displayName(Lang.getComponent("no-have-money", locale))
noHaveMoney.itemMeta = noHaveMoneyMeta
return noHaveMoney
}
Expand Down
Loading

1 comment on commit f6f8efa

@Nlkomaru
Copy link
Member Author

Choose a reason for hiding this comment

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

Closes #4

Please sign in to comment.