fix (rooms): Also add client to room.
This commit is contained in:
@@ -24,7 +24,7 @@ from .settings import RoomSettings
|
|||||||
from .settingui import RoomSettingUI
|
from .settingui import RoomSettingUI
|
||||||
from .room import Room
|
from .room import Room
|
||||||
from .roomui import RoomUI
|
from .roomui import RoomUI
|
||||||
from .lib import parse_members, owner_overwrite, member_overwrite
|
from .lib import parse_members, owner_overwrite, member_overwrite, bot_overwrite
|
||||||
|
|
||||||
_p, _np = babel._p, babel._np
|
_p, _np = babel._p, babel._np
|
||||||
|
|
||||||
@@ -223,7 +223,8 @@ class RoomCog(LionCog):
|
|||||||
# Build permission overwrites for owner and members, take into account visible setting
|
# Build permission overwrites for owner and members, take into account visible setting
|
||||||
overwrites = {
|
overwrites = {
|
||||||
owner: owner_overwrite,
|
owner: owner_overwrite,
|
||||||
guild.default_role: everyone_overwrite
|
guild.default_role: everyone_overwrite,
|
||||||
|
guild.me: bot_overwrite,
|
||||||
}
|
}
|
||||||
for member in members:
|
for member in members:
|
||||||
overwrites[member] = member_overwrite
|
overwrites[member] = member_overwrite
|
||||||
@@ -484,13 +485,37 @@ class RoomCog(LionCog):
|
|||||||
await ctx.alion.data.update(coins=CoreData.Member.coins - required)
|
await ctx.alion.data.update(coins=CoreData.Member.coins - required)
|
||||||
|
|
||||||
# Create room with given starting balance and other parameters
|
# Create room with given starting balance and other parameters
|
||||||
room = await self.create_private_room(
|
try:
|
||||||
ctx.guild,
|
room = await self.create_private_room(
|
||||||
ctx.author,
|
ctx.guild,
|
||||||
required - rent,
|
ctx.author,
|
||||||
name or ctx.author.display_name,
|
required - rent,
|
||||||
members=provided
|
name or ctx.author.display_name,
|
||||||
)
|
members=provided
|
||||||
|
)
|
||||||
|
except discord.Forbidden:
|
||||||
|
await ctx.reply(
|
||||||
|
embed=error_embed(
|
||||||
|
t(_p(
|
||||||
|
'cmd:room_rent|error:my_permissions',
|
||||||
|
"Could not create your private room! You were not charged.\n"
|
||||||
|
"I have insufficient permissions to create a private room channel."
|
||||||
|
)),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
await ctx.alion.data.update(coins=CoreData.Member.coins + required)
|
||||||
|
except discord.HTTPException as e:
|
||||||
|
await ctx.reply(
|
||||||
|
embed=error_embed(
|
||||||
|
t(_p(
|
||||||
|
'cmd:room_rent|error:unknown',
|
||||||
|
"Could not create your private room! You were not charged.\n"
|
||||||
|
"An unknown error occurred while creating your private room.\n"
|
||||||
|
"`{error}`"
|
||||||
|
)).format(error=e.text),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
await ctx.alion.data.update(coins=CoreData.Member.coins + required)
|
||||||
|
|
||||||
# Ack with confirmation message pointing to the room
|
# Ack with confirmation message pointing to the room
|
||||||
msg = t(_p(
|
msg = t(_p(
|
||||||
|
|||||||
@@ -13,29 +13,32 @@ def parse_members(memberstr: str) -> list[int]:
|
|||||||
return memberids
|
return memberids
|
||||||
|
|
||||||
|
|
||||||
owner_overwrite = discord.PermissionOverwrite(
|
member_overwrite = discord.PermissionOverwrite(
|
||||||
view_channel=True,
|
view_channel=True,
|
||||||
manage_channels=True,
|
send_messages=True,
|
||||||
manage_webhooks=True,
|
read_message_history=True,
|
||||||
attach_files=True,
|
attach_files=True,
|
||||||
embed_links=True,
|
embed_links=True,
|
||||||
add_reactions=True,
|
add_reactions=True,
|
||||||
manage_messages=True,
|
|
||||||
create_public_threads=True,
|
|
||||||
create_private_threads=True,
|
|
||||||
manage_threads=True,
|
|
||||||
connect=True,
|
connect=True,
|
||||||
speak=True,
|
speak=True,
|
||||||
stream=True,
|
stream=True,
|
||||||
use_application_commands=True,
|
use_application_commands=True,
|
||||||
use_embedded_activities=True,
|
use_embedded_activities=True,
|
||||||
|
external_emojis=True,
|
||||||
|
)
|
||||||
|
owner_overwrite = discord.PermissionOverwrite.from_pair(*member_overwrite.pair())
|
||||||
|
owner_overwrite.update(
|
||||||
|
manage_channels=True,
|
||||||
|
manage_webhooks=True,
|
||||||
|
manage_messages=True,
|
||||||
|
create_public_threads=True,
|
||||||
|
create_private_threads=True,
|
||||||
|
manage_threads=True,
|
||||||
move_members=True,
|
move_members=True,
|
||||||
external_emojis=True
|
|
||||||
)
|
)
|
||||||
member_overwrite = discord.PermissionOverwrite(
|
bot_overwrite = discord.PermissionOverwrite.from_pair(*owner_overwrite.pair())
|
||||||
view_channel=True,
|
bot_overwrite.update(
|
||||||
send_messages=True,
|
**dict(owner_overwrite),
|
||||||
connect=True,
|
manage_permissions=True,
|
||||||
speak=True,
|
|
||||||
stream=True
|
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user