mineral-dart / core

🧡 The neuralgic heart of the application, this module gathers all the functionalities of the framework.
https://mineral-foundation.org
MIT License
25 stars 8 forks source link

Implement member methods #170

Closed LeadcodeDev closed 1 month ago

LeadcodeDev commented 1 month ago

Implements

Member

Documentation for Usage

1. Import Methods

import 'package:mineral/api/common/permissions.dart';
import 'package:mineral/api/common/premium_tier.dart';
import 'package:mineral/api/common/presence.dart';
import 'package:mineral/api/common/snowflake.dart';
import 'package:mineral/api/server/builders/member_builder.dart';
import 'package:mineral/api/server/enums/member_flag.dart';
import 'package:mineral/api/server/managers/member_role_manager.dart';
import 'package:mineral/api/server/member_assets.dart';
import 'package:mineral/api/server/member_flags.dart';
import 'package:mineral/api/server/member_timeout.dart';
import 'package:mineral/api/server/member_voice.dart';
import 'package:mineral/api/server/server.dart';
import 'package:mineral/infrastructure/internals/container/ioc_container.dart';
import 'package:mineral/infrastructure/internals/datastore/data_store.dart';
import 'package:mineral/infrastructure/internals/datastore/parts/member_part.dart';

2. Create instance

// Create instance in your function
Member member = Member(
  id: Snowflake('1234567890'),
  username: 'exampleUser',
  nickname: 'exampleNick',
  globalName: 'exampleGlobalName',
  discriminator: '0001',
  assets: MemberAssets(),
  flags: MemberFlagsManager(),
  premiumSince: DateTime.now(),
  publicFlags: 1,
  roles: MemberRoleManager(),
  isBot: false,
  isPending: false,
  timeout: MemberTimeout(),
  mfAEnabled: true,
  locale: 'fr-FR',
  premiumType: PremiumTier.none,
  joinedAt: DateTime.now(),
  permissions: Permissions(),
  pending: false,
  accentColor: 12345,
  presence: Presence(),
);

3. Using methods

// Update username
await member.setUsername('newUsername', 'Updating username for rebranding');

// Update nickname
await member.setNickname('newNick', 'Updating nickname for better recognition');

// Set timeout for 1 hour
await member.setTimeout(Duration(hours: 1), reason: 'Timeout for spamming');

// Enable MFA
await member.enableMfa(reason: 'Security enhancement');

// Disable MFA
await member.disableMfa(reason: 'User requested to disable MFA');

// Update language and locale
await member.setLocale('fr-FR', reason: 'User prefers French locale');

4. Print updated user information

print('Username: ${member.username}');
print('Nickname: ${member.nickname}');
print('Timeout: ${member.timeout}');
print('MFA Enabled: ${member.mfAEnabled}');
print('Locale: ${member.locale}');
LeadcodeDev commented 1 month ago

Please make getter only for the property hasMfaEnabled. image

LeadcodeDev commented 1 month ago

Please change the signature from

await member.setUsername('newUsername', 'Updating username for rebranding');

to

await member.setUsername('newUsername', reason: 'Updating username for rebranding');
LeadcodeDev commented 1 month ago

Remove setLocale method @Arcel-Bika

Arcel-Bika commented 1 month ago

It's done ;)