diff --git a/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/gui/BukkitFcGuiButton_1_13_00_R01.kt b/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/gui/BukkitFcGuiButton_1_13_00_R01.kt index e9aec0c9..bc4a6309 100644 --- a/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/gui/BukkitFcGuiButton_1_13_00_R01.kt +++ b/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/gui/BukkitFcGuiButton_1_13_00_R01.kt @@ -5,10 +5,12 @@ import net.benwoodworth.fastcraft.bukkit.item.BukkitFcItemConverter import net.benwoodworth.fastcraft.events.HandlerSet import net.benwoodworth.fastcraft.platform.gui.FcGuiClickEvent import net.benwoodworth.fastcraft.platform.item.FcItem +import net.benwoodworth.fastcraft.platform.text.FcLocale import org.bukkit.inventory.Inventory class BukkitFcGuiButton_1_13_00_R01( private val inventory: Inventory, + private val locale: FcLocale, private val slotIndex: Int, private val itemConverter: BukkitFcItemConverter ) : BukkitFcGuiButton { @@ -17,7 +19,7 @@ class BukkitFcGuiButton_1_13_00_R01( override fun setItem(item: FcItem?) { with(itemConverter) { - inventory.setItem(slotIndex, item?.bukkit?.toItemStack()) + inventory.setItem(slotIndex, item?.bukkit?.toItemStack(locale)) } } } \ No newline at end of file diff --git a/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/gui/BukkitFcGuiFactory_1_13_00_R01.kt b/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/gui/BukkitFcGuiFactory_1_13_00_R01.kt index 08a1e576..9bb12eb3 100644 --- a/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/gui/BukkitFcGuiFactory_1_13_00_R01.kt +++ b/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/gui/BukkitFcGuiFactory_1_13_00_R01.kt @@ -30,7 +30,7 @@ class BukkitFcGuiFactory_1_13_00_R01 @Inject constructor( return BukkitFcGui_1_13_00_R01( player, { owner -> server.createInventory(owner, 9 * height, legacyTitle) }, - { inventory -> BukkitFcGuiLayoutGrid_1_13_00_R01(9, height, inventory, itemConverter) }, + { inventory -> BukkitFcGuiLayoutGrid_1_13_00_R01(9, height, inventory, player.locale, itemConverter) }, plugin, legacyTextFactory, pluginManager diff --git a/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/gui/BukkitFcGuiLayoutGrid_1_13_00_R01.kt b/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/gui/BukkitFcGuiLayoutGrid_1_13_00_R01.kt index 135bc62c..367e5526 100644 --- a/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/gui/BukkitFcGuiLayoutGrid_1_13_00_R01.kt +++ b/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/gui/BukkitFcGuiLayoutGrid_1_13_00_R01.kt @@ -2,12 +2,14 @@ package net.benwoodworth.fastcraft.bukkit.gui import net.benwoodworth.fastcraft.bukkit.item.BukkitFcItemConverter import net.benwoodworth.fastcraft.platform.gui.FcGuiButton +import net.benwoodworth.fastcraft.platform.text.FcLocale import org.bukkit.inventory.Inventory class BukkitFcGuiLayoutGrid_1_13_00_R01( override val width: Int, override val height: Int, inventory: Inventory, + override val locale: FcLocale, itemConverter: BukkitFcItemConverter ) : BukkitFcGuiLayout_1_13_00_R01(inventory, itemConverter), BukkitFcGuiLayoutGrid { diff --git a/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/gui/BukkitFcGuiLayout_1_13_00_R01.kt b/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/gui/BukkitFcGuiLayout_1_13_00_R01.kt index a0662dc3..ed19ece2 100644 --- a/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/gui/BukkitFcGuiLayout_1_13_00_R01.kt +++ b/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/gui/BukkitFcGuiLayout_1_13_00_R01.kt @@ -2,6 +2,7 @@ package net.benwoodworth.fastcraft.bukkit.gui import net.benwoodworth.fastcraft.bukkit.item.BukkitFcItemConverter import net.benwoodworth.fastcraft.platform.gui.FcGuiButton +import net.benwoodworth.fastcraft.platform.text.FcLocale import org.bukkit.inventory.Inventory abstract class BukkitFcGuiLayout_1_13_00_R01( @@ -9,6 +10,8 @@ abstract class BukkitFcGuiLayout_1_13_00_R01( private val itemConverter: BukkitFcItemConverter ) : BukkitFcGuiLayout { + protected abstract val locale: FcLocale + private val buttons: MutableMap = mutableMapOf() override fun getSlotButton(slot: Int): FcGuiButton? { @@ -17,7 +20,7 @@ abstract class BukkitFcGuiLayout_1_13_00_R01( protected fun getSlotButtonOrCreate(slot: Int): FcGuiButton { return buttons.getOrPut(slot) { - BukkitFcGuiButton_1_13_00_R01(inventory, slot, itemConverter) + BukkitFcGuiButton_1_13_00_R01(inventory, locale, slot, itemConverter) } } } \ No newline at end of file diff --git a/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/item/BukkitFcItemConverter_1_13_00_R01.kt b/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/item/BukkitFcItemConverter_1_13_00_R01.kt index e05fe3dc..6db21c78 100644 --- a/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/item/BukkitFcItemConverter_1_13_00_R01.kt +++ b/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/item/BukkitFcItemConverter_1_13_00_R01.kt @@ -1,12 +1,28 @@ package net.benwoodworth.fastcraft.bukkit.item +import net.benwoodworth.fastcraft.bukkit.text.BukkitFcTextConverter +import net.benwoodworth.fastcraft.platform.text.FcLocale import org.bukkit.inventory.ItemStack import javax.inject.Inject class BukkitFcItemConverter_1_13_00_R01 @Inject constructor( + private val textConverter: BukkitFcTextConverter ) : BukkitFcItemConverter { - override fun BukkitFcItem.toItemStack(): ItemStack { - return itemStack.clone() + override fun BukkitFcItem.toItemStack(locale: FcLocale): ItemStack { + val itemStack = base.clone() + val meta = itemStack.itemMeta + + with(textConverter) { + + meta.displayName = displayName?.toLegacy(locale) + + meta.lore = lore + .takeIf { it.any() } + ?.map { it.toLegacy(locale) } + } + + itemStack.itemMeta = meta + return itemStack } } \ No newline at end of file diff --git a/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/item/BukkitFcItemFactory_1_13_00_R01.kt b/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/item/BukkitFcItemFactory_1_13_00_R01.kt index ce57078f..6be11a39 100644 --- a/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/item/BukkitFcItemFactory_1_13_00_R01.kt +++ b/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/item/BukkitFcItemFactory_1_13_00_R01.kt @@ -18,31 +18,30 @@ class BukkitFcItemFactory_1_13_00_R01 @Inject constructor( type: FcItemType, amount: Int, displayName: FcText?, - lore: List? + lore: List ): FcItem { val item = ItemStack(type.bukkit.material, amount) return BukkitFcItem_1_13_00_R01( - itemStack = item, + base = item, displayName = displayName, lore = lore, itemTypes = itemTypes ) } - override fun createFcItem( - copy: FcItem, + override fun FcItem.copy( type: FcItemType, amount: Int, displayName: FcText?, - lore: List? + lore: List ): FcItem { - val item = copy.bukkit.itemStack + val item = bukkit.base item.type = type.bukkit.material item.amount = amount return BukkitFcItem_1_13_00_R01( - itemStack = item, + base = item, displayName = displayName, lore = lore, itemTypes = itemTypes @@ -54,11 +53,12 @@ class BukkitFcItemFactory_1_13_00_R01 @Inject constructor( val meta = item.getItemMetaOrNull() return BukkitFcItem_1_13_00_R01( - itemStack = item, + base = item, displayName = meta?.displayName ?.let { textFactory.createFcText(it) }, lore = meta?.lore - ?.map { textFactory.createFcText(it ?: "") }, + ?.map { textFactory.createFcText(it ?: "") } + ?: emptyList(), itemTypes = itemTypes ) } diff --git a/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/item/BukkitFcItem_1_13_00_R01.kt b/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/item/BukkitFcItem_1_13_00_R01.kt index 30e63eb8..11af2835 100644 --- a/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/item/BukkitFcItem_1_13_00_R01.kt +++ b/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/item/BukkitFcItem_1_13_00_R01.kt @@ -8,15 +8,15 @@ import org.bukkit.inventory.ItemStack import javax.inject.Inject class BukkitFcItem_1_13_00_R01 @Inject constructor( - override val itemStack: ItemStack, + override val base: ItemStack, override val displayName: FcText?, - override val lore: List?, + override val lore: List, private val itemTypes: FcItemTypes ) : BukkitFcItem { override val type: FcItemType - get() = itemTypes.bukkit.fromMaterial(itemStack.type) + get() = itemTypes.bukkit.fromMaterial(base.type) override val amount: Int - get() = itemStack.amount + get() = base.amount } diff --git a/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/text/BukkitFcTextConverter_1_13_00_R01.kt b/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/text/BukkitFcTextConverter_1_13_00_R01.kt index c7351a6d..2401fca0 100644 --- a/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/text/BukkitFcTextConverter_1_13_00_R01.kt +++ b/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/text/BukkitFcTextConverter_1_13_00_R01.kt @@ -5,6 +5,7 @@ import kotlinx.serialization.Serializable import kotlinx.serialization.json.Json import net.benwoodworth.fastcraft.bukkit.bukkit import net.benwoodworth.fastcraft.platform.text.FcLocale +import net.benwoodworth.fastcraft.platform.text.FcText import org.bukkit.ChatColor import javax.inject.Inject @@ -12,8 +13,8 @@ class BukkitFcTextConverter_1_13_00_R01 @Inject constructor( private val localizer: BukkitLocalizer ) : BukkitFcTextConverter { - override fun BukkitFcText.toRaw(): String { - return RawText(this).toString() + override fun FcText.toRaw(): String { + return RawText(this.bukkit).toString() } @Serializable @@ -38,7 +39,7 @@ class BukkitFcTextConverter_1_13_00_R01 @Inject constructor( strikethrough = text.strikethrough, obfuscate = text.obfuscate, extra = text.extra - ?.takeIf { it.any() } + .takeIf { it.any() } ?.map { RawText(it.bukkit) } ) @@ -51,9 +52,13 @@ class BukkitFcTextConverter_1_13_00_R01 @Inject constructor( } } - override fun BukkitFcText.toLegacy(locale: FcLocale): String { + override fun FcText.toLegacy(locale: FcLocale): String { + bukkit.legacy?.let { + return it + } + return LegacyTextBuilder(locale) - .appendText(this) + .appendText(this.bukkit) .toString() } @@ -108,7 +113,7 @@ class BukkitFcTextConverter_1_13_00_R01 @Inject constructor( } // Append the extra text. - text.extra?.forEach { + text.extra.forEach { appendText(it.bukkit, format) } } diff --git a/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/text/BukkitFcTextFactory_1_13_00_R01.kt b/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/text/BukkitFcTextFactory_1_13_00_R01.kt index 676f2d12..568644fe 100644 --- a/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/text/BukkitFcTextFactory_1_13_00_R01.kt +++ b/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/text/BukkitFcTextFactory_1_13_00_R01.kt @@ -16,7 +16,7 @@ class BukkitFcTextFactory_1_13_00_R01 @Inject constructor( underline: Boolean?, strikethrough: Boolean?, obfuscate: Boolean?, - extra: List? + extra: List ): FcText { return BukkitFcText_1_13_00_R01( text = text, @@ -39,7 +39,7 @@ class BukkitFcTextFactory_1_13_00_R01 @Inject constructor( underline: Boolean?, strikethrough: Boolean?, obfuscate: Boolean?, - extra: List? + extra: List ): FcText { return BukkitFcText_1_13_00_R01( text = text, @@ -52,4 +52,10 @@ class BukkitFcTextFactory_1_13_00_R01 @Inject constructor( extra = extra ) } + + override fun createFcText(legacy: String): FcText { + return BukkitFcText_1_13_00_R01( + legacy = legacy + ) + } } diff --git a/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/text/BukkitFcText_1_13_00_R01.kt b/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/text/BukkitFcText_1_13_00_R01.kt index af8286cd..a0931865 100644 --- a/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/text/BukkitFcText_1_13_00_R01.kt +++ b/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/text/BukkitFcText_1_13_00_R01.kt @@ -4,6 +4,7 @@ import net.benwoodworth.fastcraft.platform.text.FcText import net.benwoodworth.fastcraft.platform.text.FcTextColor class BukkitFcText_1_13_00_R01( + override val legacy: String? = null, override val text: String? = null, override val translate: String? = null, override val color: FcTextColor? = null, @@ -12,5 +13,5 @@ class BukkitFcText_1_13_00_R01( override val underline: Boolean? = null, override val strikethrough: Boolean? = null, override val obfuscate: Boolean? = null, - override val extra: List? = null + override val extra: List = emptyList() ) : BukkitFcText diff --git a/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/text/BukkitLocalizer_1_13_00_R01.kt b/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/text/BukkitLocalizer_1_13_00_R01.kt index 5e7ae9e8..864ebd93 100644 --- a/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/text/BukkitLocalizer_1_13_00_R01.kt +++ b/fastcraft-bukkit/bukkit-1.13.00-R0.1/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/text/BukkitLocalizer_1_13_00_R01.kt @@ -1,6 +1,5 @@ package net.benwoodworth.fastcraft.bukkit.text -import net.benwoodworth.fastcraft.bukkit.bukkit import net.benwoodworth.fastcraft.platform.text.FcLocale import javax.inject.Inject @@ -8,6 +7,6 @@ class BukkitLocalizer_1_13_00_R01 @Inject constructor( ) : BukkitLocalizer { override fun localize(key: String, locale: FcLocale): String? { - return "[${locale.bukkit.localeId}/$key]" + return key // TODO } } \ No newline at end of file diff --git a/fastcraft-bukkit/bukkit/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/item/BukkitFcItem.kt b/fastcraft-bukkit/bukkit/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/item/BukkitFcItem.kt index 5aaf1ecd..0aab6b10 100644 --- a/fastcraft-bukkit/bukkit/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/item/BukkitFcItem.kt +++ b/fastcraft-bukkit/bukkit/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/item/BukkitFcItem.kt @@ -5,5 +5,5 @@ import org.bukkit.inventory.ItemStack interface BukkitFcItem : FcItem { - val itemStack: ItemStack + val base: ItemStack } diff --git a/fastcraft-bukkit/bukkit/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/item/BukkitFcItemConverter.kt b/fastcraft-bukkit/bukkit/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/item/BukkitFcItemConverter.kt index 74d45663..b5af3590 100644 --- a/fastcraft-bukkit/bukkit/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/item/BukkitFcItemConverter.kt +++ b/fastcraft-bukkit/bukkit/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/item/BukkitFcItemConverter.kt @@ -1,8 +1,9 @@ package net.benwoodworth.fastcraft.bukkit.item +import net.benwoodworth.fastcraft.platform.text.FcLocale import org.bukkit.inventory.ItemStack interface BukkitFcItemConverter { - fun BukkitFcItem.toItemStack(): ItemStack + fun BukkitFcItem.toItemStack(locale: FcLocale): ItemStack } \ No newline at end of file diff --git a/fastcraft-bukkit/bukkit/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/text/BukkitFcText.kt b/fastcraft-bukkit/bukkit/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/text/BukkitFcText.kt index ae76f939..2d667ca7 100644 --- a/fastcraft-bukkit/bukkit/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/text/BukkitFcText.kt +++ b/fastcraft-bukkit/bukkit/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/text/BukkitFcText.kt @@ -5,7 +5,7 @@ import net.benwoodworth.fastcraft.platform.text.FcTextColor interface BukkitFcText : FcText { - + val legacy: String? val text: String? val translate: String? @@ -16,5 +16,5 @@ interface BukkitFcText : FcText { val strikethrough: Boolean? val obfuscate: Boolean? - val extra: List? + val extra: List } diff --git a/fastcraft-bukkit/bukkit/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/text/BukkitFcTextConverter.kt b/fastcraft-bukkit/bukkit/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/text/BukkitFcTextConverter.kt index 8dfce5e2..aae6123f 100644 --- a/fastcraft-bukkit/bukkit/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/text/BukkitFcTextConverter.kt +++ b/fastcraft-bukkit/bukkit/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/text/BukkitFcTextConverter.kt @@ -1,10 +1,11 @@ package net.benwoodworth.fastcraft.bukkit.text import net.benwoodworth.fastcraft.platform.text.FcLocale +import net.benwoodworth.fastcraft.platform.text.FcText interface BukkitFcTextConverter { - fun BukkitFcText.toRaw(): String + fun FcText.toRaw(): String - fun BukkitFcText.toLegacy(locale: FcLocale): String + fun FcText.toLegacy(locale: FcLocale): String } \ No newline at end of file diff --git a/fastcraft-bukkit/bukkit/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/text/BukkitFcTextFactory.kt b/fastcraft-bukkit/bukkit/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/text/BukkitFcTextFactory.kt index 1960e3ef..1fe7f4b3 100644 --- a/fastcraft-bukkit/bukkit/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/text/BukkitFcTextFactory.kt +++ b/fastcraft-bukkit/bukkit/src/main/kotlin/net/benwoodworth/fastcraft/bukkit/text/BukkitFcTextFactory.kt @@ -15,6 +15,10 @@ interface BukkitFcTextFactory : FcTextFactory { underline: Boolean? = null, strikethrough: Boolean? = null, obfuscate: Boolean? = null, - extra: List? = null + extra: List = emptyList() + ): FcText + + fun createFcText( + legacy: String ): FcText } diff --git a/fastcraft/src/main/kotlin/net/benwoodworth/fastcraft/FastCraft.kt b/fastcraft/src/main/kotlin/net/benwoodworth/fastcraft/FastCraft.kt index abfaa51f..9793515b 100644 --- a/fastcraft/src/main/kotlin/net/benwoodworth/fastcraft/FastCraft.kt +++ b/fastcraft/src/main/kotlin/net/benwoodworth/fastcraft/FastCraft.kt @@ -63,66 +63,67 @@ class FastCraft @Inject internal constructor( private fun showTestGui(player: FcPlayer) { with(textFactory) { - val gui = guiFactory.openChestGui( - player = player, - height = 4, - title = createFcText( - text = "This is a ", - extra = listOf( - createFcText( - text = "Test ", - color = textColors.blue, - extra = listOf( - createFcText( - text = "GUI", - color = textColors.green, - underline = true + with(itemFactory) { + val gui = guiFactory.openChestGui( + player = player, + height = 4, + title = createFcText( + text = "This is a ", + extra = listOf( + createFcText( + text = "Test ", + color = textColors.blue, + extra = listOf( + createFcText( + text = "GUI", + color = textColors.green, + underline = true + ) ) - ) - ), - createFcText("!!") + ), + createFcText("!!") + ) ) ) - ) - val layout = gui.layout - for (x in 0 until layout.width) { - for (y in 0 until layout.height) { - val button = layout.getButton(x, y) + val layout = gui.layout + for (x in 0 until layout.width) { + for (y in 0 until layout.height) { + val button = layout.getButton(x, y) - var item = itemFactory.createFcItem( - type = itemTypes.netherStar, - amount = x + y * layout.width + 1, - displayName = createFcText("($x, $y)"), - lore = listOf( - createFcText( - "Name: ", - extra = listOf(itemTypes.netherStar.name) - ), - createFcText( - "Description: ", - extra = listOf(itemTypes.netherStar.description) + var item = itemFactory.createFcItem( + type = itemTypes.netherStar, + amount = x + y * layout.width + 1, + displayName = createFcText("($x, $y)"), + lore = listOf( + createFcText( + "Name: ", + extra = listOf(itemTypes.netherStar.name) + ), + createFcText( + "Description: ", + extra = listOf(itemTypes.netherStar.description) + ) ) ) - ) - button.setItem(item) + button.setItem(item) - button.onClick { - with(layout.getButton(x, y)) { - item = itemFactory.createFcItem( - copy = item, - amount = item.amount % 63 + 1 - ) + button.onClick { + with(layout.getButton(x, y)) { + item = item.copy( + amount = item.amount % 63 + 1 + ) - setItem(item) + setItem(item) + } } } } - } - gui.onClose { - logger.info("GUI closed!") + gui.onClose { + logger.info("GUI closed!") + } } } } diff --git a/fastcraft/src/main/kotlin/net/benwoodworth/fastcraft/platform/item/FcItem.kt b/fastcraft/src/main/kotlin/net/benwoodworth/fastcraft/platform/item/FcItem.kt index 656294b2..01e9956d 100644 --- a/fastcraft/src/main/kotlin/net/benwoodworth/fastcraft/platform/item/FcItem.kt +++ b/fastcraft/src/main/kotlin/net/benwoodworth/fastcraft/platform/item/FcItem.kt @@ -10,5 +10,5 @@ interface FcItem { val displayName: FcText? - val lore: List? + val lore: List } diff --git a/fastcraft/src/main/kotlin/net/benwoodworth/fastcraft/platform/item/FcItemFactory.kt b/fastcraft/src/main/kotlin/net/benwoodworth/fastcraft/platform/item/FcItemFactory.kt index 6b4667e8..20e32b1d 100644 --- a/fastcraft/src/main/kotlin/net/benwoodworth/fastcraft/platform/item/FcItemFactory.kt +++ b/fastcraft/src/main/kotlin/net/benwoodworth/fastcraft/platform/item/FcItemFactory.kt @@ -8,14 +8,13 @@ interface FcItemFactory { type: FcItemType, amount: Int = 1, displayName: FcText? = null, - lore: List? = null + lore: List = emptyList() ): FcItem - fun createFcItem( - copy: FcItem, - type: FcItemType = copy.type, - amount: Int = copy.amount, - displayName: FcText? = copy.displayName, - lore: List? = copy.lore + fun FcItem.copy( + type: FcItemType = this.type, + amount: Int = this.amount, + displayName: FcText? = this.displayName, + lore: List = this.lore ): FcItem } \ No newline at end of file diff --git a/fastcraft/src/main/kotlin/net/benwoodworth/fastcraft/platform/text/FcTextFactory.kt b/fastcraft/src/main/kotlin/net/benwoodworth/fastcraft/platform/text/FcTextFactory.kt index fa273a74..b733820a 100644 --- a/fastcraft/src/main/kotlin/net/benwoodworth/fastcraft/platform/text/FcTextFactory.kt +++ b/fastcraft/src/main/kotlin/net/benwoodworth/fastcraft/platform/text/FcTextFactory.kt @@ -10,6 +10,6 @@ interface FcTextFactory { underline: Boolean? = null, strikethrough: Boolean? = null, obfuscate: Boolean? = null, - extra: List? = null + extra: List = emptyList() ): FcText } \ No newline at end of file