Improves package layout for nip64 chess
This commit is contained in:
@@ -169,8 +169,8 @@ import com.vitorpamplona.quartz.nip58Badges.BadgeProfilesEvent
|
|||||||
import com.vitorpamplona.quartz.nip59Giftwrap.WrappedEvent
|
import com.vitorpamplona.quartz.nip59Giftwrap.WrappedEvent
|
||||||
import com.vitorpamplona.quartz.nip59Giftwrap.seals.SealedRumorEvent
|
import com.vitorpamplona.quartz.nip59Giftwrap.seals.SealedRumorEvent
|
||||||
import com.vitorpamplona.quartz.nip59Giftwrap.wraps.GiftWrapEvent
|
import com.vitorpamplona.quartz.nip59Giftwrap.wraps.GiftWrapEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.accept.LiveChessGameAcceptEvent
|
import com.vitorpamplona.quartz.nip64Chess.challenge.accept.LiveChessGameAcceptEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.challenge.LiveChessGameChallengeEvent
|
import com.vitorpamplona.quartz.nip64Chess.challenge.offer.LiveChessGameChallengeEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.draw.LiveChessDrawOfferEvent
|
import com.vitorpamplona.quartz.nip64Chess.draw.LiveChessDrawOfferEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.end.LiveChessGameEndEvent
|
import com.vitorpamplona.quartz.nip64Chess.end.LiveChessGameEndEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.game.ChessGameEvent
|
import com.vitorpamplona.quartz.nip64Chess.game.ChessGameEvent
|
||||||
|
|||||||
@@ -25,9 +25,9 @@ import com.vitorpamplona.quartz.nip01Core.signers.NostrSigner
|
|||||||
import com.vitorpamplona.quartz.nip64Chess.Color
|
import com.vitorpamplona.quartz.nip64Chess.Color
|
||||||
import com.vitorpamplona.quartz.nip64Chess.GameResult
|
import com.vitorpamplona.quartz.nip64Chess.GameResult
|
||||||
import com.vitorpamplona.quartz.nip64Chess.GameTermination
|
import com.vitorpamplona.quartz.nip64Chess.GameTermination
|
||||||
import com.vitorpamplona.quartz.nip64Chess.accept.LiveChessGameAcceptEvent
|
|
||||||
import com.vitorpamplona.quartz.nip64Chess.baseEvent.tags.OpponentTag
|
import com.vitorpamplona.quartz.nip64Chess.baseEvent.tags.OpponentTag
|
||||||
import com.vitorpamplona.quartz.nip64Chess.challenge.LiveChessGameChallengeEvent
|
import com.vitorpamplona.quartz.nip64Chess.challenge.accept.LiveChessGameAcceptEvent
|
||||||
|
import com.vitorpamplona.quartz.nip64Chess.challenge.offer.LiveChessGameChallengeEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.end.LiveChessGameEndEvent
|
import com.vitorpamplona.quartz.nip64Chess.end.LiveChessGameEndEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.move.LiveChessMoveEvent
|
import com.vitorpamplona.quartz.nip64Chess.move.LiveChessMoveEvent
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -26,7 +26,7 @@ import com.vitorpamplona.amethyst.model.topNavFeeds.IFeedTopNavFilter
|
|||||||
import com.vitorpamplona.quartz.nip01Core.core.Event
|
import com.vitorpamplona.quartz.nip01Core.core.Event
|
||||||
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
||||||
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.NormalizedRelayUrl
|
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.NormalizedRelayUrl
|
||||||
import com.vitorpamplona.quartz.nip64Chess.challenge.LiveChessGameChallengeEvent
|
import com.vitorpamplona.quartz.nip64Chess.challenge.offer.LiveChessGameChallengeEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.end.LiveChessGameEndEvent
|
import com.vitorpamplona.quartz.nip64Chess.end.LiveChessGameEndEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.game.ChessGameEvent
|
import com.vitorpamplona.quartz.nip64Chess.game.ChessGameEvent
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
|
|||||||
@@ -217,7 +217,7 @@ import com.vitorpamplona.quartz.nip57Zaps.LnZapEvent
|
|||||||
import com.vitorpamplona.quartz.nip57Zaps.splits.hasZapSplitSetup
|
import com.vitorpamplona.quartz.nip57Zaps.splits.hasZapSplitSetup
|
||||||
import com.vitorpamplona.quartz.nip58Badges.BadgeAwardEvent
|
import com.vitorpamplona.quartz.nip58Badges.BadgeAwardEvent
|
||||||
import com.vitorpamplona.quartz.nip58Badges.BadgeDefinitionEvent
|
import com.vitorpamplona.quartz.nip58Badges.BadgeDefinitionEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.challenge.LiveChessGameChallengeEvent
|
import com.vitorpamplona.quartz.nip64Chess.challenge.offer.LiveChessGameChallengeEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.end.LiveChessGameEndEvent
|
import com.vitorpamplona.quartz.nip64Chess.end.LiveChessGameEndEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.game.ChessGameEvent
|
import com.vitorpamplona.quartz.nip64Chess.game.ChessGameEvent
|
||||||
import com.vitorpamplona.quartz.nip65RelayList.AdvertisedRelayListEvent
|
import com.vitorpamplona.quartz.nip65RelayList.AdvertisedRelayListEvent
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel
|
|||||||
import com.vitorpamplona.amethyst.ui.screen.loggedIn.chess.ChessViewModelFactory
|
import com.vitorpamplona.amethyst.ui.screen.loggedIn.chess.ChessViewModelFactory
|
||||||
import com.vitorpamplona.amethyst.ui.screen.loggedIn.chess.ChessViewModelNew
|
import com.vitorpamplona.amethyst.ui.screen.loggedIn.chess.ChessViewModelNew
|
||||||
import com.vitorpamplona.amethyst.ui.stringRes
|
import com.vitorpamplona.amethyst.ui.stringRes
|
||||||
import com.vitorpamplona.quartz.nip64Chess.challenge.LiveChessGameChallengeEvent
|
import com.vitorpamplona.quartz.nip64Chess.challenge.offer.LiveChessGameChallengeEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.end.LiveChessGameEndEvent
|
import com.vitorpamplona.quartz.nip64Chess.end.LiveChessGameEndEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.game.ChessGameEvent
|
import com.vitorpamplona.quartz.nip64Chess.game.ChessGameEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.Color as ChessColor
|
import com.vitorpamplona.quartz.nip64Chess.Color as ChessColor
|
||||||
|
|||||||
+1
-1
@@ -39,7 +39,7 @@ import com.vitorpamplona.quartz.nip18Reposts.RepostEvent
|
|||||||
import com.vitorpamplona.quartz.nip22Comments.CommentEvent
|
import com.vitorpamplona.quartz.nip22Comments.CommentEvent
|
||||||
import com.vitorpamplona.quartz.nip23LongContent.LongTextNoteEvent
|
import com.vitorpamplona.quartz.nip23LongContent.LongTextNoteEvent
|
||||||
import com.vitorpamplona.quartz.nip54Wiki.WikiNoteEvent
|
import com.vitorpamplona.quartz.nip54Wiki.WikiNoteEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.challenge.LiveChessGameChallengeEvent
|
import com.vitorpamplona.quartz.nip64Chess.challenge.offer.LiveChessGameChallengeEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.end.LiveChessGameEndEvent
|
import com.vitorpamplona.quartz.nip64Chess.end.LiveChessGameEndEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.game.ChessGameEvent
|
import com.vitorpamplona.quartz.nip64Chess.game.ChessGameEvent
|
||||||
import com.vitorpamplona.quartz.nip84Highlights.HighlightEvent
|
import com.vitorpamplona.quartz.nip84Highlights.HighlightEvent
|
||||||
|
|||||||
+1
-1
@@ -24,7 +24,7 @@ import com.vitorpamplona.amethyst.model.topNavFeeds.chess.ChessTopNavPerRelayFil
|
|||||||
import com.vitorpamplona.amethyst.service.relays.SincePerRelayMap
|
import com.vitorpamplona.amethyst.service.relays.SincePerRelayMap
|
||||||
import com.vitorpamplona.quartz.nip01Core.relay.client.pool.RelayBasedFilter
|
import com.vitorpamplona.quartz.nip01Core.relay.client.pool.RelayBasedFilter
|
||||||
import com.vitorpamplona.quartz.nip01Core.relay.filters.Filter
|
import com.vitorpamplona.quartz.nip01Core.relay.filters.Filter
|
||||||
import com.vitorpamplona.quartz.nip64Chess.challenge.LiveChessGameChallengeEvent
|
import com.vitorpamplona.quartz.nip64Chess.challenge.offer.LiveChessGameChallengeEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.end.LiveChessGameEndEvent
|
import com.vitorpamplona.quartz.nip64Chess.end.LiveChessGameEndEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.game.ChessGameEvent
|
import com.vitorpamplona.quartz.nip64Chess.game.ChessGameEvent
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -39,7 +39,7 @@ import com.vitorpamplona.quartz.nip23LongContent.LongTextNoteEvent
|
|||||||
import com.vitorpamplona.quartz.nip53LiveActivities.chat.LiveActivitiesChatMessageEvent
|
import com.vitorpamplona.quartz.nip53LiveActivities.chat.LiveActivitiesChatMessageEvent
|
||||||
import com.vitorpamplona.quartz.nip53LiveActivities.streaming.LiveActivitiesEvent
|
import com.vitorpamplona.quartz.nip53LiveActivities.streaming.LiveActivitiesEvent
|
||||||
import com.vitorpamplona.quartz.nip54Wiki.WikiNoteEvent
|
import com.vitorpamplona.quartz.nip54Wiki.WikiNoteEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.challenge.LiveChessGameChallengeEvent
|
import com.vitorpamplona.quartz.nip64Chess.challenge.offer.LiveChessGameChallengeEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.end.LiveChessGameEndEvent
|
import com.vitorpamplona.quartz.nip64Chess.end.LiveChessGameEndEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.game.ChessGameEvent
|
import com.vitorpamplona.quartz.nip64Chess.game.ChessGameEvent
|
||||||
import com.vitorpamplona.quartz.nip84Highlights.HighlightEvent
|
import com.vitorpamplona.quartz.nip84Highlights.HighlightEvent
|
||||||
|
|||||||
+2
-2
@@ -221,8 +221,8 @@ import com.vitorpamplona.quartz.nip58Badges.BadgeProfilesEvent
|
|||||||
import com.vitorpamplona.quartz.nip59Giftwrap.seals.SealedRumorEvent
|
import com.vitorpamplona.quartz.nip59Giftwrap.seals.SealedRumorEvent
|
||||||
import com.vitorpamplona.quartz.nip59Giftwrap.wraps.GiftWrapEvent
|
import com.vitorpamplona.quartz.nip59Giftwrap.wraps.GiftWrapEvent
|
||||||
import com.vitorpamplona.quartz.nip62RequestToVanish.RequestToVanishEvent
|
import com.vitorpamplona.quartz.nip62RequestToVanish.RequestToVanishEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.accept.LiveChessGameAcceptEvent
|
import com.vitorpamplona.quartz.nip64Chess.challenge.accept.LiveChessGameAcceptEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.challenge.LiveChessGameChallengeEvent
|
import com.vitorpamplona.quartz.nip64Chess.challenge.offer.LiveChessGameChallengeEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.draw.LiveChessDrawOfferEvent
|
import com.vitorpamplona.quartz.nip64Chess.draw.LiveChessDrawOfferEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.end.LiveChessGameEndEvent
|
import com.vitorpamplona.quartz.nip64Chess.end.LiveChessGameEndEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.game.ChessGameEvent
|
import com.vitorpamplona.quartz.nip64Chess.game.ChessGameEvent
|
||||||
|
|||||||
+2
-2
@@ -30,8 +30,8 @@ import com.vitorpamplona.quartz.nip01Core.relay.client.pool.groupByRelay
|
|||||||
import com.vitorpamplona.quartz.nip01Core.relay.client.reqs.IRequestListener
|
import com.vitorpamplona.quartz.nip01Core.relay.client.reqs.IRequestListener
|
||||||
import com.vitorpamplona.quartz.nip01Core.relay.filters.Filter
|
import com.vitorpamplona.quartz.nip01Core.relay.filters.Filter
|
||||||
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.NormalizedRelayUrl
|
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.NormalizedRelayUrl
|
||||||
import com.vitorpamplona.quartz.nip64Chess.accept.LiveChessGameAcceptEvent
|
import com.vitorpamplona.quartz.nip64Chess.challenge.accept.LiveChessGameAcceptEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.challenge.LiveChessGameChallengeEvent
|
import com.vitorpamplona.quartz.nip64Chess.challenge.offer.LiveChessGameChallengeEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.draw.LiveChessDrawOfferEvent
|
import com.vitorpamplona.quartz.nip64Chess.draw.LiveChessDrawOfferEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.end.LiveChessGameEndEvent
|
import com.vitorpamplona.quartz.nip64Chess.end.LiveChessGameEndEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.move.LiveChessMoveEvent
|
import com.vitorpamplona.quartz.nip64Chess.move.LiveChessMoveEvent
|
||||||
|
|||||||
+2
-2
@@ -18,7 +18,7 @@
|
|||||||
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
package com.vitorpamplona.quartz.nip64Chess.accept
|
package com.vitorpamplona.quartz.nip64Chess.challenge.accept
|
||||||
|
|
||||||
import androidx.compose.runtime.Immutable
|
import androidx.compose.runtime.Immutable
|
||||||
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
||||||
@@ -28,7 +28,7 @@ import com.vitorpamplona.quartz.nip01Core.signers.eventTemplate
|
|||||||
import com.vitorpamplona.quartz.nip01Core.tags.dTag.dTag
|
import com.vitorpamplona.quartz.nip01Core.tags.dTag.dTag
|
||||||
import com.vitorpamplona.quartz.nip31Alts.alt
|
import com.vitorpamplona.quartz.nip31Alts.alt
|
||||||
import com.vitorpamplona.quartz.nip64Chess.baseEvent.BaseChessEvent
|
import com.vitorpamplona.quartz.nip64Chess.baseEvent.BaseChessEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.challenge.LiveChessGameChallengeEvent
|
import com.vitorpamplona.quartz.nip64Chess.challenge.offer.LiveChessGameChallengeEvent
|
||||||
import com.vitorpamplona.quartz.utils.TimeUtils
|
import com.vitorpamplona.quartz.utils.TimeUtils
|
||||||
|
|
||||||
/**
|
/**
|
||||||
+4
-4
@@ -18,13 +18,13 @@
|
|||||||
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
package com.vitorpamplona.quartz.nip64Chess.accept
|
package com.vitorpamplona.quartz.nip64Chess.challenge.accept
|
||||||
|
|
||||||
import com.vitorpamplona.quartz.nip01Core.core.TagArrayBuilder
|
import com.vitorpamplona.quartz.nip01Core.core.TagArrayBuilder
|
||||||
import com.vitorpamplona.quartz.nip01Core.hints.EventHintBundle
|
import com.vitorpamplona.quartz.nip01Core.hints.EventHintBundle
|
||||||
import com.vitorpamplona.quartz.nip64Chess.accept.tags.ChallengeEventTag
|
import com.vitorpamplona.quartz.nip64Chess.challenge.accept.tags.ChallengeEventTag
|
||||||
import com.vitorpamplona.quartz.nip64Chess.accept.tags.toOpponentTag
|
import com.vitorpamplona.quartz.nip64Chess.challenge.accept.tags.toOpponentTag
|
||||||
import com.vitorpamplona.quartz.nip64Chess.challenge.LiveChessGameChallengeEvent
|
import com.vitorpamplona.quartz.nip64Chess.challenge.offer.LiveChessGameChallengeEvent
|
||||||
|
|
||||||
fun TagArrayBuilder<LiveChessGameAcceptEvent>.challenge(challengeHint: EventHintBundle<LiveChessGameChallengeEvent>) = addUnique(ChallengeEventTag.assemble(challengeHint))
|
fun TagArrayBuilder<LiveChessGameAcceptEvent>.challenge(challengeHint: EventHintBundle<LiveChessGameChallengeEvent>) = addUnique(ChallengeEventTag.assemble(challengeHint))
|
||||||
|
|
||||||
+2
-2
@@ -18,9 +18,9 @@
|
|||||||
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
package com.vitorpamplona.quartz.nip64Chess.accept
|
package com.vitorpamplona.quartz.nip64Chess.challenge.accept
|
||||||
|
|
||||||
import com.vitorpamplona.quartz.nip01Core.core.TagArray
|
import com.vitorpamplona.quartz.nip01Core.core.TagArray
|
||||||
import com.vitorpamplona.quartz.nip64Chess.accept.tags.ChallengeEventTag
|
import com.vitorpamplona.quartz.nip64Chess.challenge.accept.tags.ChallengeEventTag
|
||||||
|
|
||||||
fun TagArray.challengeEventId() = firstNotNullOfOrNull(ChallengeEventTag::parse)
|
fun TagArray.challengeEventId() = firstNotNullOfOrNull(ChallengeEventTag::parse)
|
||||||
+2
-2
@@ -18,7 +18,7 @@
|
|||||||
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
package com.vitorpamplona.quartz.nip64Chess.accept.tags
|
package com.vitorpamplona.quartz.nip64Chess.challenge.accept.tags
|
||||||
|
|
||||||
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
||||||
import com.vitorpamplona.quartz.nip01Core.core.has
|
import com.vitorpamplona.quartz.nip01Core.core.has
|
||||||
@@ -29,7 +29,7 @@ import com.vitorpamplona.quartz.nip01Core.relay.normalizer.RelayUrlNormalizer
|
|||||||
import com.vitorpamplona.quartz.nip01Core.tags.events.GenericETag
|
import com.vitorpamplona.quartz.nip01Core.tags.events.GenericETag
|
||||||
import com.vitorpamplona.quartz.nip19Bech32.entities.NEvent
|
import com.vitorpamplona.quartz.nip19Bech32.entities.NEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.baseEvent.tags.OpponentTag
|
import com.vitorpamplona.quartz.nip64Chess.baseEvent.tags.OpponentTag
|
||||||
import com.vitorpamplona.quartz.nip64Chess.challenge.LiveChessGameChallengeEvent
|
import com.vitorpamplona.quartz.nip64Chess.challenge.offer.LiveChessGameChallengeEvent
|
||||||
import com.vitorpamplona.quartz.utils.arrayOfNotNull
|
import com.vitorpamplona.quartz.utils.arrayOfNotNull
|
||||||
import com.vitorpamplona.quartz.utils.ensure
|
import com.vitorpamplona.quartz.utils.ensure
|
||||||
|
|
||||||
+1
-1
@@ -18,7 +18,7 @@
|
|||||||
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
package com.vitorpamplona.quartz.nip64Chess.challenge
|
package com.vitorpamplona.quartz.nip64Chess.challenge.offer
|
||||||
|
|
||||||
import androidx.compose.runtime.Immutable
|
import androidx.compose.runtime.Immutable
|
||||||
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
||||||
+4
-4
@@ -18,13 +18,13 @@
|
|||||||
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
package com.vitorpamplona.quartz.nip64Chess.challenge
|
package com.vitorpamplona.quartz.nip64Chess.challenge.offer
|
||||||
|
|
||||||
import com.vitorpamplona.quartz.nip01Core.core.TagArrayBuilder
|
import com.vitorpamplona.quartz.nip01Core.core.TagArrayBuilder
|
||||||
import com.vitorpamplona.quartz.nip64Chess.Color
|
import com.vitorpamplona.quartz.nip64Chess.Color
|
||||||
import com.vitorpamplona.quartz.nip64Chess.challenge.tags.PlayerColorTag
|
import com.vitorpamplona.quartz.nip64Chess.challenge.offer.tags.PlayerColorTag
|
||||||
import com.vitorpamplona.quartz.nip64Chess.challenge.tags.TimeControlTag
|
import com.vitorpamplona.quartz.nip64Chess.challenge.offer.tags.TimeControlTag
|
||||||
|
|
||||||
fun TagArrayBuilder<LiveChessGameChallengeEvent>.playerColor(color: Color) = addUnique(PlayerColorTag.assemble(color))
|
fun TagArrayBuilder<LiveChessGameChallengeEvent>.playerColor(color: Color) = addUnique(PlayerColorTag.assemble(color))
|
||||||
|
|
||||||
fun TagArrayBuilder<LiveChessGameChallengeEvent>.timeControl(timeControl: String) = addUnique(TimeControlTag.assemble(timeControl))
|
fun TagArrayBuilder<LiveChessGameChallengeEvent>.timeControl(timeControl: String) = addUnique(TimeControlTag.Companion.assemble(timeControl))
|
||||||
+4
-4
@@ -18,12 +18,12 @@
|
|||||||
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
package com.vitorpamplona.quartz.nip64Chess.challenge
|
package com.vitorpamplona.quartz.nip64Chess.challenge.offer
|
||||||
|
|
||||||
import com.vitorpamplona.quartz.nip01Core.core.TagArray
|
import com.vitorpamplona.quartz.nip01Core.core.TagArray
|
||||||
import com.vitorpamplona.quartz.nip64Chess.challenge.tags.PlayerColorTag
|
import com.vitorpamplona.quartz.nip64Chess.challenge.offer.tags.PlayerColorTag
|
||||||
import com.vitorpamplona.quartz.nip64Chess.challenge.tags.TimeControlTag
|
import com.vitorpamplona.quartz.nip64Chess.challenge.offer.tags.TimeControlTag
|
||||||
|
|
||||||
fun TagArray.playerColor() = firstNotNullOfOrNull(PlayerColorTag::parse)
|
fun TagArray.playerColor() = firstNotNullOfOrNull(PlayerColorTag::parse)
|
||||||
|
|
||||||
fun TagArray.timeControl() = firstNotNullOfOrNull(TimeControlTag::parse)
|
fun TagArray.timeControl() = firstNotNullOfOrNull(TimeControlTag.Companion::parse)
|
||||||
+1
-1
@@ -18,7 +18,7 @@
|
|||||||
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
package com.vitorpamplona.quartz.nip64Chess.challenge.tags
|
package com.vitorpamplona.quartz.nip64Chess.challenge.offer.tags
|
||||||
|
|
||||||
import com.vitorpamplona.quartz.nip01Core.core.has
|
import com.vitorpamplona.quartz.nip01Core.core.has
|
||||||
import com.vitorpamplona.quartz.nip64Chess.Color
|
import com.vitorpamplona.quartz.nip64Chess.Color
|
||||||
+1
-1
@@ -18,7 +18,7 @@
|
|||||||
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
package com.vitorpamplona.quartz.nip64Chess.challenge.tags
|
package com.vitorpamplona.quartz.nip64Chess.challenge.offer.tags
|
||||||
|
|
||||||
import com.vitorpamplona.quartz.nip01Core.core.has
|
import com.vitorpamplona.quartz.nip01Core.core.has
|
||||||
import com.vitorpamplona.quartz.utils.ensure
|
import com.vitorpamplona.quartz.utils.ensure
|
||||||
+8
-14
@@ -23,6 +23,7 @@ package com.vitorpamplona.quartz.nip64Chess.jester
|
|||||||
import androidx.compose.runtime.Immutable
|
import androidx.compose.runtime.Immutable
|
||||||
import com.vitorpamplona.quartz.nip01Core.core.Event
|
import com.vitorpamplona.quartz.nip01Core.core.Event
|
||||||
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
||||||
|
import com.vitorpamplona.quartz.nip01Core.core.JsonMapper
|
||||||
import com.vitorpamplona.quartz.nip01Core.core.TagArrayBuilder
|
import com.vitorpamplona.quartz.nip01Core.core.TagArrayBuilder
|
||||||
import com.vitorpamplona.quartz.nip01Core.signers.EventTemplate
|
import com.vitorpamplona.quartz.nip01Core.signers.EventTemplate
|
||||||
import com.vitorpamplona.quartz.nip01Core.signers.eventTemplate
|
import com.vitorpamplona.quartz.nip01Core.signers.eventTemplate
|
||||||
@@ -30,13 +31,6 @@ import com.vitorpamplona.quartz.nip64Chess.Color
|
|||||||
import com.vitorpamplona.quartz.nip64Chess.GameResult
|
import com.vitorpamplona.quartz.nip64Chess.GameResult
|
||||||
import com.vitorpamplona.quartz.nip64Chess.GameTermination
|
import com.vitorpamplona.quartz.nip64Chess.GameTermination
|
||||||
import com.vitorpamplona.quartz.utils.TimeUtils
|
import com.vitorpamplona.quartz.utils.TimeUtils
|
||||||
import kotlinx.serialization.json.Json
|
|
||||||
|
|
||||||
private val json =
|
|
||||||
Json {
|
|
||||||
ignoreUnknownKeys = true
|
|
||||||
encodeDefaults = false
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Jester Chess Event (Kind 30)
|
* Jester Chess Event (Kind 30)
|
||||||
@@ -58,7 +52,7 @@ class JesterEvent(
|
|||||||
) : Event(id, pubKey, createdAt, JesterProtocol.KIND, tags, content, sig) {
|
) : Event(id, pubKey, createdAt, JesterProtocol.KIND, tags, content, sig) {
|
||||||
private val parsedContent: JesterContent? by lazy {
|
private val parsedContent: JesterContent? by lazy {
|
||||||
try {
|
try {
|
||||||
json.decodeFromString<JesterContent>(content)
|
JsonMapper.fromJson<JesterContent>(content)
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
null
|
null
|
||||||
}
|
}
|
||||||
@@ -133,7 +127,7 @@ class JesterEvent(
|
|||||||
nonce = nonce,
|
nonce = nonce,
|
||||||
playerColor = if (playerColor == Color.WHITE) "white" else "black",
|
playerColor = if (playerColor == Color.WHITE) "white" else "black",
|
||||||
)
|
)
|
||||||
return eventTemplate(KIND, json.encodeToString(content), createdAt) {
|
return eventTemplate(KIND, JsonMapper.toJson(content), createdAt) {
|
||||||
// Reference the standard start position for game discovery
|
// Reference the standard start position for game discovery
|
||||||
add(arrayOf("e", JesterProtocol.START_POSITION_HASH))
|
add(arrayOf("e", JesterProtocol.START_POSITION_HASH))
|
||||||
initializer()
|
initializer()
|
||||||
@@ -163,7 +157,7 @@ class JesterEvent(
|
|||||||
nonce = nonce,
|
nonce = nonce,
|
||||||
playerColor = if (playerColor == Color.WHITE) "white" else "black",
|
playerColor = if (playerColor == Color.WHITE) "white" else "black",
|
||||||
)
|
)
|
||||||
return eventTemplate(KIND, json.encodeToString(content), createdAt) {
|
return eventTemplate(KIND, JsonMapper.toJson(content), createdAt) {
|
||||||
// Reference the standard start position
|
// Reference the standard start position
|
||||||
add(arrayOf("e", JesterProtocol.START_POSITION_HASH))
|
add(arrayOf("e", JesterProtocol.START_POSITION_HASH))
|
||||||
// Tag the opponent for notifications (only if valid pubkey)
|
// Tag the opponent for notifications (only if valid pubkey)
|
||||||
@@ -202,7 +196,7 @@ class JesterEvent(
|
|||||||
move = move,
|
move = move,
|
||||||
history = history,
|
history = history,
|
||||||
)
|
)
|
||||||
return eventTemplate(KIND, json.encodeToString(content), createdAt) {
|
return eventTemplate(KIND, JsonMapper.toJson(content), createdAt) {
|
||||||
// e-tags: [startId, headId]
|
// e-tags: [startId, headId]
|
||||||
add(arrayOf("e", startEventId))
|
add(arrayOf("e", startEventId))
|
||||||
add(arrayOf("e", headEventId))
|
add(arrayOf("e", headEventId))
|
||||||
@@ -241,7 +235,7 @@ class JesterEvent(
|
|||||||
result = result.notation,
|
result = result.notation,
|
||||||
termination = termination.name.lowercase(),
|
termination = termination.name.lowercase(),
|
||||||
)
|
)
|
||||||
return eventTemplate(KIND, json.encodeToString(content), createdAt) {
|
return eventTemplate(KIND, JsonMapper.toJson(content), createdAt) {
|
||||||
add(arrayOf("e", startEventId))
|
add(arrayOf("e", startEventId))
|
||||||
add(arrayOf("e", headEventId))
|
add(arrayOf("e", headEventId))
|
||||||
// Tag opponent for notifications (only if valid pubkey)
|
// Tag opponent for notifications (only if valid pubkey)
|
||||||
@@ -270,7 +264,7 @@ fun Event.isJesterEvent(): Boolean = kind == JesterProtocol.KIND
|
|||||||
fun Event.isJesterStartEvent(): Boolean {
|
fun Event.isJesterStartEvent(): Boolean {
|
||||||
if (kind != JesterProtocol.KIND) return false
|
if (kind != JesterProtocol.KIND) return false
|
||||||
return try {
|
return try {
|
||||||
val content = json.decodeFromString<JesterContent>(this.content)
|
val content = JsonMapper.fromJson<JesterContent>(this.content)
|
||||||
content.kind == JesterProtocol.CONTENT_KIND_START && content.history.isEmpty()
|
content.kind == JesterProtocol.CONTENT_KIND_START && content.history.isEmpty()
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
false
|
false
|
||||||
@@ -283,7 +277,7 @@ fun Event.isJesterStartEvent(): Boolean {
|
|||||||
fun Event.isJesterMoveEvent(): Boolean {
|
fun Event.isJesterMoveEvent(): Boolean {
|
||||||
if (kind != JesterProtocol.KIND) return false
|
if (kind != JesterProtocol.KIND) return false
|
||||||
return try {
|
return try {
|
||||||
val content = json.decodeFromString<JesterContent>(this.content)
|
val content = JsonMapper.fromJson<JesterContent>(this.content)
|
||||||
content.kind == JesterProtocol.CONTENT_KIND_MOVE &&
|
content.kind == JesterProtocol.CONTENT_KIND_MOVE &&
|
||||||
content.history.isNotEmpty() &&
|
content.history.isNotEmpty() &&
|
||||||
tags.count { it.size >= 2 && it[0] == "e" } == 2
|
tags.count { it.size >= 2 && it[0] == "e" } == 2
|
||||||
|
|||||||
@@ -114,8 +114,8 @@ import com.vitorpamplona.quartz.nip58Badges.BadgeProfilesEvent
|
|||||||
import com.vitorpamplona.quartz.nip59Giftwrap.seals.SealedRumorEvent
|
import com.vitorpamplona.quartz.nip59Giftwrap.seals.SealedRumorEvent
|
||||||
import com.vitorpamplona.quartz.nip59Giftwrap.wraps.GiftWrapEvent
|
import com.vitorpamplona.quartz.nip59Giftwrap.wraps.GiftWrapEvent
|
||||||
import com.vitorpamplona.quartz.nip62RequestToVanish.RequestToVanishEvent
|
import com.vitorpamplona.quartz.nip62RequestToVanish.RequestToVanishEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.accept.LiveChessGameAcceptEvent
|
import com.vitorpamplona.quartz.nip64Chess.challenge.accept.LiveChessGameAcceptEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.challenge.LiveChessGameChallengeEvent
|
import com.vitorpamplona.quartz.nip64Chess.challenge.offer.LiveChessGameChallengeEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.draw.LiveChessDrawOfferEvent
|
import com.vitorpamplona.quartz.nip64Chess.draw.LiveChessDrawOfferEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.end.LiveChessGameEndEvent
|
import com.vitorpamplona.quartz.nip64Chess.end.LiveChessGameEndEvent
|
||||||
import com.vitorpamplona.quartz.nip64Chess.game.ChessGameEvent
|
import com.vitorpamplona.quartz.nip64Chess.game.ChessGameEvent
|
||||||
|
|||||||
Reference in New Issue
Block a user