Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: support new username system #1387

Merged
merged 19 commits into from
Jul 4, 2023

Conversation

Aldiwildan77
Copy link
Contributor

@Aldiwildan77 Aldiwildan77 commented Jun 8, 2023

Problem

closes #1386

Unit Test Check

image

image

user.go Show resolved Hide resolved
Copy link

@RiskyFeryansyahP RiskyFeryansyahP left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit

user.go Show resolved Hide resolved
RiskyFeryansyahP

This comment was marked as resolved.

user.go Outdated Show resolved Hide resolved
user.go Outdated Show resolved Hide resolved
Copy link
Collaborator

@FedorLap2006 FedorLap2006 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While I don't think we had done this before, I think it's a good idea to put all table tests under a subtest (with the name being something along the lines of "String()" or "Conversion to a string").

user_test.go Outdated Show resolved Hide resolved
user_test.go Outdated Show resolved Hide resolved
user_test.go Outdated Show resolved Hide resolved
user_test.go Outdated Show resolved Hide resolved
@FedorLap2006
Copy link
Collaborator

Also, please note the checks.

@FedorLap2006 FedorLap2006 added feature Major feature implementation high priority Issue or PR with high priority of merge structs API structs and constants related changes labels Jun 10, 2023
@FedorLap2006 FedorLap2006 added this to the v0.28.0 milestone Jun 10, 2023
@Aldiwildan77
Copy link
Contributor Author

While I don't think we had done this before, I think it's a good idea to put all table tests under a subtest (with the name being something along the lines of "String()" or "Conversion to a string").

yap, do we need a standardization related to the unit test? I think all features will need this since the package become bigger

change `tt` to `tc`. the purpose is to make the variable better communicate.

Co-authored-by: Fedor Lapshin <[email protected]>
@Aldiwildan77
Copy link
Contributor Author

any update for this @FedorLap2006 ?

@cheesycod
Copy link
Contributor

Same, this is kinda needed because of global display names

@Aldiwildan77
Copy link
Contributor Author

I've updated this code, please review it again. Thanks, @FedorLap2006

user.go Outdated Show resolved Hide resolved
user.go Outdated Show resolved Hide resolved
@FedorLap2006
Copy link
Collaborator

FedorLap2006 commented Jun 27, 2023

Additionally, not quite sure about the separation of EndpointDefaultAvatar into two funcs. There's an alternative solution, which would match API more here - supplying an index into a single EndpointDefaultAvatar func and computing it in AvatarURL.

However, it's quite late, so I'll decide on that tomorrow.

@Aldiwildan77
Copy link
Contributor Author

Additionally, not quite sure about the separation of EndpointDefaultAvatar into two funcs. There's an alternative solution, which would match API more here - supplying an index into a single EndpointDefaultAvatar func and computing it in AvatarURL.

However, it's quite late, so I'll decide on that tomorrow.

okay, so keep the EndpointDefaultAvatar and filter on those function right?

endpoints.go Outdated Show resolved Hide resolved
user.go Outdated Show resolved Hide resolved
@FedorLap2006
Copy link
Collaborator

FedorLap2006 commented Jun 29, 2023

Additionally, not quite sure about the separation of EndpointDefaultAvatar into two funcs. There's an alternative solution, which would match API more here - supplying an index into a single EndpointDefaultAvatar func and computing it in AvatarURL.
However, it's quite late, so I'll decide on that tomorrow.

okay, so keep the EndpointDefaultAvatar and filter on those function right?

Basically, but with a couple more changes. See my comment above.

@Aldiwildan77
Copy link
Contributor Author

I've updated this code, please review it again. Thanks, @FedorLap2006

user.go Outdated Show resolved Hide resolved
@FedorLap2006
Copy link
Collaborator

FedorLap2006 commented Jul 3, 2023

I might make the change myself tho, since I understand that everyone wants to have this change 😅

@FedorLap2006 FedorLap2006 changed the title feat: support new username only feat: support new username system Jul 3, 2023
@Aldiwildan77
Copy link
Contributor Author

I might make the change myself tho, since I understand that everyone wants to have this change 😅

😅Hahah thanks for the changes. Glad to know for the new update

Use regular int instead of uint64 for return value of
User.DefaultAvatarIndex and idx parameter of EndpointDefaultUserAvatar.
@FedorLap2006
Copy link
Collaborator

FedorLap2006 commented Jul 4, 2023

Want to give a bit of explanation behind my last commit:

After reading into the documentation and asking around, I've found that user should have only "0" discriminator, therefore I decided to remove the handling (and tests) of "" case, alongside isMigrated func, since it's not going to be needed for a simple == check

Additionally, with a bit of consideration, I've decided to move the comment, since it's probably going to be better if we explain the "0" case, instead of the normal one, which everyone is already used to.

@FedorLap2006
Copy link
Collaborator

And this one - I decided to switch the article to more general version, but decided to undo it, as the "0" part is explained only in developer version

@FedorLap2006 FedorLap2006 merged commit e39e715 into bwmarrin:master Jul 4, 2023
@FedorLap2006
Copy link
Collaborator

Thanks for your contribution!

@Aldiwildan77
Copy link
Contributor Author

Want to give a bit of explanation behind my last commit:

After reading into the documentation and asking around, I've found that user should have only "0" discriminator, therefore I decided to remove the handling (and tests) of "" case, alongside isMigrated func, since it's not going to be needed for a simple == check

Additionally, with a bit of consideration, I've decided to move the comment, since it's probably going to be better if we explain the "0" case, instead of the normal one, which everyone is already used to.

I see, so just simply compare for the "0" value of the discriminator.

@Aldiwildan77
Copy link
Contributor Author

Thanks for your contribution!

Ur welcome, glad to know if there are many cases that can be improved

ymotongpoo referenced this pull request in ymotongpoo/opentelemetry-collector-extra Jun 4, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/bwmarrin/discordgo](https://togithub.com/bwmarrin/discordgo)
| `v0.27.1` -> `v0.28.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fbwmarrin%2fdiscordgo/v0.28.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fbwmarrin%2fdiscordgo/v0.28.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fbwmarrin%2fdiscordgo/v0.27.1/v0.28.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fbwmarrin%2fdiscordgo/v0.27.1/v0.28.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>bwmarrin/discordgo (github.com/bwmarrin/discordgo)</summary>

###
[`v0.28.1`](https://togithub.com/bwmarrin/discordgo/releases/tag/v0.28.1):
DiscordGo v0.28.1

[Compare
Source](https://togithub.com/bwmarrin/discordgo/compare/v0.28.0...v0.28.1)

Hi all! This release, once again, only bumps semantic version of the
library and does not contain any new fixes nor features.
Sorry for the inconvenience! See previous release for changelog.

###
[`v0.28.0`](https://togithub.com/bwmarrin/discordgo/releases/tag/v0.28.0):
DiscordGo v0.28.0

[Compare
Source](https://togithub.com/bwmarrin/discordgo/compare/v0.27.1...v0.28.0)

##### Changelog

##### Breaking changes

- `ChannelEdit.Position` is now a pointer
[https://github.com/bwmarrin/discordgo/pull/1385](https://togithub.com/bwmarrin/discordgo/pull/1385)
- `Button.Emoji` is now a pointer
[https://github.com/bwmarrin/discordgo/pull/1475](https://togithub.com/bwmarrin/discordgo/pull/1475)
- `SelectMenuOption.Emoji` is now a pointer
[https://github.com/bwmarrin/discordgo/pull/1476](https://togithub.com/bwmarrin/discordgo/pull/1476)
- `Components` and `Embeds` in `MessageEdit` are now pointers
[https://github.com/bwmarrin/discordgo/pull/1483](https://togithub.com/bwmarrin/discordgo/pull/1483)
- `WebhookEdit` and `WebhookEditWithToken` now return `*Webhook`,
instead of `*Role`
[https://github.com/bwmarrin/discordgo/pull/1497](https://togithub.com/bwmarrin/discordgo/pull/1497)
- `AuditLogGuildScheduledEventUpdare` was renamed to
`AuditLogGuildScheduledEventUpdate`
[https://github.com/bwmarrin/discordgo/pull/1370](https://togithub.com/bwmarrin/discordgo/pull/1370)
- Type of `Message.StickerItems` was changed to `[]StickerItem`
[https://github.com/bwmarrin/discordgo/pull/1494](https://togithub.com/bwmarrin/discordgo/pull/1494)
- `withMember` parameter was added to `Session.ThreadMember` and
`Session.ThreadMembers`
[https://github.com/bwmarrin/discordgo/pull/1325](https://togithub.com/bwmarrin/discordgo/pull/1325)
- `limit` parameter was added to `Session.ThreadMembers`
[https://github.com/bwmarrin/discordgo/pull/1325](https://togithub.com/bwmarrin/discordgo/pull/1325)

##### Features

- Onboarding
[https://github.com/bwmarrin/discordgo/pull/1401](https://togithub.com/bwmarrin/discordgo/pull/1401)
- Default values for auto-populated select menus
[https://github.com/bwmarrin/discordgo/pull/1452](https://togithub.com/bwmarrin/discordgo/pull/1452)
- Role icons
[https://github.com/bwmarrin/discordgo/pull/1334](https://togithub.com/bwmarrin/discordgo/pull/1334)

##### Additions

- Add support for usernames without disciminator
[https://github.com/bwmarrin/discordgo/pull/1387](https://togithub.com/bwmarrin/discordgo/pull/1387)
- Add `WebhookParams.ThreadName`
[https://github.com/bwmarrin/discordgo/pull/1412](https://togithub.com/bwmarrin/discordgo/pull/1412)
- Add `SuppressNotification` and `IsVoiceMessage` message flags
[https://github.com/bwmarrin/discordgo/pull/1428](https://togithub.com/bwmarrin/discordgo/pull/1428)
- Add `MessageSend.Flags`
[https://github.com/bwmarrin/discordgo/pull/1427](https://togithub.com/bwmarrin/discordgo/pull/1427)
- Add `FailIfNotExists` and `SoftReference` to `Message`
[https://github.com/bwmarrin/discordgo/pull/1376](https://togithub.com/bwmarrin/discordgo/pull/1376)
- Add `MessageSend.StickerIDs`
[https://github.com/bwmarrin/discordgo/pull/1340](https://togithub.com/bwmarrin/discordgo/pull/1340)
- Add `ApplicationCommandInteractionData.CommandType`
[https://github.com/bwmarrin/discordgo/pull/1362](https://togithub.com/bwmarrin/discordgo/pull/1362)
- Add `AuditLogOptions.IntegrationType`
[https://github.com/bwmarrin/discordgo/pull/1440](https://togithub.com/bwmarrin/discordgo/pull/1440)
- Add `AuditLogOptions.ApplicationID`
[https://github.com/bwmarrin/discordgo/pull/1380](https://togithub.com/bwmarrin/discordgo/pull/1380)
- Add auto moderation audit log actions and options
[https://github.com/bwmarrin/discordgo/pull/1371](https://togithub.com/bwmarrin/discordgo/pull/1371)
- Add monetization audit log actions
[https://github.com/bwmarrin/discordgo/pull/1442](https://togithub.com/bwmarrin/discordgo/pull/1442)
- Add `BotHTTPInteractions` and `ActiveBotDeveloper` user flags
[https://github.com/bwmarrin/discordgo/pull/1465](https://togithub.com/bwmarrin/discordgo/pull/1465)
- Add `ThreadMember.Member`
[https://github.com/bwmarrin/discordgo/pull/1325](https://togithub.com/bwmarrin/discordgo/pull/1325)
- Add `Member.Flags`
[https://github.com/bwmarrin/discordgo/pull/1499](https://togithub.com/bwmarrin/discordgo/pull/1499)
- Add `Member.DisplayName`
[https://github.com/bwmarrin/discordgo/pull/1426](https://togithub.com/bwmarrin/discordgo/pull/1426)
- Add `Attachments` to `InteractionResponseData`, `WebhookEdit` and
`WebhookParams`
[https://github.com/bwmarrin/discordgo/pull/1392](https://togithub.com/bwmarrin/discordgo/pull/1392)
- Add `Session.ShouldReconnectVoiceOnSessionError`
[https://github.com/bwmarrin/discordgo/pull/1350](https://togithub.com/bwmarrin/discordgo/pull/1350)
- Add `Role.Flags`
[https://github.com/bwmarrin/discordgo/pull/1410](https://togithub.com/bwmarrin/discordgo/pull/1410)
- Add `UpdateCustomStatus`
[https://github.com/bwmarrin/discordgo/pull/1425](https://togithub.com/bwmarrin/discordgo/pull/1425)
- Add Spanish LATAM locale
[https://github.com/bwmarrin/discordgo/pull/1496](https://togithub.com/bwmarrin/discordgo/pull/1496)
- Add `GuildDirectory` and `GuildMedia` channel types
[https://github.com/bwmarrin/discordgo/pull/1514](https://togithub.com/bwmarrin/discordgo/pull/1514)

##### Other changes

- Fix error shadowing in `WebhookEditWithToken`
[https://github.com/bwmarrin/discordgo/pull/1372](https://togithub.com/bwmarrin/discordgo/pull/1372)
- Remove remove duplicated slash in `EndpointGuildTemplate`
[https://github.com/bwmarrin/discordgo/pull/1395](https://togithub.com/bwmarrin/discordgo/pull/1395)
- Fix incorrect `AuditLogOptionsType` values
[https://github.com/bwmarrin/discordgo/pull/1413](https://togithub.com/bwmarrin/discordgo/pull/1413)
- Allow `Components` and `Embeds` in `MessageEdit` to be set to `[]`
[https://github.com/bwmarrin/discordgo/pull/1483](https://togithub.com/bwmarrin/discordgo/pull/1483)
- Allow `ChannelEdit.Position` to be set to `0`
[https://github.com/bwmarrin/discordgo/pull/1385](https://togithub.com/bwmarrin/discordgo/pull/1385)
- Fix `BUTTON_COMPONENT_INVALID_EMOJI` error for `Button`
[https://github.com/bwmarrin/discordgo/pull/1475](https://togithub.com/bwmarrin/discordgo/pull/1475)
- Fix `BUTTON_COMPONENT_INVALID_EMOJI` error for `SelectMenuOption`
[https://github.com/bwmarrin/discordgo/pull/1476](https://togithub.com/bwmarrin/discordgo/pull/1476)

##### Special thanks

-   [@&#8203;Roolps](https://togithub.com/Roolps)
-   [@&#8203;tckthecreator](https://togithub.com/tckthecreator)
-   [@&#8203;quackduck](https://togithub.com/quackduck)
-   [@&#8203;Earlopain](https://togithub.com/Earlopain)
-   [@&#8203;loghinalexandru](https://togithub.com/loghinalexandru)
-   [@&#8203;merlinfuchs](https://togithub.com/merlinfuchs)
-   [@&#8203;Aldiwildan77](https://togithub.com/Aldiwildan77)
-   [@&#8203;Ju0x](https://togithub.com/Ju0x)
-   [@&#8203;JulienTant](https://togithub.com/JulienTant)
-   [@&#8203;KokeCacao](https://togithub.com/KokeCacao)
-   [@&#8203;SamusAranX](https://togithub.com/SamusAranX)
-   [@&#8203;TheGrandPackard](https://togithub.com/TheGrandPackard)
-   [@&#8203;phamill](https://togithub.com/phamill)
-   [@&#8203;AlexeyOplachko](https://togithub.com/AlexeyOplachko)
-   [@&#8203;Cyb3r-Jak3](https://togithub.com/Cyb3r-Jak3)
-   [@&#8203;joshuasing](https://togithub.com/joshuasing)
-   [@&#8203;hhaste](https://togithub.com/hhaste)

**Full Changelog**:
bwmarrin/discordgo@v0.27.1...v0.28.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/ymotongpoo/opentelemetry-collector-extra).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zODguMSIsInVwZGF0ZWRJblZlciI6IjM3LjM4OC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature Major feature implementation high priority Issue or PR with high priority of merge structs API structs and constants related changes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

User string got #0 discriminator caused by discord update
5 participants