Skip to content

Commit db22324

Browse files
authored
Merge pull request #200 from ToberoCat/faster-clustering
Faster clustering
2 parents cd2c120 + d16bf3d commit db22324

46 files changed

Lines changed: 753 additions & 515 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

improved-factions-base/src/main/kotlin/io/github/toberocat/improvedfactions/ImprovedFactionsPlugin.kt

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import com.jeff_media.updatechecker.UpdateCheckSource
44
import com.jeff_media.updatechecker.UpdateChecker
55
import com.jeff_media.updatechecker.UserAgentBuilder
66
import io.github.toberocat.improvedfactions.claims.FactionClaims
7-
import io.github.toberocat.improvedfactions.claims.clustering.ClaimClusterDetector
8-
import io.github.toberocat.improvedfactions.claims.clustering.DatabaseClaimQueryProvider
7+
import io.github.toberocat.improvedfactions.claims.clustering.detector.ClaimClusterDetector
8+
import io.github.toberocat.improvedfactions.claims.clustering.query.DatabaseClaimQueryProvider
99
import io.github.toberocat.improvedfactions.commands.FactionCommandExecutor
1010
import io.github.toberocat.improvedfactions.commands.claim.FactionMap
1111
import io.github.toberocat.improvedfactions.config.ImprovedFactionsConfig
@@ -15,24 +15,16 @@ import io.github.toberocat.improvedfactions.invites.FactionInvites
1515
import io.github.toberocat.improvedfactions.listeners.PlayerJoinListener
1616
import io.github.toberocat.improvedfactions.listeners.move.MoveListener
1717
import io.github.toberocat.improvedfactions.modules.ModuleManager
18-
import io.github.toberocat.improvedfactions.modules.chat.ChatModule
19-
import io.github.toberocat.improvedfactions.modules.dynmap.DynmapModule
20-
import io.github.toberocat.improvedfactions.modules.gui.GuiModule
21-
import io.github.toberocat.improvedfactions.modules.home.HomeModule
22-
import io.github.toberocat.improvedfactions.modules.power.PowerRaidsModule
23-
import io.github.toberocat.improvedfactions.modules.wilderness.WildernessModule
2418
import io.github.toberocat.improvedfactions.papi.PapiExpansion
2519
import io.github.toberocat.improvedfactions.ranks.FactionRankHandler
2620
import io.github.toberocat.improvedfactions.ranks.FactionRanks
2721
import io.github.toberocat.improvedfactions.translation.updateLanguages
2822
import io.github.toberocat.improvedfactions.utils.BStatsCollector
2923
import io.github.toberocat.improvedfactions.utils.FileUtils
3024
import io.github.toberocat.improvedfactions.utils.arguments.ClaimRadiusArgument
31-
import io.github.toberocat.improvedfactions.utils.options.PlayerNameOption
3225
import io.github.toberocat.improvedfactions.utils.particles.ParticleAnimation
3326
import io.github.toberocat.improvedfactions.utils.threadPool
3427
import io.github.toberocat.improvedfactions.zone.ZoneHandler
35-
import io.github.toberocat.toberocore.command.CommandExecutor
3628
import me.clip.placeholderapi.PlaceholderAPI
3729
import net.kyori.adventure.platform.bukkit.BukkitAudiences
3830
import org.bukkit.Bukkit

improved-factions-base/src/main/kotlin/io/github/toberocat/improvedfactions/claims/FactionClaim.kt

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
package io.github.toberocat.improvedfactions.claims
22

33
import io.github.toberocat.improvedfactions.ImprovedFactionsPlugin
4-
import io.github.toberocat.improvedfactions.claims.clustering.FactionCluster
5-
import io.github.toberocat.improvedfactions.claims.clustering.ChunkPosition
4+
import io.github.toberocat.improvedfactions.claims.clustering.cluster.Cluster
5+
import io.github.toberocat.improvedfactions.claims.clustering.cluster.FactionCluster
6+
import io.github.toberocat.improvedfactions.claims.clustering.position.ChunkPosition
67
import io.github.toberocat.improvedfactions.claims.overclaim.ClaimSiegeManager
78
import io.github.toberocat.improvedfactions.factions.Faction
89
import io.github.toberocat.improvedfactions.user.noFactionId
@@ -24,6 +25,7 @@ class FactionClaim(id: EntityID<Int>) : IntEntity(id) {
2425
var chunkZ by FactionClaims.chunkZ
2526
var factionId by FactionClaims.factionId
2627
var zoneType by FactionClaims.zoneType
28+
var claimCluster by Cluster optionalReferencedOn FactionClaims.clusterId
2729

2830
fun faction(): Faction? = Faction.findById(factionId)
2931

@@ -43,7 +45,11 @@ class FactionClaim(id: EntityID<Int>) : IntEntity(id) {
4345
fun chunk() = Bukkit.getWorld(world)?.getChunkAt(chunkX, chunkZ)
4446
fun toPosition() = ChunkPosition(chunkX, chunkZ, world)
4547

46-
private fun getCluster() = ImprovedFactionsPlugin.instance.claimChunkClusters.getCluster(toPosition())
48+
private fun getCluster() = ImprovedFactionsPlugin.instance.claimChunkClusters.getCluster(this)
49+
50+
fun isRaidable() = (getCluster()?.findAdditionalType() as? FactionCluster)?.isUnprotected(chunkX, chunkZ, world)
51+
override fun toString(): String {
52+
return "FactionClaim(world='$world', chunkX=$chunkX, chunkZ=$chunkZ, factionId=$factionId, zoneType='$zoneType', claimCluster=${claimCluster?.id?.value})"
53+
}
4754

48-
fun isRaidable() = (getCluster() as? FactionCluster)?.isUnprotected(chunkX, chunkZ, world)
4955
}

improved-factions-base/src/main/kotlin/io/github/toberocat/improvedfactions/claims/FactionClaims.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.github.toberocat.improvedfactions.claims
22

3+
import io.github.toberocat.improvedfactions.claims.clustering.cluster.Clusters
34
import io.github.toberocat.improvedfactions.zone.ZoneHandler
45
import org.jetbrains.exposed.dao.id.IntIdTable
56

@@ -13,4 +14,5 @@ object FactionClaims : IntIdTable("faction_claims") {
1314
val factionId = integer("faction_id")
1415
val world = varchar("world", MAX_WORLD_NAME_LENGTH).default("world")
1516
val zoneType = varchar("zone_type", MAX_ZONE_NAME_LENGTH).default(ZoneHandler.FACTION_ZONE_TYPE)
17+
val clusterId = reference("cluster_id", Clusters).nullable()
1618
}

improved-factions-base/src/main/kotlin/io/github/toberocat/improvedfactions/claims/clustering/ClaimClusterDetector.kt

Lines changed: 0 additions & 160 deletions
This file was deleted.

improved-factions-base/src/main/kotlin/io/github/toberocat/improvedfactions/claims/clustering/ClaimQueryProvider.kt

Lines changed: 0 additions & 7 deletions
This file was deleted.

improved-factions-base/src/main/kotlin/io/github/toberocat/improvedfactions/claims/clustering/Cluster.kt

Lines changed: 0 additions & 89 deletions
This file was deleted.
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package io.github.toberocat.improvedfactions.claims.clustering
22

33
import io.github.toberocat.improvedfactions.ImprovedFactionsPlugin
4+
import io.github.toberocat.improvedfactions.claims.clustering.position.ChunkPosition
45
import org.bukkit.entity.Player
56

6-
object ClusterExtension {
7-
fun Player.getCurrentClusters(chunkRenderDistance: Int) = location.world?.name?.let { world ->
8-
ChunkPosition(location.chunk.x, location.chunk.z, world)
9-
.getNeighbours(chunkRenderDistance)
10-
.mapNotNull { ImprovedFactionsPlugin.instance.claimChunkClusters.getCluster(it) }
11-
} ?: emptyList()
12-
}
7+
fun Player.getCurrentClusters(chunkRenderDistance: Int) = location.world?.name?.let { world ->
8+
ChunkPosition(location.chunk.x, location.chunk.z, world)
9+
.getNeighbours(chunkRenderDistance)
10+
.mapNotNull { it.getFactionClaim() }
11+
.mapNotNull { ImprovedFactionsPlugin.instance.claimChunkClusters.getCluster(it) }
12+
} ?: emptyList()
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package io.github.toberocat.improvedfactions.claims.clustering
2+
3+
enum class ClusterType {
4+
FACTION,
5+
ZONE
6+
}

0 commit comments

Comments
 (0)