Repository navigation
Polyamory notices, bot quips, slash commands, and new fun commands - #6
Merged
Merged
Conversation
When a proposal is accepted (or a forcemarry lands), the marriage forms immediately as before, and every existing partner of either spouse gets a partner notice with Accept (acknowledge only) and Divorce buttons. !matr accept acknowledges a notice text-side; !matr divorce @partner or the Divorce button ends that partner's own marriage via the normal divorce path. Notices never block the new marriage and are cleared when the underlying marriage ends. Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Contributor
Author
|
I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".
|
- Commands aimed at the bot append a rotating quip as Discord subtext (-# line); proposals at the bot are declined with a quip instead of creating a proposal. - Every !matr command is now a discord.py hybrid, so /matr mirrors the prefix surface: core commands directly under /matr, fun/admin/meta in nested subgroups (Discord caps groups at 25 children), synced in setup_hook. guild_only and manage_guild propagate to the slash side. - New fun commands: flirt (pickup lines), date (date ideas), anniversary (marriage duration via store.partnership_since). - Tests for quips, slash tree layout/permissions, and the new commands; README updated. Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Multiple simultaneous partners were already supported (
MATRIMONY_MAX_PARTNERS, default unlimited). This PR adds the missing piece for polyamorous marriages: when a user takes a new partner, every existing partner of both spouses is notified with an immediate accept-or-divorce choice — plus three community requests: bot-directed quips, slash command support, and a few new fun commands.Polyamory notices
!matr marry @user→ proposal as before. If either side already has partners, the proposal message now says those partners will be notified.!matr accept): acknowledgement only — the notice is cleared, nothing else changes.!matr divorce @partneror the button): ends that partner's own marriage to the spouse via the normal divorce path (remove_partners— sodivorce,abandon,forcedivorceall behave consistently).store.py: newnoticestable (user_id= partner being told,spouse_id= their partner who remarried,other_id= the new spouse) +Noticedataclass and CRUD.remove_partnersclears notices that presume the dissolved marriage, sodivorce/abandon/forcedivorcecan't leave stale ones.stats()gainspartner_notices.cogs/matr.py:_notify_new_partnersruns after a marriage is enacted (proposals andforcemarry) and posts one notice per existing partner with aPartnerNoticeView(buttons restricted to that partner, 24h window).matr_acceptpicks from proposals and notices (_pick_answerable);matr_declinestays proposal-only but points notice-holders atdivorce.Bot-directed quips
-#line) under the normal reply — one quip set per command (_BOT_QUIPS,itertools.cyclerotation).marry/adopt/makeparent) are declined outright with a quip — e.g. "sorry, taken by discord.py" — and no proposal is created.Slash commands
!matrcommand is now a discord.py hybrid command, so/matrmirrors the prefix surface exactly./matrholds the core family commands while the rest nest one level:/matr fun hug,/matr admin forcemarry,/matr meta stats. The group'sapp_commandis detached during decoration and the tree is assembled in the Registration section.commands.guild_only/commands.has_permissionswere mirrored withapp_commands.guild_only()/app_commands.default_permissions()so the slash side inherits the same restrictions.setup_hookcallstree.sync()to publish the commands at startup.New fun commands
flirt @user(aliasrizz) — a terrible pickup line + GIF.date @user(aliasdateidea) — a terrible date idea + GIF.anniversary [@partner](aliasanniv) — time married (viastore.partnership_since); defaults to your only partner.No economy, currency, or inventory — just relational jokes.
Tests
27 new tests (98 total): notice lifecycle/fan-out/divorce paths; quip append/no-quip/rotation and bot-declines;
flirt/date/anniversarycallbacks; slash tree layout, subgroup contents, lowercase-name rule,guild_only/default_permissionspropagation, and prefix-side parity.pytestandruff checkare clean.Link to Devin session: https://app.devin.ai/sessions/44ba7d7c447945aa98b7996e284e472e
Open in Devin Desktop: https://app.devin.ai/desktop/session/44ba7d7c447945aa98b7996e284e472e?variant=devin
Requested by: @CommunityPoke