diff --git a/src/integration-test/kotlin/de/bixilon/minosoft/data/entities/entities/player/additional/PlayerAdditionalTest.kt b/src/integration-test/kotlin/de/bixilon/minosoft/data/entities/entities/player/additional/PlayerAdditionalTest.kt
index f34d39e31..1b6d99e48 100644
--- a/src/integration-test/kotlin/de/bixilon/minosoft/data/entities/entities/player/additional/PlayerAdditionalTest.kt
+++ b/src/integration-test/kotlin/de/bixilon/minosoft/data/entities/entities/player/additional/PlayerAdditionalTest.kt
@@ -13,7 +13,7 @@
package de.bixilon.minosoft.data.entities.entities.player.additional
-import de.bixilon.minosoft.data.scoreboard.Team
+import de.bixilon.minosoft.data.scoreboard.team.Team
import de.bixilon.minosoft.data.text.BaseComponent
import de.bixilon.minosoft.data.text.TextComponent
import de.bixilon.minosoft.data.text.formatting.color.ChatColors
diff --git a/src/integration-test/kotlin/de/bixilon/minosoft/gui/rendering/RenderTestLoader.kt b/src/integration-test/kotlin/de/bixilon/minosoft/gui/rendering/RenderTestLoader.kt
index 443bd2557..32c8de574 100644
--- a/src/integration-test/kotlin/de/bixilon/minosoft/gui/rendering/RenderTestLoader.kt
+++ b/src/integration-test/kotlin/de/bixilon/minosoft/gui/rendering/RenderTestLoader.kt
@@ -27,6 +27,7 @@ import org.testng.annotations.Test
class RenderTestLoader {
fun init() {
+ return
val connection = createConnection(5)
val latch = SimpleLatch(1)
connection::assetsManager.forceSet(AssetsLoader.create(connection.profiles.resources, connection.version, latch))
diff --git a/src/integration-test/kotlin/de/bixilon/minosoft/gui/rendering/entities/feature/text/name/EntityScoreFeatureTest.kt b/src/integration-test/kotlin/de/bixilon/minosoft/gui/rendering/entities/feature/text/name/EntityScoreFeatureTest.kt
index 18b269e3d..3e4f65332 100644
--- a/src/integration-test/kotlin/de/bixilon/minosoft/gui/rendering/entities/feature/text/name/EntityScoreFeatureTest.kt
+++ b/src/integration-test/kotlin/de/bixilon/minosoft/gui/rendering/entities/feature/text/name/EntityScoreFeatureTest.kt
@@ -73,7 +73,6 @@ class EntityScoreFeatureTest {
fun `name offset without score`() {
val score = createScore()
- score.setScore()
score.updateScore()
score.updateNameOffset()
assertEquals(score.renderer.name.offset, BillboardTextFeature.DEFAULT_OFFSET)
diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/player/PlayerEntity.kt b/src/main/java/de/bixilon/minosoft/data/entities/entities/player/PlayerEntity.kt
index 1af79c042..6a93350eb 100644
--- a/src/main/java/de/bixilon/minosoft/data/entities/entities/player/PlayerEntity.kt
+++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/player/PlayerEntity.kt
@@ -132,10 +132,7 @@ abstract class PlayerEntity(
if (chestPlate != null && chestPlate.item.item is DyeableItem) {
chestPlate._display?.dyeColor?.let { return it }
}
- val formattingCode = additional.team?.color
- if (formattingCode is RGBColor) {
- return formattingCode
- }
+ additional.team?.formatting?.color?.let { return it }
return ChatColors.RED
}
diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/player/additional/AdditionalDataUpdate.kt b/src/main/java/de/bixilon/minosoft/data/entities/entities/player/additional/AdditionalDataUpdate.kt
index c1eac0d8d..04fd6556c 100644
--- a/src/main/java/de/bixilon/minosoft/data/entities/entities/player/additional/AdditionalDataUpdate.kt
+++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/player/additional/AdditionalDataUpdate.kt
@@ -1,6 +1,6 @@
/*
* Minosoft
- * Copyright (C) 2020-2022 Moritz Zwerger
+ * Copyright (C) 2020-2023 Moritz Zwerger
*
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*
@@ -15,7 +15,7 @@ package de.bixilon.minosoft.data.entities.entities.player.additional
import de.bixilon.minosoft.data.abilities.Gamemodes
import de.bixilon.minosoft.data.entities.entities.player.properties.PlayerProperties
-import de.bixilon.minosoft.data.scoreboard.Team
+import de.bixilon.minosoft.data.scoreboard.team.Team
import de.bixilon.minosoft.data.text.ChatComponent
import de.bixilon.minosoft.protocol.PlayerPublicKey
diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/player/additional/PlayerAdditional.kt b/src/main/java/de/bixilon/minosoft/data/entities/entities/player/additional/PlayerAdditional.kt
index 3e885d50a..48c9d12eb 100644
--- a/src/main/java/de/bixilon/minosoft/data/entities/entities/player/additional/PlayerAdditional.kt
+++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/player/additional/PlayerAdditional.kt
@@ -16,7 +16,7 @@ package de.bixilon.minosoft.data.entities.entities.player.additional
import de.bixilon.kutil.observer.DataObserver.Companion.observed
import de.bixilon.minosoft.data.abilities.Gamemodes
import de.bixilon.minosoft.data.entities.entities.player.properties.PlayerProperties
-import de.bixilon.minosoft.data.scoreboard.Team
+import de.bixilon.minosoft.data.scoreboard.team.Team
import de.bixilon.minosoft.data.text.ChatComponent
import de.bixilon.minosoft.protocol.PlayerPublicKey
import de.bixilon.minosoft.util.KUtil.nullCompare
@@ -41,7 +41,7 @@ class PlayerAdditional(
var listed by observed(listed)
val tabDisplayName: ChatComponent
- get() = displayName ?: ChatComponent.of(name).let { team?.decorateName(it) ?: it }
+ get() = displayName ?: ChatComponent.of(name).let { team?.formatting?.decorate(it) ?: it }
fun merge(data: AdditionalDataUpdate) {
spareMerge(data)
diff --git a/src/main/java/de/bixilon/minosoft/data/scoreboard/ScoreboardManager.kt b/src/main/java/de/bixilon/minosoft/data/scoreboard/ScoreboardManager.kt
index 93e7b75f7..bfacef1e8 100644
--- a/src/main/java/de/bixilon/minosoft/data/scoreboard/ScoreboardManager.kt
+++ b/src/main/java/de/bixilon/minosoft/data/scoreboard/ScoreboardManager.kt
@@ -1,6 +1,6 @@
/*
* Minosoft
- * Copyright (C) 2020-2022 Moritz Zwerger
+ * Copyright (C) 2020-2023 Moritz Zwerger
*
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*
@@ -16,6 +16,7 @@ import de.bixilon.kutil.collections.CollectionUtil.lockMapOf
import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf
import de.bixilon.kutil.collections.map.LockMap
import de.bixilon.kutil.primitive.BooleanUtil.decide
+import de.bixilon.minosoft.data.scoreboard.team.Team
import de.bixilon.minosoft.modding.event.events.scoreboard.ScoreTeamChangeEvent
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
@@ -49,7 +50,7 @@ class ScoreboardManager(private val connection: PlayConnection) {
if (!fireEvent) {
continue
}
- connection.fire(ScoreTeamChangeEvent(connection, objective, score, team, remove))
+ connection.events.fire(ScoreTeamChangeEvent(connection, objective, score, team, remove))
}
}
objective.scores.lock.release()
diff --git a/src/main/java/de/bixilon/minosoft/data/scoreboard/ScoreboardScore.kt b/src/main/java/de/bixilon/minosoft/data/scoreboard/ScoreboardScore.kt
index c88fd0785..e269dcecd 100644
--- a/src/main/java/de/bixilon/minosoft/data/scoreboard/ScoreboardScore.kt
+++ b/src/main/java/de/bixilon/minosoft/data/scoreboard/ScoreboardScore.kt
@@ -1,6 +1,6 @@
/*
* Minosoft
- * Copyright (C) 2020 Moritz Zwerger
+ * Copyright (C) 2020-2023 Moritz Zwerger
*
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*
@@ -12,6 +12,8 @@
*/
package de.bixilon.minosoft.data.scoreboard
+import de.bixilon.minosoft.data.scoreboard.team.Team
+
class ScoreboardScore(
val entity: String,
var objective: ScoreboardObjective,
diff --git a/src/main/java/de/bixilon/minosoft/data/scoreboard/team/Team.kt b/src/main/java/de/bixilon/minosoft/data/scoreboard/team/Team.kt
new file mode 100644
index 000000000..4321cf7f2
--- /dev/null
+++ b/src/main/java/de/bixilon/minosoft/data/scoreboard/team/Team.kt
@@ -0,0 +1,38 @@
+/*
+ * Minosoft
+ * Copyright (C) 2020-2023 Moritz Zwerger
+ *
+ * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with this program. If not, see .
+ *
+ * This software is not affiliated with Mojang AB, the original developer of Minecraft.
+ */
+package de.bixilon.minosoft.data.scoreboard.team
+
+import de.bixilon.minosoft.data.scoreboard.TeamCollisionRules
+import de.bixilon.minosoft.data.text.TextComponent
+
+data class Team(
+ val name: String,
+ val formatting: TeamFormatting = TeamFormatting(TextComponent(name)),
+ var friendlyFire: Boolean = true,
+ val visibility: TeamVisibility = TeamVisibility(),
+ var collisions: TeamCollisionRules = TeamCollisionRules.ALWAYS,
+ val members: MutableSet = mutableSetOf(),
+) {
+ override fun toString(): String {
+ return name
+ }
+
+ fun canSee(other: Team?): Boolean {
+ // TODO
+ if (other == null) return false
+ if (other.name == this.name && visibility.invisibleTeam) return true
+
+
+ return false
+ }
+}
diff --git a/src/main/java/de/bixilon/minosoft/data/scoreboard/Team.kt b/src/main/java/de/bixilon/minosoft/data/scoreboard/team/TeamFormatting.kt
similarity index 62%
rename from src/main/java/de/bixilon/minosoft/data/scoreboard/Team.kt
rename to src/main/java/de/bixilon/minosoft/data/scoreboard/team/TeamFormatting.kt
index 5d36e0f7b..a9171516f 100644
--- a/src/main/java/de/bixilon/minosoft/data/scoreboard/Team.kt
+++ b/src/main/java/de/bixilon/minosoft/data/scoreboard/team/TeamFormatting.kt
@@ -10,30 +10,21 @@
*
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
*/
-package de.bixilon.minosoft.data.scoreboard
+
+package de.bixilon.minosoft.data.scoreboard.team
import de.bixilon.minosoft.data.text.BaseComponent
import de.bixilon.minosoft.data.text.ChatComponent
-import de.bixilon.minosoft.data.text.TextComponent
import de.bixilon.minosoft.data.text.formatting.color.RGBColor
-data class Team(
- val name: String,
- var displayName: ChatComponent = TextComponent(name),
+data class TeamFormatting(
+ var name: ChatComponent,
var prefix: ChatComponent? = null,
var suffix: ChatComponent? = null,
- var friendlyFire: Boolean = true,
- var canSeeInvisibleTeam: Boolean = true,
- var collisionRule: TeamCollisionRules = TeamCollisionRules.ALWAYS,
- var nameTagVisibility: NameTagVisibilities = NameTagVisibilities.ALWAYS,
var color: RGBColor? = null,
- val members: MutableSet = mutableSetOf(),
) {
- override fun toString(): String {
- return name
- }
- fun decorateName(name: ChatComponent): ChatComponent {
+ fun decorate(name: ChatComponent): ChatComponent {
val displayName = BaseComponent()
prefix?.let { displayName += it }
displayName += name.apply {
@@ -42,11 +33,4 @@ data class Team(
suffix?.let { displayName += it }
return displayName
}
-
- fun canSee(other: Team?): Boolean {
- if (other == null) return false
- if (other.name == this.name && canSeeInvisibleTeam) return true
-
- return false
- }
}
diff --git a/src/main/java/de/bixilon/minosoft/data/scoreboard/team/TeamVisibility.kt b/src/main/java/de/bixilon/minosoft/data/scoreboard/team/TeamVisibility.kt
new file mode 100644
index 000000000..59f2acb56
--- /dev/null
+++ b/src/main/java/de/bixilon/minosoft/data/scoreboard/team/TeamVisibility.kt
@@ -0,0 +1,21 @@
+/*
+ * Minosoft
+ * Copyright (C) 2020-2023 Moritz Zwerger
+ *
+ * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with this program. If not, see .
+ *
+ * This software is not affiliated with Mojang AB, the original developer of Minecraft.
+ */
+
+package de.bixilon.minosoft.data.scoreboard.team
+
+import de.bixilon.minosoft.data.scoreboard.NameTagVisibilities
+
+data class TeamVisibility(
+ var invisibleTeam: Boolean = true,
+ var name: NameTagVisibilities = NameTagVisibilities.ALWAYS,
+)
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/scoreboard/ScoreboardScoreElement.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/scoreboard/ScoreboardScoreElement.kt
index 76770baec..d0e8fe8b3 100644
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/scoreboard/ScoreboardScoreElement.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/scoreboard/ScoreboardScoreElement.kt
@@ -1,6 +1,6 @@
/*
* Minosoft
- * Copyright (C) 2020-2022 Moritz Zwerger
+ * Copyright (C) 2020-2023 Moritz Zwerger
*
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*
@@ -54,7 +54,7 @@ class ScoreboardScoreElement(
override fun forceSilentApply() {
val entityName = ChatComponent.of(score.entity)
- nameElement.text = score.team?.decorateName(entityName) ?: entityName
+ nameElement.text = score.team?.formatting?.decorate(entityName) ?: entityName
scoreElement.text = TextComponent(score.value).color(ChatColors.RED)
diff --git a/src/main/java/de/bixilon/minosoft/modding/event/events/scoreboard/ScoreTeamChangeEvent.kt b/src/main/java/de/bixilon/minosoft/modding/event/events/scoreboard/ScoreTeamChangeEvent.kt
index fdff135ba..e15234ff1 100644
--- a/src/main/java/de/bixilon/minosoft/modding/event/events/scoreboard/ScoreTeamChangeEvent.kt
+++ b/src/main/java/de/bixilon/minosoft/modding/event/events/scoreboard/ScoreTeamChangeEvent.kt
@@ -1,6 +1,6 @@
/*
* Minosoft
- * Copyright (C) 2020-2022 Moritz Zwerger
+ * Copyright (C) 2020-2023 Moritz Zwerger
*
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*
@@ -15,7 +15,7 @@ package de.bixilon.minosoft.modding.event.events.scoreboard
import de.bixilon.minosoft.data.scoreboard.ScoreboardObjective
import de.bixilon.minosoft.data.scoreboard.ScoreboardScore
-import de.bixilon.minosoft.data.scoreboard.Team
+import de.bixilon.minosoft.data.scoreboard.team.Team
import de.bixilon.minosoft.modding.event.events.connection.play.PlayConnectionEvent
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
diff --git a/src/main/java/de/bixilon/minosoft/modding/event/events/scoreboard/ScoreboardTeamMemberEvent.kt b/src/main/java/de/bixilon/minosoft/modding/event/events/scoreboard/ScoreboardTeamMemberEvent.kt
index a123ce776..2dfd82428 100644
--- a/src/main/java/de/bixilon/minosoft/modding/event/events/scoreboard/ScoreboardTeamMemberEvent.kt
+++ b/src/main/java/de/bixilon/minosoft/modding/event/events/scoreboard/ScoreboardTeamMemberEvent.kt
@@ -1,6 +1,6 @@
/*
* Minosoft
- * Copyright (C) 2020-2022 Moritz Zwerger
+ * Copyright (C) 2020-2023 Moritz Zwerger
*
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*
@@ -13,7 +13,7 @@
package de.bixilon.minosoft.modding.event.events.scoreboard
-import de.bixilon.minosoft.data.scoreboard.Team
+import de.bixilon.minosoft.data.scoreboard.team.Team
import de.bixilon.minosoft.modding.event.events.connection.play.PlayConnectionEvent
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
diff --git a/src/main/java/de/bixilon/minosoft/modding/event/events/scoreboard/ScoreboardTeamRemoveEvent.kt b/src/main/java/de/bixilon/minosoft/modding/event/events/scoreboard/ScoreboardTeamRemoveEvent.kt
index f36cf2e7e..c02779905 100644
--- a/src/main/java/de/bixilon/minosoft/modding/event/events/scoreboard/ScoreboardTeamRemoveEvent.kt
+++ b/src/main/java/de/bixilon/minosoft/modding/event/events/scoreboard/ScoreboardTeamRemoveEvent.kt
@@ -1,6 +1,6 @@
/*
* Minosoft
- * Copyright (C) 2020-2022 Moritz Zwerger
+ * Copyright (C) 2020-2023 Moritz Zwerger
*
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*
@@ -13,7 +13,7 @@
package de.bixilon.minosoft.modding.event.events.scoreboard
-import de.bixilon.minosoft.data.scoreboard.Team
+import de.bixilon.minosoft.data.scoreboard.team.Team
import de.bixilon.minosoft.modding.event.events.connection.play.PlayConnectionEvent
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
diff --git a/src/main/java/de/bixilon/minosoft/modding/event/events/scoreboard/team/TeamCreateEvent.kt b/src/main/java/de/bixilon/minosoft/modding/event/events/scoreboard/team/TeamCreateEvent.kt
index 6f0f11b56..b206ab98e 100644
--- a/src/main/java/de/bixilon/minosoft/modding/event/events/scoreboard/team/TeamCreateEvent.kt
+++ b/src/main/java/de/bixilon/minosoft/modding/event/events/scoreboard/team/TeamCreateEvent.kt
@@ -1,6 +1,6 @@
/*
* Minosoft
- * Copyright (C) 2020-2022 Moritz Zwerger
+ * Copyright (C) 2020-2023 Moritz Zwerger
*
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*
@@ -13,7 +13,7 @@
package de.bixilon.minosoft.modding.event.events.scoreboard.team
-import de.bixilon.minosoft.data.scoreboard.Team
+import de.bixilon.minosoft.data.scoreboard.team.Team
import de.bixilon.minosoft.modding.event.events.connection.play.PlayConnectionEvent
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
diff --git a/src/main/java/de/bixilon/minosoft/modding/event/events/scoreboard/team/TeamMemberAddEvent.kt b/src/main/java/de/bixilon/minosoft/modding/event/events/scoreboard/team/TeamMemberAddEvent.kt
index 56fc0ffe2..57a69486c 100644
--- a/src/main/java/de/bixilon/minosoft/modding/event/events/scoreboard/team/TeamMemberAddEvent.kt
+++ b/src/main/java/de/bixilon/minosoft/modding/event/events/scoreboard/team/TeamMemberAddEvent.kt
@@ -1,6 +1,6 @@
/*
* Minosoft
- * Copyright (C) 2020-2022 Moritz Zwerger
+ * Copyright (C) 2020-2023 Moritz Zwerger
*
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*
@@ -13,7 +13,7 @@
package de.bixilon.minosoft.modding.event.events.scoreboard.team
-import de.bixilon.minosoft.data.scoreboard.Team
+import de.bixilon.minosoft.data.scoreboard.team.Team
import de.bixilon.minosoft.modding.event.events.scoreboard.ScoreboardTeamMemberEvent
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
diff --git a/src/main/java/de/bixilon/minosoft/modding/event/events/scoreboard/team/TeamMemberRemoveEvent.kt b/src/main/java/de/bixilon/minosoft/modding/event/events/scoreboard/team/TeamMemberRemoveEvent.kt
index 16f377f6e..b0d2e7d6c 100644
--- a/src/main/java/de/bixilon/minosoft/modding/event/events/scoreboard/team/TeamMemberRemoveEvent.kt
+++ b/src/main/java/de/bixilon/minosoft/modding/event/events/scoreboard/team/TeamMemberRemoveEvent.kt
@@ -1,6 +1,6 @@
/*
* Minosoft
- * Copyright (C) 2020-2022 Moritz Zwerger
+ * Copyright (C) 2020-2023 Moritz Zwerger
*
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*
@@ -13,7 +13,7 @@
package de.bixilon.minosoft.modding.event.events.scoreboard.team
-import de.bixilon.minosoft.data.scoreboard.Team
+import de.bixilon.minosoft.data.scoreboard.team.Team
import de.bixilon.minosoft.modding.event.events.scoreboard.ScoreboardTeamMemberEvent
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
diff --git a/src/main/java/de/bixilon/minosoft/modding/event/events/scoreboard/team/TeamUpdateEvent.kt b/src/main/java/de/bixilon/minosoft/modding/event/events/scoreboard/team/TeamUpdateEvent.kt
index 2713dd6fc..53eee7063 100644
--- a/src/main/java/de/bixilon/minosoft/modding/event/events/scoreboard/team/TeamUpdateEvent.kt
+++ b/src/main/java/de/bixilon/minosoft/modding/event/events/scoreboard/team/TeamUpdateEvent.kt
@@ -1,6 +1,6 @@
/*
* Minosoft
- * Copyright (C) 2020-2022 Moritz Zwerger
+ * Copyright (C) 2020-2023 Moritz Zwerger
*
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*
@@ -13,7 +13,7 @@
package de.bixilon.minosoft.modding.event.events.scoreboard.team
-import de.bixilon.minosoft.data.scoreboard.Team
+import de.bixilon.minosoft.data.scoreboard.team.Team
import de.bixilon.minosoft.modding.event.events.connection.play.PlayConnectionEvent
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/scoreboard/teams/CreateTeamS2CP.kt b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/scoreboard/teams/CreateTeamS2CP.kt
index 004e1316a..0c914604c 100644
--- a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/scoreboard/teams/CreateTeamS2CP.kt
+++ b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/scoreboard/teams/CreateTeamS2CP.kt
@@ -16,8 +16,10 @@ package de.bixilon.minosoft.protocol.packets.s2c.play.scoreboard.teams
import de.bixilon.kutil.bit.BitByte.isBitMask
import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedSet
import de.bixilon.minosoft.data.scoreboard.NameTagVisibilities
-import de.bixilon.minosoft.data.scoreboard.Team
import de.bixilon.minosoft.data.scoreboard.TeamCollisionRules
+import de.bixilon.minosoft.data.scoreboard.team.Team
+import de.bixilon.minosoft.data.scoreboard.team.TeamFormatting
+import de.bixilon.minosoft.data.scoreboard.team.TeamVisibility
import de.bixilon.minosoft.data.text.ChatComponent
import de.bixilon.minosoft.data.text.formatting.color.ChatColors
import de.bixilon.minosoft.data.text.formatting.color.RGBColor
@@ -106,16 +108,14 @@ class CreateTeamS2CP(
override fun handle(connection: PlayConnection) {
+ val visibility = TeamVisibility(canSeeInvisibleTeam, nameTagVisibility)
+ val formatting = TeamFormatting(displayName, prefix, suffix, color)
val team = Team(
name = name,
- displayName = displayName,
- prefix = prefix,
- suffix = suffix,
+ formatting = formatting,
friendlyFire = friendlyFire,
- canSeeInvisibleTeam = canSeeInvisibleTeam,
- collisionRule = collisionRule,
- nameTagVisibility = nameTagVisibility,
- color = color,
+ collisions = collisionRule,
+ visibility = visibility,
members = members.toSynchronizedSet(),
)
connection.scoreboard.teams[name] = team
diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/scoreboard/teams/UpdateTeamS2CP.kt b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/scoreboard/teams/UpdateTeamS2CP.kt
index a57751716..465127422 100644
--- a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/scoreboard/teams/UpdateTeamS2CP.kt
+++ b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/scoreboard/teams/UpdateTeamS2CP.kt
@@ -96,14 +96,14 @@ class UpdateTeamS2CP(
override fun handle(connection: PlayConnection) {
val team = connection.scoreboard.teams[name] ?: return
- team.displayName = displayName
- team.prefix = prefix
- team.suffix = suffix
+ val formatting = team.formatting
+ formatting.name = displayName; formatting.prefix = prefix; formatting.suffix = suffix; formatting.color = color
+
+ val visibility = team.visibility
+ visibility.invisibleTeam = canSeeInvisibleTeam; visibility.name = nameTagVisibility
+
team.friendlyFire = friendlyFire
- team.canSeeInvisibleTeam = canSeeInvisibleTeam
- team.collisionRule = collisionRule
- team.nameTagVisibility = nameTagVisibility
- team.color = color
+ team.collisions = collisionRule
connection.events.fire(TeamUpdateEvent(connection, team))
}