Added reset member after rejoin setting to backend [untested] #460
This commit is contained in:
parent
266dacb301
commit
f1f5954dfc
@ -32,6 +32,7 @@ class ServerConfig(TableABC, ConfigurationModelABC):
|
|||||||
default_role_id: Optional[int],
|
default_role_id: Optional[int],
|
||||||
short_role_name_only_set_highest_role: bool,
|
short_role_name_only_set_highest_role: bool,
|
||||||
game_offer_notification_chat_id: int,
|
game_offer_notification_chat_id: int,
|
||||||
|
reset_member_after_rejoin: bool,
|
||||||
feature_flags: dict[FeatureFlagsEnum],
|
feature_flags: dict[FeatureFlagsEnum],
|
||||||
server: Server,
|
server: Server,
|
||||||
afk_channel_ids: List[int],
|
afk_channel_ids: List[int],
|
||||||
@ -58,6 +59,7 @@ class ServerConfig(TableABC, ConfigurationModelABC):
|
|||||||
self._default_role_id = default_role_id
|
self._default_role_id = default_role_id
|
||||||
self._short_role_name_only_set_highest_role = short_role_name_only_set_highest_role
|
self._short_role_name_only_set_highest_role = short_role_name_only_set_highest_role
|
||||||
self._game_offer_notification_chat_id = game_offer_notification_chat_id
|
self._game_offer_notification_chat_id = game_offer_notification_chat_id
|
||||||
|
self._reset_member_after_rejoin = reset_member_after_rejoin
|
||||||
|
|
||||||
self._feature_flags = feature_flags
|
self._feature_flags = feature_flags
|
||||||
self._server = server
|
self._server = server
|
||||||
@ -88,6 +90,7 @@ class ServerConfig(TableABC, ConfigurationModelABC):
|
|||||||
None,
|
None,
|
||||||
False,
|
False,
|
||||||
guild.system_channel.id,
|
guild.system_channel.id,
|
||||||
|
False,
|
||||||
{},
|
{},
|
||||||
server,
|
server,
|
||||||
List(int),
|
List(int),
|
||||||
@ -234,6 +237,14 @@ class ServerConfig(TableABC, ConfigurationModelABC):
|
|||||||
def game_offer_notification_chat_id(self, value: int):
|
def game_offer_notification_chat_id(self, value: int):
|
||||||
self._game_offer_notification_chat_id = value
|
self._game_offer_notification_chat_id = value
|
||||||
|
|
||||||
|
@property
|
||||||
|
def reset_member_after_rejoin(self) -> bool:
|
||||||
|
return self._reset_member_after_rejoin
|
||||||
|
|
||||||
|
@reset_member_after_rejoin.setter
|
||||||
|
def reset_member_after_rejoin(self, value: bool):
|
||||||
|
self._reset_member_after_rejoin = value
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def feature_flags(self) -> dict[FeatureFlagsEnum]:
|
def feature_flags(self) -> dict[FeatureFlagsEnum]:
|
||||||
return self._feature_flags
|
return self._feature_flags
|
||||||
|
@ -38,6 +38,11 @@ class User(TableABC):
|
|||||||
self._created_at = created_at if created_at is not None else self._created_at
|
self._created_at = created_at if created_at is not None else self._created_at
|
||||||
self._modified_at = modified_at if modified_at is not None else self._modified_at
|
self._modified_at = modified_at if modified_at is not None else self._modified_at
|
||||||
|
|
||||||
|
def reset(self):
|
||||||
|
self._xp = 0
|
||||||
|
self._message_count = 0
|
||||||
|
self._reaction_count = 0
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def id(self) -> int:
|
def id(self) -> int:
|
||||||
return self._user_id
|
return self._user_id
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
ALTER TABLE CFG_Server
|
||||||
|
DROP COLUMN ResetMemberAfterRejoin;
|
||||||
|
|
||||||
|
ALTER TABLE CFG_ServerHistory
|
||||||
|
DROP COLUMN ResetMemberAfterRejoin;
|
||||||
|
|
||||||
|
|
116
bot/src/bot_data/scripts/1.2.4/1_ResetMemberAfterRejoin_up.sql
Normal file
116
bot/src/bot_data/scripts/1.2.4/1_ResetMemberAfterRejoin_up.sql
Normal file
@ -0,0 +1,116 @@
|
|||||||
|
ALTER TABLE CFG_Server
|
||||||
|
ADD ResetMemberAfterRejoin BOOLEAN NOT NULL DEFAULT FALSE AFTER GameOfferNotificationChatId;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE CFG_ServerHistory
|
||||||
|
ADD ResetMemberAfterRejoin BOOLEAN NOT NULL DEFAULT FALSE AFTER GameOfferNotificationChatId;
|
||||||
|
|
||||||
|
DROP TRIGGER IF EXISTS `TR_CFG_ServerUpdate`;;
|
||||||
|
|
||||||
|
CREATE TRIGGER `TR_CFG_ServerUpdate`
|
||||||
|
AFTER UPDATE
|
||||||
|
ON `CFG_Server`
|
||||||
|
FOR EACH ROW
|
||||||
|
BEGIN
|
||||||
|
INSERT INTO `CFG_ServerHistory` (`Id`,
|
||||||
|
`MessageDeleteTimer`,
|
||||||
|
`NotificationChatId`,
|
||||||
|
`MaxVoiceStateHours`,
|
||||||
|
`XpPerMessage`,
|
||||||
|
`XpPerReaction`,
|
||||||
|
`MaxMessageXpPerHour`,
|
||||||
|
`XpPerOntimeHour`,
|
||||||
|
`XpPerEventParticipation`,
|
||||||
|
`XpPerAchievement`,
|
||||||
|
`AFKCommandChannelId`,
|
||||||
|
`HelpVoiceChannelId`,
|
||||||
|
`TeamChannelId`,
|
||||||
|
`LoginMessageChannelId`,
|
||||||
|
`DefaultRoleId`,
|
||||||
|
`ShortRoleNameSetOnlyHighest`,
|
||||||
|
`GameOfferNotificationChatId`,
|
||||||
|
`ResetMemberAfterRejoin`,
|
||||||
|
`FeatureFlags`,
|
||||||
|
`ServerId`,
|
||||||
|
`DateFrom`,
|
||||||
|
`DateTo`)
|
||||||
|
VALUES (OLD.Id,
|
||||||
|
OLD.MessageDeleteTimer,
|
||||||
|
OLD.NotificationChatId,
|
||||||
|
OLD.MaxVoiceStateHours,
|
||||||
|
OLD.XpPerMessage,
|
||||||
|
OLD.XpPerReaction,
|
||||||
|
OLD.MaxMessageXpPerHour,
|
||||||
|
OLD.XpPerOntimeHour,
|
||||||
|
OLD.XpPerEventParticipation,
|
||||||
|
OLD.XpPerAchievement,
|
||||||
|
OLD.AFKCommandChannelId,
|
||||||
|
OLD.HelpVoiceChannelId,
|
||||||
|
OLD.TeamChannelId,
|
||||||
|
OLD.LoginMessageChannelId,
|
||||||
|
OLD.DefaultRoleId,
|
||||||
|
OLD.ShortRoleNameSetOnlyHighest,
|
||||||
|
OLD.GameOfferNotificationChatId,
|
||||||
|
OLD.ResetMemberAfterRejoin,
|
||||||
|
OLD.FeatureFlags,
|
||||||
|
OLD.ServerId,
|
||||||
|
OLD.LastModifiedAt,
|
||||||
|
CURRENT_TIMESTAMP(6));
|
||||||
|
END;;
|
||||||
|
|
||||||
|
DROP TRIGGER IF EXISTS `TR_CFG_ServerDelete`;;
|
||||||
|
|
||||||
|
CREATE TRIGGER `TR_CFG_ServerDelete`
|
||||||
|
AFTER DELETE
|
||||||
|
ON `CFG_Server`
|
||||||
|
FOR EACH ROW
|
||||||
|
BEGIN
|
||||||
|
INSERT INTO `CFG_ServerHistory` (`Id`,
|
||||||
|
`MessageDeleteTimer`,
|
||||||
|
`NotificationChatId`,
|
||||||
|
`MaxVoiceStateHours`,
|
||||||
|
`XpPerMessage`,
|
||||||
|
`XpPerReaction`,
|
||||||
|
`MaxMessageXpPerHour`,
|
||||||
|
`XpPerOntimeHour`,
|
||||||
|
`XpPerEventParticipation`,
|
||||||
|
`XpPerAchievement`,
|
||||||
|
`AFKCommandChannelId`,
|
||||||
|
`HelpVoiceChannelId`,
|
||||||
|
`TeamChannelId`,
|
||||||
|
`LoginMessageChannelId`,
|
||||||
|
`DefaultRoleId`,
|
||||||
|
`ShortRoleNameSetOnlyHighest`,
|
||||||
|
`GameOfferNotificationChatId`,
|
||||||
|
`ResetMemberAfterRejoin`,
|
||||||
|
`ServerId`,
|
||||||
|
`FeatureFlags`,
|
||||||
|
`Deleted`,
|
||||||
|
`DateFrom`,
|
||||||
|
`DateTo`)
|
||||||
|
VALUES (OLD.Id,
|
||||||
|
OLD.MessageDeleteTimer,
|
||||||
|
OLD.NotificationChatId,
|
||||||
|
OLD.MaxVoiceStateHours,
|
||||||
|
OLD.XpPerMessage,
|
||||||
|
OLD.XpPerReaction,
|
||||||
|
OLD.MaxMessageXpPerHour,
|
||||||
|
OLD.XpPerOntimeHour,
|
||||||
|
OLD.XpPerEventParticipation,
|
||||||
|
OLD.XpPerAchievement,
|
||||||
|
OLD.AFKCommandChannelId,
|
||||||
|
OLD.HelpVoiceChannelId,
|
||||||
|
OLD.TeamChannelId,
|
||||||
|
OLD.LoginMessageChannelId,
|
||||||
|
OLD.DefaultRoleId,
|
||||||
|
OLD.ShortRoleNameSetOnlyHighest,
|
||||||
|
OLD.GameOfferNotificationChatId,
|
||||||
|
OLD.ResetMemberAfterRejoin,
|
||||||
|
OLD.FeatureFlags,
|
||||||
|
OLD.ServerId,
|
||||||
|
TRUE,
|
||||||
|
OLD.LastModifiedAt,
|
||||||
|
CURRENT_TIMESTAMP(6));
|
||||||
|
END;;
|
||||||
|
|
@ -78,6 +78,12 @@ class BaseOnMemberJoinEvent(OnMemberJoinABC):
|
|||||||
user = self._users.find_user_by_discord_id_and_server_id(member.id, server.id)
|
user = self._users.find_user_by_discord_id_and_server_id(member.id, server.id)
|
||||||
if user is not None:
|
if user is not None:
|
||||||
self._user_joins.add_user_joined_server(UserJoinedServer(user, datetime.now()))
|
self._user_joins.add_user_joined_server(UserJoinedServer(user, datetime.now()))
|
||||||
|
|
||||||
|
server_config: ServerConfig = self._config.get_configuration(f"ServerConfig_{member.guild.id}")
|
||||||
|
if server_config.reset_member_after_rejoin:
|
||||||
|
user.reset()
|
||||||
|
self._users.update_user(user)
|
||||||
|
|
||||||
self._db.save_changes()
|
self._db.save_changes()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user