我在Replit上托管我的discord.py机器人时遇到了错误。

huangapple go评论77阅读模式
英文:

I get an error when I host my discord.py bot on replit

问题

抱歉,我无法为你提供代码的翻译。如果你需要代码方面的帮助或翻译,请提供具体的问题或文本,我会尽力提供解答。

英文:

When I host locally it works but when I host on replit it gives me this error. Initially I thought it was due to the server part I created via this video but the error comes directly from the main bot. What could be the problem?

Hosting a free bot has become quite a challenge lately. Why should I spend money on vps if my project is small?
error

  1. Traceback (most recent call last):
  2. File "main.py", line 401, in <module>
  3. client.run(TOKENS)
  4. File "/home/runner/PeppeBOT/venv/lib/python3.10/site-packages/discord/client.py", line 828, in run
  5. asyncio.run(runner())
  6. File "/nix/store/hd4cc9rh83j291r5539hkf6qd8lgiikb-python3-3.10.8/lib/python3.10/asyncio/runners.py", line 44, in run
  7. return loop.run_until_complete(main)
  8. File "/nix/store/hd4cc9rh83j291r5539hkf6qd8lgiikb-python3-3.10.8/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
  9. return future.result()
  10. File "/home/runner/PeppeBOT/venv/lib/python3.10/site-packages/discord/client.py", line 817, in runner
  11. await self.start(token, reconnect=reconnect)
  12. File "/home/runner/PeppeBOT/venv/lib/python3.10/site-packages/discord/client.py", line 745, in start
  13. await self.login(token)
  14. File "/home/runner/PeppeBOT/venv/lib/python3.10/site-packages/discord/client.py", line 580, in login
  15. data = await self.http.static_login(token)
  16. File "/home/runner/PeppeBOT/venv/lib/python3.10/site-packages/discord/http.py", line 801, in static_login
  17. data = await self.request(Route('GET', '/users/@me'))
  18. File "/home/runner/PeppeBOT/venv/lib/python3.10/site-packages/discord/http.py", line 680, in request
  19. raise HTTPException(response, data)
  20. discord.errors.HTTPException: 429 Too Many Requests (error code: 0): <!DOCTYPE html>
  21. <!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en-US"> <![endif]-->
  22. <!--[if IE 7]> <html class="no-js ie7 oldie" lang="en-US"> <![endif]-->
  23. <!--[if IE 8]> <html class="no-js ie8 oldie" lang="en-US"> <![endif]-->
  24. <!--[if gt IE 8]><!--> <html class="no-js" lang="en-US"> <!--<![endif]-->
  25. <head>
  26. <title>Access denied | discord.com used Cloudflare to restrict access</title>
  27. <meta charset="UTF-8" />
  28. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  29. <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
  30. <meta name="robots" content="noindex, nofollow" />
  31. <meta name="viewport" content="width=device-width,initial-scale=1" />
  32. <link rel="stylesheet" id="cf_styles-css" href="/cdn-cgi/styles/main.css" />
  33. <script>
  34. (function(){if(document.addEventListener&&window.XMLHttpRequest&&JSON&&JSON.stringify){var e=function(a){var c=document.getElementById("error-feedback-survey"),d=document.getElementById("error-feedback-success"),b=new XMLHttpRequest;a={event:"feedback clicked",properties:{errorCode:1015,helpful:a,version:1}};b.open("POST","https://sparrow.cloudflare.com/api/v1/event");b.setRequestHeader("Content-Type","application/json");b.setRequestHeader("Sparrow-Source-Key","c771f0e4b54944bebf4261d44bd79a1e");
  35. b.send(JSON.stringify(a));c.classList.add("feedback-hidden");d.classList.remove("feedback-hidden")};document.addEventListener("DOMContentLoaded",function(){var a=document.getElementById("error-feedback"),c=document.getElementById("feedback-button-yes"),d=document.getElementById("feedback-button-no");"classList"in a&&(a.classList.remove("feedback-hidden"),c.addEventListener("click",function(){e(!0)}),d.addEventListener("click",function(){e(!1)}))})}})();
  36. </script>
  37. <script defer src="https://performance.radar.cloudflare.com/beacon.js"></script>
  38. </head>
  39. <body>
  40. <div id="cf-wrapper">
  41. <div class="cf-alert cf-alert-error cf-cookie-error hidden" id="cookie-alert" data-translate="enable_cookies">Please enable cookies.</div>
  42. <div id="cf-error-details" class="p-0">
  43. <header class="mx-auto pt-10 lg:pt-6 lg:px-8 w-240 lg:w-full mb-15 antialiased">
  44. <h1 class="inline-block md:block mr-2 md:mb-2 font-light text-60 md:text-3xl text-black-dark leading-tight">
  45. <span data-translate="error">Error</span>
  46. <span>1015</span>
  47. </h1>
  48. <span class="inline-block md:block heading-ray-id font-mono text-15 lg:text-sm lg:leading-relaxed">Ray ID: 795444d5a895b0c3 •</span>
  49. <span class="inline-block md:block heading-ray-id font-mono text-15 lg:text-sm lg:leading-relaxed">2023-02-06 13:35:25 UTC</span>
  50. <h2 class="text-gray-600 leading-1.3 text-3xl lg:text-2xl font-light">You are being rate limited</h2>
  51. </header>
  52. <section class="w-240 lg:w-full mx-auto mb-8 lg:px-8">
  53. <div id="what-happened-section" class="w-1/2 md:w-full">
  54. <h2 class="text-3xl leading-tight font-normal mb-4 text-black-dark antialiased" data-translate="what_happened">What happened?</h2>
  55. <p>The owner of this website (discord.com) has banned you temporarily from accessing this website.</p>
  56. </div>
  57. </section>
  58. <div class="feedback-hidden py-8 text-center" id="error-feedback">
  59. <div id="error-feedback-survey" class="footer-line-wrapper">
  60. Was this page helpful?
  61. <button class="border border-solid bg-white cf-button cursor-pointer ml-4 px-4 py-2 rounded" id="feedback-button-yes" type="button">Yes</button>
  62. <button class="border border-solid bg-white cf-button cursor-pointer ml-4 px-4 py-2 rounded" id="feedback-button-no" type="button">No</button>
  63. </div>
  64. <div class="feedback-success feedback-hidden" id="error-feedback-success">
  65. Thank you for your feedback!
  66. </div>
  67. </div>
  68. <div class="cf-error-footer cf-wrapper w-240 lg:w-full py-10 sm:py-4 sm:px-8 mx-auto text-center sm:text-left border-solid border-0 border-t border-gray-300">
  69. <p class="text-13">
  70. <span class="cf-footer-item sm:block sm:mb-1">Cloudflare Ray ID: <strong class="font-semibold">795444d5a895b0c3</strong></span>
  71. <span class="cf-footer-separator sm:hidden">•</span>
  72. <span id="cf-footer-item-ip" class="cf-footer-item hidden sm:block sm:mb-1">
  73. Your IP:
  74. <button type="button" id="cf-footer-ip-reveal" class="cf-footer-ip-reveal-btn">Click to reveal</button>
  75. <span class="hidden" id="cf-footer-ip">34.74.131.130</span>
  76. <span class="cf-footer-separator sm:hidden">•</span>
  77. </span>
  78. <span class="cf-footer-item sm:block sm:mb-1"><span>Performance & security by</span> <a rel="noopener noreferrer" href="https://www.cloudflare.com/5xx-error-landing" id="brand_link" target="_blank">Cloudflare</a></span>
  79. </p>
  80. <script>(function(){function d(){var b=a.getElementById("cf-footer-item-ip"),c=a.getElementById("cf-footer-ip-reveal");b&&"classList"in b&&(b.classList.remove("hidden"),c.addEventListener("click",function(){c.classList.add("hidden");a.getElementById("cf-footer-ip").classList.remove("hidden")}))}var a=document;document.addEventListener&&a.addEventListener("DOMContentLoaded",d)})();</script>
  81. </div><!-- /.error-footer -->
  82. </div><!-- /#cf-error-details -->
  83. </div><!-- /#cf-wrapper -->
  84. <script>
  85. window._cf_translation = {};
  86. </script>
  87. <script>(function(){var js = "window['__CF$cv$params']={r:'795444d5a895b0c3',m:'Dd87hwfU_SGSbuhSCmEIgD4OJgNU9bZXc65YvwTsSWk-1675690525-0-Af7JL6WCgpne12E1VutyYAlLnWrvoh/+MVaM+Dch+KEt5KTJYCZEFTRYzIAIqarUap1plo8VlvVhzUe1OB/Hw0FA7SealXU/Uq/+mAJjPxLFRi9lCCCmdMNpckywRQaZz7LVgUU9VefBQqqQ2Il04v0=',s:[0x33c1ad0932,0xfae449c46d],u:'/cdn-cgi/challenge-platform/h/b'};var _cpo=document.createElement('script');_cpo.nonce='',_cpo.src='/cdn-cgi/challenge-platform/h/b/scripts/cb/invisible.js?cb=795444d5a895b0c3',document.getElementsByTagName('head')[0].appendChild(_cpo);";var _0xh = document.createElement('iframe');_0xh.height = 1;_0xh.width = 1;_0xh.style.position = 'absolute';_0xh.style.top = 0;_0xh.style.left = 0;_0xh.style.border = 'none';_0xh.style.visibility = 'hidden';document.body.appendChild(_0xh);function handler() {var _0xi = _0xh.contentDocument || _0xh.contentWindow.document;if (_0xi) {var _0xj = _0xi.createElement('script');_0xj.nonce = '';_0xj.innerHTML = js;_0xi.getElementsByTagName('head')[0].appendChild(_0xj);}}if (document.readyState !== 'loading') {handler();} else if (window.addEventListener) {document.addEventListener('DOMContentLoaded', handler);} else {var prev = document.onreadystatechange || function () {};document.onreadystatechange = function (e) {prev(e);if (document.readyState !== 'loading') {document.onreadystatechange = prev;handler();}};}})();</script></body>
  88. </html>

discord bot code

  1. import discord
  2. from discord import client
  3. from discord import app_commands
  4. from webserver import keep_alive
  5. import datetime
  6. import asyncio
  7. import os
  8. print("PeppeBOT si sta avviando...")
  9. class VerifySelectMenuTipologia(discord.ui.Select):
  10. def __init__(self):
  11. options=[
  12. discord.SelectOption(label="Giocatore", description="Se vuoi partecipare ai nostri tornei!"),
  13. discord.SelectOption(label="Spettatore", description="Se vuoi solo assistere ai nostri tornei!")
  14. ]
  15. super().__init__(placeholder="Seleziona la tua tipologia:",max_values=1,min_values=1,options=options)
  16. async def callback(self, interaction: discord.Interaction):
  17. if self.values[0] == "Giocatore":
  18. self.spettatore = 918003194519511060
  19. spettatore = interaction.guild.get_role(self.spettatore)
  20. await interaction.user.add_roles(spettatore)
  21. self.svincolato = 917269610556968970
  22. svincolato = interaction.guild.get_role(self.svincolato)
  23. await interaction.user.add_roles(svincolato)
  24. elif self.values[0] == "Spettatore":
  25. self.spettatore = 918003193982644224
  26. spettatore = interaction.guild.get_role(self.spettatore)
  27. await interaction.user.add_roles(spettatore)
  28. self.membro = 918025325538078750
  29. membro = interaction.guild.get_role(self.membro)
  30. await interaction.user.add_roles(membro)
  31. self.attività = 917117040035237939
  32. attività = interaction.guild.get_role(self.attività)
  33. await interaction.user.add_roles(attività)
  34. self.boh = 1058541599455465483
  35. boh = interaction.guild.get_role(self.boh)
  36. await interaction.user.remove_roles(boh)
  37. await interaction.delete_original_response()
  38. class VerifySelectMenuTipologiaView(discord.ui.View):
  39. def __init__(self, *, timeout = 180):
  40. super().__init__(timeout=timeout)
  41. self.add_item(VerifySelectMenuTipologia())
  42. class VerifySelectMenuFasciaEta(discord.ui.Select):
  43. def __init__(self):
  44. options=[
  45. discord.SelectOption(label="18+", description="Se sei maggiorenne!"),
  46. discord.SelectOption(label="14-17", description="Se sei tra i 14 e i 17 anni!"),
  47. discord.SelectOption(label="13-",description="Se hai meno di 14 anni!")
  48. ]
  49. super().__init__(placeholder="Seleziona la tua fascia d'età",max_values=1,min_values=1,options=options)
  50. async def callback(self, interaction: discord.Interaction):
  51. if self.values[0] == "18+":
  52. self.maggiorenne = 1071955516252758167
  53. maggiorenne = interaction.guild.get_role(self.maggiorenne)
  54. await interaction.user.add_roles(maggiorenne)
  55. await interaction.response.edit_message(content="Manca solo l'ultima selezione! Sei un giocatore o uno spettatore?", view=VerifySelectMenuTipologiaView())
  56. elif self.values[0] == "14-17":
  57. self.mezzo = 1071955345532014652
  58. mezzo = interaction.guild.get_role(self.mezzo)
  59. await interaction.user.add_roles(mezzo)
  60. await interaction.response.edit_message(content="Manca solo l'ultima selezione! Sei un giocatore o uno spettatore?", view=VerifySelectMenuTipologiaView())
  61. elif self.values[0] == "13-":
  62. self.minorenne = 1071955284534247534
  63. minorenne = interaction.guild.get_role(self.minorenne)
  64. await interaction.user.add_roles(minorenne)
  65. await interaction.response.edit_message(content="Manca solo l'ultima selezione! Sei un giocatore o uno spettatore?", view=VerifySelectMenuTipologiaView())
  66. class VerifySelectMenuFasciaEtaView(discord.ui.View):
  67. def __init__(self, *, timeout = 180):
  68. super().__init__(timeout=timeout)
  69. self.add_item(VerifySelectMenuFasciaEta())
  70. class VerifyModal(discord.ui.Modal, title='Verifica'):
  71. nickname = discord.ui.TextInput(
  72. label="Nickname di haxball:",
  73. placeholder="Scrivi qui il tuo nickname di haxball (ricorda non potrai più cambiarlo)",
  74. min_length=1,
  75. max_length=10,
  76. )
  77. async def on_submit(self, interaction: discord.Interaction):
  78. await interaction.user.edit(nick= f'{self.nickname}')
  79. await interaction.response.send_message(content="Ottimo! Ora seleziona la tua fascia d'età", view=VerifySelectMenuFasciaEtaView(), ephemeral=True)
  80. class VerifyButton(discord.ui.View):
  81. def __init__(self) -> None:
  82. super().__init__(timeout=None)
  83. @discord.ui.button(label="Verificati", style=discord.ButtonStyle.green, custom_id="verify_button")
  84. async def verify(self, interaction: discord.Interaction, button: discord.ui.Button):
  85. if type(client.role) is not discord.Role: client.role = interaction.guild.get_role(918025325538078750)
  86. if client.role not in interaction.user.roles:
  87. modal = VerifyModal()
  88. await interaction.response.send_modal(modal)
  89. else:
  90. await interaction.response.send_message("Sei già verificato!", ephemeral=True, delete_after=10)
  91. class PersistentViewBot(discord.Client):
  92. def __init__(self):
  93. super().__init__(intents = discord.Intents.all())
  94. self.synced = False
  95. self.added = False
  96. self.role = 918025325538078750
  97. async def on_ready(self):
  98. await self.wait_until_ready()
  99. if not self.synced:
  100. await tree.sync(guild = discord.Object(id=917112143420215338))
  101. self.synced = True
  102. if not self.added:
  103. self.add_view(VerifyButton())
  104. self.added = True
  105. print(self.user, " si è avviato!")
  106. print("ID :", self.user.id)
  107. global logs_moderazione
  108. global logs_generali
  109. logs_moderazione = self.get_channel(917274076962258975)
  110. logs_generali = self.get_channel(917274597466972230)
  111. embed = discord.Embed(
  112. color=0x03c03c
  113. )
  114. embed.set_author(
  115. name=f'Avvio/Riavvio del Bot!',
  116. )
  117. await tree.sync(guild=discord.Object(id=1006702784797749288))
  118. await logs_moderazione.send(embed=embed)
  119. await tree.sync(guild=discord.Object(id=guild_id))
  120. client = PersistentViewBot()
  121. tree = app_commands.CommandTree(client)
  122. guild_id = 917112143420215338
  123. @client.event
  124. async def on_member_join(member):
  125. guild = member.guild
  126. firstrole = guild.get_role(1058541599455465483)
  127. await member.add_roles(firstrole)
  128. tab1 = guild.get_role(918002005040046100)
  129. await member.add_roles(tab1)
  130. tab2 = guild.get_role(918003746850623529)
  131. await member.add_roles(tab2)
  132. tab3 = guild.get_role(918003750944272425)
  133. await member.add_roles(tab3)
  134. tab4 = guild.get_role(917119249145798716)
  135. await member.add_roles(tab4)
  136. mention = member.mention
  137. guild_id = member.guild
  138. member_count = guild_id.member_count
  139. embed = discord.Embed(
  140. description=str(f"{mention} è entrato su **{guild}!**\nIn tutto ora ci sono **{member_count}** membri."),
  141. color=0x222222
  142. )
  143. await logs_generali.send(embed=embed)
  144. @client.event
  145. async def on_member_remove(member):
  146. name = member.mention
  147. guild = member.guild
  148. member_count = guild.member_count
  149. embed = discord.Embed(
  150. description=str(str(f"**{name}** è uscito da **{guild}!**\nIn tutto ora ci sono **{member_count}** membri.")),
  151. color=0x222222
  152. )
  153. await logs_generali.send(embed=embed)
  154. #Comandi di Moderazione
  155. #Clear [COMPLETO]
  156. clear_cooldown = app_commands.Cooldown(1,600)
  157. def clear_cooldown_checker(interaction: discord.Interaction):
  158. return clear_cooldown
  159. @app_commands.checks.dynamic_cooldown(clear_cooldown_checker, key=lambda i: (i.user.id))
  160. @tree.command(name = "clear", description = "Cancella gli ultimi messaggi inviati ", guild=discord.Object(id=guild_id))
  161. async def clear(ctx, limit: int):
  162. await ctx.response.defer(ephemeral=False, thinking=False)
  163. embed = discord.Embed(
  164. color=0xa61022
  165. )
  166. if limit == 0:
  167. embed.set_author(
  168. name="Non puoi cancellare 0 messaggi!",
  169. )
  170. await ctx.response.send_message(embed=embed, delete_after=10.0)
  171. app_commands.Cooldown.reset(clear_cooldown)
  172. embed = discord.Embed(
  173. color=0x03c03c
  174. )
  175. if limit == 1:
  176. embed.set_author(
  177. name=f'Ho cancellato ufficialmente un messaggio!',
  178. icon_url=f'{ctx.user.avatar}'
  179. )
  180. else:
  181. embed.set_author(
  182. name=f'Ho cancellato ufficialmente {limit} messaggi!',
  183. icon_url=f'{ctx.user.avatar}'
  184. )
  185. await ctx.channel.purge(limit=limit, before=ctx.created_at)
  186. await ctx.followup.send(embed=embed)
  187. embed = discord.Embed(
  188. color=0xFFD000
  189. )
  190. if limit == 1:
  191. embed.set_author(
  192. name=f'{ctx.user.name} ha cancellato un messaggio',
  193. icon_url=f'{ctx.user.avatar}'
  194. )
  195. else:
  196. embed.set_author(
  197. name=f'{ctx.user.name} ha cancellato {limit} messaggi',
  198. icon_url=f'{ctx.user.avatar}'
  199. )
  200. embed.add_field(
  201. name='Messaggi cancellati da:',
  202. value=f'{ctx.user.name}',
  203. inline=True
  204. )
  205. embed.add_field(
  206. name='Quantità:',
  207. value=f'{limit}',
  208. inline=True
  209. )
  210. embed.add_field(
  211. name='Canale dove è stato eseguito il comando:',
  212. value=f'{ctx.channel.mention}',
  213. inline=True
  214. )
  215. await logs_moderazione.send(embed=embed)
  216. await asyncio.sleep(10)
  217. await ctx.delete_original_response()
  218. @clear.error
  219. async def clear_error(ctx, error):
  220. await ctx.response.defer(ephemeral=False, thinking=False)
  221. if isinstance(error, app_commands.CommandOnCooldown):
  222. cooldown = error.cooldown
  223. cd = round(cooldown.get_retry_after())
  224. time = str(datetime.timedelta(seconds=cd))
  225. embed = discord.Embed(
  226. description=f"**Riprova tra `{time}`**",
  227. color=0xa61022
  228. )
  229. embed.set_author(
  230. name="Sei in cooldown!",
  231. icon_url=ctx.user.avatar
  232. )
  233. await ctx.followup.send(embed=embed)
  234. await asyncio.sleep(10)
  235. await ctx.delete_original_response()
  236. #acclear [COMPLETO]
  237. @tree.command(name = "acclear", description = "Cancella con accuratezza gli ultimi messaggi inviati ", guild=discord.Object(id=guild_id))
  238. async def acclear(ctx, message_id: str):
  239. await ctx.response.defer(ephemeral=False, thinking=False)
  240. embed = discord.Embed(
  241. color=0xa61022
  242. )
  243. def message_limit(m):
  244. messageID = message.id
  245. return m.id != messageID
  246. channel = ctx.channel
  247. try:
  248. message = await channel.fetch_message(message_id)
  249. except:
  250. embed.set_author(
  251. name="Non ho trovato il messaggio!",
  252. icon_url=ctx.user.avatar
  253. )
  254. await ctx.response.send_message(embed=embed, delete_after=10.0)
  255. await asyncio.sleep(10)
  256. return 0
  257. embed = discord.Embed(
  258. color=0x03c03c
  259. )
  260. embed.set_author(
  261. name=f'Ho cancellato fino al messaggio:\n{message.content}',
  262. icon_url=f'{ctx.user.avatar}'
  263. )
  264. await ctx.channel.purge(limit=10000, before=ctx.created_at, check=message_limit, after=message)
  265. if message.content == "":
  266. await ctx.followup.send(embed=embed)
  267. embed = discord.Embed(
  268. color=0xFFD000
  269. )
  270. embed.set_author(
  271. name=f'{ctx.user.name} ha cancellato fino al messaggio:\nNon ha testo',
  272. icon_url=f'{ctx.user.avatar}'
  273. )
  274. embed.add_field(
  275. name='Messaggi cancellati da:',
  276. value=f'{ctx.user.name}',
  277. inline=True
  278. )
  279. embed.add_field(
  280. name='Fino al messaggio:',
  281. value=f'Non ha testo',
  282. inline=True
  283. )
  284. embed.add_field(
  285. name='Canale dove è stato eseguito il comando:',
  286. value=f'{ctx.channel.mention}',
  287. inline=True
  288. )
  289. await logs_moderazione.send(embed=embed)
  290. await asyncio.sleep(10)
  291. await ctx.delete_original_response()
  292. else:
  293. await ctx.followup.send(embed=embed)
  294. embed = discord.Embed(
  295. color=0xFFD000
  296. )
  297. embed.set_author(
  298. name=f'{ctx.user.name} ha cancellato fino al messaggio:\n{message.content}',
  299. icon_url=f'{ctx.user.avatar}'
  300. )
  301. embed.add_field(
  302. name='Messaggi cancellati da:',
  303. value=f'{ctx.user.name}',
  304. inline=True
  305. )
  306. embed.add_field(
  307. name='Fino al messaggio:',
  308. value=f'{message.content}',
  309. inline=True
  310. )
  311. embed.add_field(
  312. name='Canale dove è stato eseguito il comando:',
  313. value=f'{ctx.channel.mention}',
  314. inline=True
  315. )
  316. await logs_moderazione.send(embed=embed)
  317. await asyncio.sleep(10)
  318. await ctx.delete_original_response()
  319. @tree.command(name = 'verifybutton', description='Crea il bottone per verificarsi', guild=discord.Object(id=guild_id))
  320. async def verifybutton(ctx):
  321. embed = discord.Embed(
  322. description=str("Benvenuto nel server, prima di poter accedere a tutti i canali è importante verificarsi rispondendo a delle domande molto semplici ossia."),
  323. color=0x222222
  324. )
  325. embed.set_author(
  326. name='PeppeBOT',
  327. icon_url=f'{client.user.avatar}'
  328. )
  329. embed.set_footer(text=f'Haxball Biglassic')
  330. embed.add_field(
  331. name='Domande:',
  332. value="1.Qual è il tuo nickname di haxball?\n2.Qual è la tua fascia d'età?\n3.Sei uno spettatore o un giocatore?",
  333. inline=False
  334. )
  335. embed.add_field(
  336. name='Come rispondere alle domande:',
  337. value="Nella prima domanda dovrai decidere quale nick di haxball utilizzare per questo server senza poterlo cambiare in futuro (ovviamente con le sue regole).\nNella seconda domanda dovrai specificare la tua fascia d'età tra:\n**1.** 13-\n**2.** 14-17\n**3.** 18+\nNella terza domanda dovrai semplicemente dirci se sei venuto per giocare ai tornei organizzati da noi (e quindi essere un effettivo giocatore) oppure se sei venuto semplicemente per conversare e guardare le partite del torneo da spettatore.",
  338. inline=False
  339. )
  340. await ctx.channel.send(embed = embed, view = VerifyButton())
  341. await ctx.response.send_message(content="** **", delete_after=0.1)
  342. sesso_cooldown = app_commands.Cooldown(1,10)
  343. def sesso_cooldown_checker(interaction: discord.Interaction):
  344. return sesso_cooldown
  345. @app_commands.checks.dynamic_cooldown(sesso_cooldown_checker, key=lambda i: (i.user.id))
  346. @tree.command(name = "sesso", description = "Cancella gli ultimi messaggi inviati ", guild=discord.Object(id=guild_id))
  347. async def sesso(ctx):
  348. print(sesso_cooldown)
  349. await ctx.response.send_message("andrea")
  350. await ctx.edit_original_response(content="andrea2")
  351. app_commands.Cooldown.reset(sesso_cooldown)
  352. @sesso.error
  353. async def sesso_error(ctx, error):
  354. if isinstance(error, app_commands.CommandOnCooldown):
  355. cooldown = error.cooldown
  356. cd = round(cooldown.get_retry_after())
  357. time = str(datetime.timedelta(seconds=cd))
  358. embed = discord.Embed(
  359. description=f"**Riprova tra `{time}`**",
  360. color=0xa61022
  361. )
  362. embed.set_author(
  363. name=f"Sei in cooldown!",
  364. icon_url=ctx.user.avatar
  365. )
  366. await ctx.response.send_message(embed=embed)
  367. for i in range(10):
  368. await asyncio.sleep(1)
  369. cd = round(cooldown.get_retry_after())
  370. time = str(datetime.timedelta(seconds=cd))
  371. embed = discord.Embed(
  372. description=f"**Riprova tra `{time}`**",
  373. color=0xa61022
  374. )
  375. embed.set_author(
  376. name=f"Sei in cooldown!",
  377. icon_url=ctx.user.avatar
  378. )
  379. await ctx.edit_original_response(embed=embed)
  380. keep_alive()
  381. TOKENS = os.environ['SECRET_DISCORD_TOKENS']
  382. client.run(TOKENS)

webserver

  1. from flask import Flask
  2. from threading import Thread
  3. app = Flask('')
  4. @app.route("/")
  5. def home():
  6. return "sono vivo"
  7. def run():
  8. app.run(host= '0.0.0.0', port= 8080)
  9. def keep_alive():
  10. t = Thread(target=run)
  11. t.start()

答案1

得分: 1

发生这个错误是因为你的机器人在短时间内发送了太多的请求。要解决这个问题,请在Replit IDE底部窗口的shell中键入kill 1,然后按回车。这将停止你的机器人的进程并重置它的连接。记得重新运行机器人以重新连接。

英文:

This error occurs when your bot has sent too many requests in a short amount of time. To resolve this, type kill 1 in the shell (located in the bottom window of the Replit IDE) and hit enter. This will halt your bot's processes and reset its connection. Remember to rerun the bot to reconnect.

huangapple
  • 本文由 发表于 2023年2月6日 22:01:16
  • 转载请务必保留本文链接:https://go.coder-hub.com/75362305.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定