diff --git a/.gitignore b/.gitignore index d5f737e..8a983ee 100644 --- a/.gitignore +++ b/.gitignore @@ -117,3 +117,6 @@ runs/ # Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored) !gradle-wrapper.jar + +# Ignore gradle.properties cos its got sensitive info +gradle.properties \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index c285526..16da6df 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,8 +1,10 @@ +import de.nilsdruyen.gradle.ftp.UploadExtension + plugins { kotlin("jvm") version "2.1.20-Beta1" - id("com.github.johnrengelman.shadow") version "8.1.1" + id("com.gradleup.shadow") version "8.3.5" id("io.papermc.paperweight.userdev") version "2.0.0-beta.11" -// id("de.nilsdruyen.gradle-ftp-upload-plugin") version "0.5.0" + id("de.nilsdruyen.gradle-ftp-upload-plugin") version "0.5.0" } group = "com.pobnellion" @@ -64,3 +66,16 @@ tasks.shadowJar { } } +configure { + host = properties.getOrDefault("ftp.host", "").toString() + port = properties.getOrDefault("ftp.port", 22).toString().toInt() + username = properties.getOrDefault("ftp.username", "").toString() + password = properties.getOrDefault("ftp.password", "").toString() + sourceDir = "${layout.buildDirectory.get()}/libs" + targetDir = "/plugins/" + clearDirectoryBeforeUpload = false +} + +tasks.uploadFilesToFtp { + dependsOn("shadowJar") +} \ No newline at end of file diff --git a/src/main/kotlin/com/pobnellion/aoe/building/Blacksmith.kt b/src/main/kotlin/com/pobnellion/aoe/building/Blacksmith.kt index a06d229..777ad45 100644 --- a/src/main/kotlin/com/pobnellion/aoe/building/Blacksmith.kt +++ b/src/main/kotlin/com/pobnellion/aoe/building/Blacksmith.kt @@ -1,10 +1,7 @@ package com.pobnellion.aoe.building -import com.pobnellion.aoe.ui.PlaceHint -import com.pobnellion.aoe.ui.PlaceHintValidators import org.bukkit.Location import org.bukkit.Material -import org.bukkit.entity.Player class Blacksmith(location: Location, variant: Int): Building(location, variant) { fun place(location: Location, sizeX: Float, sizeY: Float, sizeZ: Float, offsetY: Int) { diff --git a/src/main/kotlin/com/pobnellion/aoe/building/TownCenter.kt b/src/main/kotlin/com/pobnellion/aoe/building/TownCenter.kt index 73ca48f..f82f6a4 100644 --- a/src/main/kotlin/com/pobnellion/aoe/building/TownCenter.kt +++ b/src/main/kotlin/com/pobnellion/aoe/building/TownCenter.kt @@ -3,13 +3,14 @@ package com.pobnellion.aoe.building import com.pobnellion.aoe.Aoe import com.pobnellion.aoe.ui.PlaceHintValidators import com.sk89q.worldedit.WorldEdit +import com.sk89q.worldedit.bukkit.BukkitAdapter import com.sk89q.worldedit.extent.clipboard.Clipboard import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormats import com.sk89q.worldedit.function.operation.Operation import com.sk89q.worldedit.function.operation.Operations import com.sk89q.worldedit.math.BlockVector3 import com.sk89q.worldedit.session.ClipboardHolder -import com.sk89q.worldedit.world.World +import org.bukkit.Bukkit import org.bukkit.Location import java.io.File import java.io.FileInputStream @@ -17,8 +18,8 @@ import java.io.FileInputStream class TownCenter(location: Location, variant: Int): Building(location, variant) { companion object Info: BuildingInfo { - override val buildingType: BuildingType = BuildingType.TOWN_CENTER - override val schematicNames: List = listOf("plains_towncenter") + override val buildingType = BuildingType.TOWN_CENTER + override val schematicNames = listOf("plains_towncenter") override fun validate(location: Location): Boolean { return PlaceHintValidators.allReplaceable(location, 10f, 10f, 10f, -2) @@ -38,12 +39,12 @@ class TownCenter(location: Location, variant: Int): Building(location, variant) clipboard = reader.read() } - clipboard.origin = BlockVector3.ZERO + val offset = clipboard.region.minimumPoint.subtract(clipboard.origin) - WorldEdit.getInstance().newEditSession(location.world as World).use { editSession -> + WorldEdit.getInstance().newEditSession(BukkitAdapter.adapt(location.world)).use { editSession -> val operation: Operation = ClipboardHolder(clipboard) .createPaste(editSession) - .to(BlockVector3.at(location.x, location.y, location.z)) // configure here + .to(BlockVector3.at(location.x, location.y, location.z).subtract(offset)) // configure here .build() Operations.complete(operation) } diff --git a/src/main/kotlin/com/pobnellion/aoe/team/Plains.kt b/src/main/kotlin/com/pobnellion/aoe/team/Plains.kt index 3c81349..4944e9a 100644 --- a/src/main/kotlin/com/pobnellion/aoe/team/Plains.kt +++ b/src/main/kotlin/com/pobnellion/aoe/team/Plains.kt @@ -7,7 +7,7 @@ import com.pobnellion.aoe.building.TownCenter import org.bukkit.entity.Player class Plains(players: List) : Team(players) { - override val name: String = "Plains" + override fun name(): String = "Plains" override fun getBuildingInfo(type: BuildingType): BuildingInfo { return when (type) { diff --git a/src/main/kotlin/com/pobnellion/aoe/team/Team.kt b/src/main/kotlin/com/pobnellion/aoe/team/Team.kt index d04ad1a..c0555b5 100644 --- a/src/main/kotlin/com/pobnellion/aoe/team/Team.kt +++ b/src/main/kotlin/com/pobnellion/aoe/team/Team.kt @@ -12,11 +12,11 @@ abstract class Team(val players: List) { private val buildings: MutableList = mutableListOf() init { - players.forEach { player -> player.sendMessage("Joined team $name") } + players.forEach { player -> player.sendMessage("Joined team ${name()}") } } protected abstract fun getBuildingInfo(type: BuildingType): BuildingInfo - protected abstract val name: String + protected abstract fun name(): String fun addBuilding(location: Location, building: BuildingInfo, variant: Int) { buildings.add(building.create(location, variant)) diff --git a/src/main/kotlin/com/pobnellion/aoe/ui/BuildingPlaceHint.kt b/src/main/kotlin/com/pobnellion/aoe/ui/BuildingPlaceHint.kt index 061fc06..5c32c19 100644 --- a/src/main/kotlin/com/pobnellion/aoe/ui/BuildingPlaceHint.kt +++ b/src/main/kotlin/com/pobnellion/aoe/ui/BuildingPlaceHint.kt @@ -10,7 +10,6 @@ import org.bukkit.Location import org.bukkit.entity.Player import org.bukkit.util.Vector import org.joml.Vector3f -import java.io.File import java.io.FileInputStream import kotlin.math.floor @@ -50,8 +49,7 @@ class BuildingPlaceHint( this.offset = Vector( -floor(clipboard.dimensions.x() / 2.0), -// clipboard.minY.toDouble(), - 0.0, + clipboard.minY.toDouble() + 1, -floor(clipboard.dimensions.z() / 2.0)) } diff --git a/src/main/kotlin/com/pobnellion/aoe/ui/PlaceHint.kt b/src/main/kotlin/com/pobnellion/aoe/ui/PlaceHint.kt index db9075f..ae530c3 100644 --- a/src/main/kotlin/com/pobnellion/aoe/ui/PlaceHint.kt +++ b/src/main/kotlin/com/pobnellion/aoe/ui/PlaceHint.kt @@ -6,7 +6,6 @@ import com.comphenix.protocol.events.PacketContainer import com.comphenix.protocol.wrappers.* import com.comphenix.protocol.wrappers.WrappedDataWatcher.Registry import com.destroystokyo.paper.MaterialSetTag -import org.bukkit.Bukkit import org.bukkit.Location import org.bukkit.block.data.BlockData import org.bukkit.entity.EntityType