From 74bf90cad4b3918b543309b776587dac2bcc485d Mon Sep 17 00:00:00 2001 From: bluefireoly Date: Sat, 17 Oct 2020 13:23:55 +0200 Subject: [PATCH 1/3] Updated counterMessageCallback --- .../net/axay/kspigot/game/GamePhases.kt | 46 +++++++++---------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/src/main/kotlin/net/axay/kspigot/game/GamePhases.kt b/src/main/kotlin/net/axay/kspigot/game/GamePhases.kt index 4a56041d..09926620 100644 --- a/src/main/kotlin/net/axay/kspigot/game/GamePhases.kt +++ b/src/main/kotlin/net/axay/kspigot/game/GamePhases.kt @@ -11,40 +11,40 @@ class GamePhaseSystem(vararg gamePhases: GamePhase) { } fun buildCounterMessageCallback( - beforeTime: String? = null, - afterTime: String? = null, - hours: String = "h", - minutes: String = "m", - seconds: String = "s" + beforeTime: String? = null, + afterTime: String? = null, + hourPlural: String = "h", + minutePlural: String = "m", + secondPlural: String = "s", + hourSingular: String = hourPlural, + minuteSingular: String = minutePlural, + secondSingular: String = secondPlural ): (Long) -> String = { curSeconds -> StringBuilder().apply { - append(beforeTime) + if (beforeTime != null) + append(beforeTime) val hourTime = (curSeconds / 3600) val minuteTime = ((curSeconds % 3600) / 60) val secondsTime = (curSeconds % 60) - if (hourTime != 0L) - append("${hourTime.toString().run { if (length < 2) "0$this" else this }}:") + if (hourTime != 0L) { + append("$hourTime ${if (hourTime == 1L) hourSingular else hourPlural}") + if (minuteTime != 0L) append(" ") + } - if ((hourTime != 0L && secondsTime != 0L) || (minuteTime != 0L && secondsTime != 0L)) - append("${minuteTime.toString().run { if (length < 2) "0$this" else this }}:") - else if (minuteTime != 0L) - append(minuteTime.toString().run { if (length < 2) "0$this" else this }) + if (minuteTime != 0L) { + append("$minuteTime ${if (minuteTime == 1L) minuteSingular else minutePlural}") + if (secondsTime != 0L) append(" ") + } - if (secondsTime != 0L) - append(secondsTime.toString().run { if (length < 2) "0$this" else this }) + if (secondsTime != 0L || (hourTime == 0L && minuteTime == 0L)) { + append("$secondsTime ${if (secondsTime == 1L) secondSingular else secondPlural}") + } - append(" ").append(kotlin.run { - return@run when { - secondsTime != 0L -> seconds - minuteTime != 0L -> minutes - else -> hours - } - }) - - append(afterTime) + if (afterTime != null) + append(afterTime) }.toString() } From 259c9fe13a6ae28fc04cce6edaae650c9678ec9f Mon Sep 17 00:00:00 2001 From: bluefireoly Date: Sat, 17 Oct 2020 14:16:41 +0200 Subject: [PATCH 2/3] Moved gui elements to a seperate package --- .../kspigot/inventory/InventoryGUIElements.kt | 76 ------------------- .../inventory/elements/InventoryGUIButton.kt | 18 +++++ .../InventoryGUIButtonInventoryChange.kt | 26 +++++++ .../elements/InventoryGUIButtonPageChange.kt | 25 ++++++ .../elements/InventoryGUIFreeSlot.kt | 9 +++ .../elements/InventoryGUIPlaceholder.kt | 16 ++++ 6 files changed, 94 insertions(+), 76 deletions(-) create mode 100644 src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIButton.kt create mode 100644 src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIButtonInventoryChange.kt create mode 100644 src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIButtonPageChange.kt create mode 100644 src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIFreeSlot.kt create mode 100644 src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIPlaceholder.kt diff --git a/src/main/kotlin/net/axay/kspigot/inventory/InventoryGUIElements.kt b/src/main/kotlin/net/axay/kspigot/inventory/InventoryGUIElements.kt index 5be704da..7efa60c9 100644 --- a/src/main/kotlin/net/axay/kspigot/inventory/InventoryGUIElements.kt +++ b/src/main/kotlin/net/axay/kspigot/inventory/InventoryGUIElements.kt @@ -23,80 +23,4 @@ abstract class InventoryGUIElement( protected abstract fun onClickElement(clickEvent: InventoryGUIClickEvent) -} - -// Element implementations - -open class InventoryGUIButton( - inventoryGUIElementData: InventoryGUIElementData, - val action: (InventoryGUIClickEvent) -> Unit, -) : InventoryGUIElement(inventoryGUIElementData) { - - override fun onClickElement(clickEvent: InventoryGUIClickEvent) { - clickEvent.bukkitEvent.isCancelled = true - action(clickEvent) - } - -} - -class InventoryGUIPlaceholder( - inventoryGUIElementData: InventoryGUIElementData -) : InventoryGUIElement(inventoryGUIElementData) { - - override fun onClickElement(clickEvent: InventoryGUIClickEvent) { - clickEvent.bukkitEvent.isCancelled = true - } - -} - -class InventoryGUIButtonPageChange( - inventoryGUIElementData: InventoryGUIElementData, - calculator: InventoryGUIPageChangeCalculator, - onChange: ((InventoryGUIClickEvent) -> Unit)? -) - : InventoryGUIButton(inventoryGUIElementData, { - - val currentPage = it.gui.currentPage - val newPage = it.gui.getPage(calculator.calculateNewPage(it.gui.currentPageInt, it.gui.data.pages.keys)) - if (newPage != null) { - - val effect = (newPage.transitionTo ?: currentPage.transitionFrom) - ?: PageChangeEffect.INSTANT - - it.gui.changePage(effect, currentPage, newPage) - - onChange?.invoke(it) - - } - - }) - -class InventoryGUIButtonInventoryChange( - inventoryGUIElementData: InventoryGUIElementData, - changeToGUICallback: () -> InventoryGUI<*>, - changeToPageInt: Int?, - onChange: ((InventoryGUIClickEvent) -> Unit)? -) - : InventoryGUIButton(inventoryGUIElementData, { - - val changeToGUI = changeToGUICallback.invoke() - - val effect = (changeToGUI.data.transitionTo ?: it.gui.data.transitionFrom) - ?: InventoryChangeEffect.INSTANT - - val changeToPage = changeToGUI.getPage(changeToPageInt) ?: changeToGUI.currentPage - - changeToGUI.changeGUI(effect, it.gui.currentPage, changeToPage) - - it.bukkitEvent.whoClicked.openGUI(changeToGUI) - - onChange?.invoke(it) - - }) - - -// FREE SLOT - -class InventoryGUIFreeSlot : InventoryGUISlot() { - override fun onClick(clickEvent: InventoryGUIClickEvent) { /* do nothing */ } } \ No newline at end of file diff --git a/src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIButton.kt b/src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIButton.kt new file mode 100644 index 00000000..83383f89 --- /dev/null +++ b/src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIButton.kt @@ -0,0 +1,18 @@ +package net.axay.kspigot.inventory.elements + +import net.axay.kspigot.inventory.ForInventory +import net.axay.kspigot.inventory.InventoryGUIClickEvent +import net.axay.kspigot.inventory.InventoryGUIElement +import net.axay.kspigot.inventory.InventoryGUIElementData + +open class InventoryGUIButton( + inventoryGUIElementData: InventoryGUIElementData, + val action: (InventoryGUIClickEvent) -> Unit, +) : InventoryGUIElement(inventoryGUIElementData) { + + override fun onClickElement(clickEvent: InventoryGUIClickEvent) { + clickEvent.bukkitEvent.isCancelled = true + action(clickEvent) + } + +} \ No newline at end of file diff --git a/src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIButtonInventoryChange.kt b/src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIButtonInventoryChange.kt new file mode 100644 index 00000000..6c00bc92 --- /dev/null +++ b/src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIButtonInventoryChange.kt @@ -0,0 +1,26 @@ +package net.axay.kspigot.inventory.elements + +import net.axay.kspigot.inventory.* + +class InventoryGUIButtonInventoryChange( + inventoryGUIElementData: InventoryGUIElementData, + changeToGUICallback: () -> InventoryGUI<*>, + changeToPageInt: Int?, + onChange: ((InventoryGUIClickEvent) -> Unit)? +) + : InventoryGUIButton(inventoryGUIElementData, { + + val changeToGUI = changeToGUICallback.invoke() + + val effect = (changeToGUI.data.transitionTo ?: it.gui.data.transitionFrom) + ?: InventoryChangeEffect.INSTANT + + val changeToPage = changeToGUI.getPage(changeToPageInt) ?: changeToGUI.currentPage + + changeToGUI.changeGUI(effect, it.gui.currentPage, changeToPage) + + it.bukkitEvent.whoClicked.openGUI(changeToGUI) + + onChange?.invoke(it) + +}) \ No newline at end of file diff --git a/src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIButtonPageChange.kt b/src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIButtonPageChange.kt new file mode 100644 index 00000000..0d5f3648 --- /dev/null +++ b/src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIButtonPageChange.kt @@ -0,0 +1,25 @@ +package net.axay.kspigot.inventory.elements + +import net.axay.kspigot.inventory.* + +class InventoryGUIButtonPageChange( + inventoryGUIElementData: InventoryGUIElementData, + calculator: InventoryGUIPageChangeCalculator, + onChange: ((InventoryGUIClickEvent) -> Unit)? +) + : InventoryGUIButton(inventoryGUIElementData, { + + val currentPage = it.gui.currentPage + val newPage = it.gui.getPage(calculator.calculateNewPage(it.gui.currentPageInt, it.gui.data.pages.keys)) + if (newPage != null) { + + val effect = (newPage.transitionTo ?: currentPage.transitionFrom) + ?: PageChangeEffect.INSTANT + + it.gui.changePage(effect, currentPage, newPage) + + onChange?.invoke(it) + + } + +}) \ No newline at end of file diff --git a/src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIFreeSlot.kt b/src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIFreeSlot.kt new file mode 100644 index 00000000..7c385e1a --- /dev/null +++ b/src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIFreeSlot.kt @@ -0,0 +1,9 @@ +package net.axay.kspigot.inventory.elements + +import net.axay.kspigot.inventory.ForInventory +import net.axay.kspigot.inventory.InventoryGUIClickEvent +import net.axay.kspigot.inventory.InventoryGUISlot + +class InventoryGUIFreeSlot : InventoryGUISlot() { + override fun onClick(clickEvent: InventoryGUIClickEvent) { /* do nothing */ } +} \ No newline at end of file diff --git a/src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIPlaceholder.kt b/src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIPlaceholder.kt new file mode 100644 index 00000000..3543f5a6 --- /dev/null +++ b/src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIPlaceholder.kt @@ -0,0 +1,16 @@ +package net.axay.kspigot.inventory.elements + +import net.axay.kspigot.inventory.ForInventory +import net.axay.kspigot.inventory.InventoryGUIClickEvent +import net.axay.kspigot.inventory.InventoryGUIElement +import net.axay.kspigot.inventory.InventoryGUIElementData + +class InventoryGUIPlaceholder( + inventoryGUIElementData: InventoryGUIElementData +) : InventoryGUIElement(inventoryGUIElementData) { + + override fun onClickElement(clickEvent: InventoryGUIClickEvent) { + clickEvent.bukkitEvent.isCancelled = true + } + +} \ No newline at end of file From 11d996d78cc0ec98a3d60377b46758eae7dadc4b Mon Sep 17 00:00:00 2001 From: F0Xde Date: Sat, 17 Oct 2020 14:40:43 +0200 Subject: [PATCH 3/3] Revert changes to gradlew and gradlew.bat --- gradlew | 2 -- gradlew.bat | 4 ---- 2 files changed, 6 deletions(-) mode change 100755 => 100644 gradlew diff --git a/gradlew b/gradlew old mode 100755 new mode 100644 index fbd7c515..2fe81a7d --- a/gradlew +++ b/gradlew @@ -82,7 +82,6 @@ esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then @@ -130,7 +129,6 @@ fi if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - JAVACMD=`cygpath --unix "$JAVACMD"` # We build the pattern for arguments to be converted via cygpath diff --git a/gradlew.bat b/gradlew.bat index 5093609d..9618d8d9 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -29,9 +29,6 @@ if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" @@ -84,7 +81,6 @@ set CMD_LINE_ARGS=%* set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - @rem Execute Gradle "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%