Created
March 18, 2024 10:52
-
-
Save MrEdinLaw/cdd3133d5b96ee3a73a058586eb7eb5d to your computer and use it in GitHub Desktop.
Transfer role and username, from one discord server to another
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
import nextcord | |
from nextcord.ext import commands | |
BOT_TOKEN = "your_bot_token_here" | |
SPECIFIC_ROLE_ID_IN_SERVER_A = 1219228201667133470 | |
ROLE_ID_IN_SERVER_B = 1219228524401917953 | |
SERVER_A_ID = 1219228133727801384 | |
SERVER_B_ID = 1219228491246211103 | |
SERVER_A_CHANNEL = 1219228133727801387 | |
SERVER_B_CHANNEL = 1219228491694870559 | |
intents = nextcord.Intents.default() | |
intents.members = True # Required to track role changes | |
intents.guilds = True | |
bot = commands.Bot(command_prefix="!", intents=intents) | |
@bot.event | |
async def on_ready(): | |
print(f"Logged in as {bot.user}!") | |
@bot.event | |
async def on_member_update(before, after): | |
if after.guild.id == SERVER_A_ID: | |
if set(after.roles).issuperset(set(before.roles)) and any( | |
role.id == SPECIFIC_ROLE_ID_IN_SERVER_A for role in after.roles | |
): | |
server_b = bot.get_guild(SERVER_B_ID) | |
server_a = bot.get_guild(SERVER_A_ID) | |
member_in_server_b = server_b.get_member(after.id) | |
server_a_channel = server_a.get_channel(SERVER_A_CHANNEL) | |
server_b_channel = server_b.get_channel(SERVER_B_CHANNEL) | |
if member_in_server_b: | |
role_in_server_b = server_b.get_role(ROLE_ID_IN_SERVER_B) | |
await member_in_server_b.add_roles(role_in_server_b) | |
new_nickname = after.display_name | |
await member_in_server_b.edit(nick=new_nickname) | |
await server_a_channel.send(f"Added role and updated nickname for {after.display_name} in Big Server.") | |
await server_b_channel.send(f"Added role and updated nickname for {after.display_name} in Sister Server.") | |
print(f"Added role and updated nickname for {after.display_name} in Server B.") | |
else: | |
await server_a_channel.send(f"Couldn't find member in Sister Server with ID {after.id}.") | |
print(f"Couldn't find member in Server B with ID {after.id}.") | |
bot.run(BOT_TOKEN) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment