geysermc / geyserdiscordbot Goto Github PK
View Code? Open in Web Editor NEWA bot for the GeyserMC Discord server
Home Page: https://geysermc.org
License: MIT License
A bot for the GeyserMC Discord server
Home Page: https://geysermc.org
License: MIT License
So I was thinking that you could add a server status command so you can detect what servers MOTD/Player Count/ Server Software. This command can detect both java and bedrock servers. I saw this idea in another server and thought it would be a nice fit for the bot.
Example Usage:
Java:
!status play.tydiumcraft.tk
Bedrock (No server Icon):
!status be.tydiumcraft.tk:19132
Bedrock (with server icon):
!status be.tydiumcraft.tk:25562
I hope this would be a nice fit for the bot in your eyes. Hope you enjoy!
Every time someone mentions javassist in a support channel, the Geyser bot should warn them and say "Geyser does not use javassist, you probably have a pirated plugin installed!".
A system where anyone can suggest a tag and Helpful+ can accept it
I work at witherhosting and would like to ask if you could please update the current command !provider WitherHosting
with this -
Get geyser as a plugin. Put the port provided by the host in your config.yml for the java and bedrock sections, and you will be able to connect! Refer to the hosts support article for more - https://support.witherhosting.com/en/article/how-to-install-and-use-geysermc-1xn5l6v/
Sentry Issue: GEYSERDISCORDBOT-3A
NumberFormatException: Cannot parse null string
at java.lang.Integer.parseInt(Integer.java:630)
at java.lang.Integer.parseInt(Integer.java:786)
at org.geysermc.discordbot.listeners.ErrorAnalyzer.errorHandler(ErrorAnalyzer.java:233)
at org.geysermc.discordbot.listeners.ErrorAnalyzer.handleLog(ErrorAnalyzer.java:177)
at org.geysermc.discordbot.listeners.ErrorAnalyzer.onMessageReceived(ErrorAnalyzer.java:123)
...
(19 additional frame(s) were not displayed)
One of the EventListeners had an uncaught exception
From: proxy.log
Sentry Issue: GEYSERDISCORDBOT-7S
IllegalArgumentException: Value cannot be longer than 1024 characters.
at net.dv8tion.jda.api.entities.MessageEmbed$Field.<init>(MessageEmbed.java:989)
at net.dv8tion.jda.api.entities.MessageEmbed$Field.<init>(MessageEmbed.java:1011)
at net.dv8tion.jda.api.EmbedBuilder.addField(EmbedBuilder.java:851)
at org.geysermc.discordbot.commands.PingCommand.handle(PingCommand.java:176)
.addField("Java", javaInfo, false)
at org.geysermc.discordbot.commands.PingCommand.execute(PingCommand.java:77)
interactionHook.editOriginalEmbeds(handle(ip)).queue();
...
(22 additional frame(s) were not displayed)
Exception caught running command ping
Feature:
Have a slash command for !pr so you can do /pr.
Yes I know /issue is a thing but /pr would be cool too.
Like the tag system, but automatic
We already started working on this but didn't finish
TODO: Fill this description out more
Convert any message.txt
messages to hastebin links for better access and usage
Sentry Issue: GEYSERDISCORDBOT-C
JSONException: JSONObject["config"] not found.
at org.json.JSONObject.get(JSONObject.java:572)
at org.json.JSONObject.getJSONObject(JSONObject.java:782)
at org.geysermc.discordbot.listeners.DumpHandler.onMessageReceived(DumpHandler.java:125)
at net.dv8tion.jda.api.hooks.ListenerAdapter.onEvent(ListenerAdapter.java:463)
at net.dv8tion.jda.api.hooks.InterfacedEventManager.handle(InterfacedEventManager.java:96)
...
(16 additional frame(s) were not displayed)
One of the EventListeners had an uncaught exception
org.geysermc
isn't mentioned in the stack trace)Sentry Issue: GEYSERDISCORDBOT-6D
ContextException: None
at net.dv8tion.jda.api.exceptions.ContextException.here(ContextException.java:54)
at net.dv8tion.jda.api.requests.Request.<init>(Request.java:77)
at net.dv8tion.jda.internal.requests.RestActionImpl.queue(RestActionImpl.java:197)
at net.dv8tion.jda.internal.requests.restaction.TriggerRestAction.queue(TriggerRestAction.java:105)
at net.dv8tion.jda.api.requests.RestAction.queue(RestAction.java:572)
...
(24 additional frame(s) were not displayed)
InteractionExpiredException: The interaction has expired and can no longer be responded to!
at net.dv8tion.jda.internal.interactions.InteractionHookImpl.checkExpired(InteractionHookImpl.java:191)
at net.dv8tion.jda.internal.requests.RestActionImpl$CheckWrapper.test(RestActionImpl.java:334)
at net.dv8tion.jda.internal.requests.RestActionImpl$CheckWrapper.getAsBoolean(RestActionImpl.java:340)
at net.dv8tion.jda.api.requests.Request.runChecks(Request.java:236)
at net.dv8tion.jda.api.requests.Request.isSkipped(Request.java:221)
...
(8 additional frame(s) were not displayed)
RestAction queue returned failure
hey! it seems like that the bot doesn't detect profanity in URLs because of the regex.
Testing with new RegExp(`(?:|\W)foo(?:|\W)`)
instead of new RegExp(`(^| )${Utils.escapeRegExp(newWord)}( |$)`)
seems to work and detect URLs
@rtm516 asked me to make these two one issue so here we go
Issue 1:
Muting doesn't work via mention
Issue 2:
The appeal link is included in the unmute message (also the unmute message is red, shouldn't it be green?)
(idea by @rtm516)
Add !restart
to quit the bot (pm2 will auto-restart it) and !pull-and-restart
to pull the latest changes from GitHub
Sentry Issue: GEYSERDISCORDBOT-7R
IllegalStateException: This interaction has already been acknowledged or replied to. You can only reply or acknowledge an interaction once!
at net.dv8tion.jda.internal.requests.restaction.interactions.InteractionCallbackImpl.tryAck(InteractionCallbackImpl.java:57)
at net.dv8tion.jda.internal.requests.restaction.interactions.InteractionCallbackImpl.queue(InteractionCallbackImpl.java:64)
at net.dv8tion.jda.api.requests.RestAction.queue(RestAction.java:572)
at net.dv8tion.jda.api.requests.RestAction.queue(RestAction.java:538)
at org.geysermc.discordbot.listeners.CommandErrorHandler.onSlashCommandException(CommandErrorHandler.java:58)
.build()).setEphemeral(true).queue();
...
(22 additional frame(s) were not displayed)
RestAction queue returned failure
Warn new users if they send the same message in two channels in a short span of time, like 2-10 minutes.
Earlier in geyser discord someone posted a geyser config with their java details in it by accident, and immediately removed the file once they realized their mistake. Except, Geyser bot had made a hastebin, and it took another minute for the hastebin to be manually removed. Could we make the bot automatically delete the hastebin message when the file it was generated from gets deleted?
When a user pates a link to mclo.gs, it would be nice if the bot in turn pasted a link to the raw version of that log, as the site tends to be quite heavy for what it's ultimately trying to do: displaying logs.
It would search for something like https:\/\/mclo\.gs\/([A-Z,a-z,0-9]{7})
And then return: https://api.mclo.gs/1/raw/$1
This should be I assume this is very easy to do.
Add a command like !pfcheck ip:port
or/and !pf ip:port
to easily check port forwarding on a specific server.
Maybe also automatically detect server IPs and Adresses with "not working" context and check port forwarding for them. If it is an alphaberic adress detect if its anything than an A record and add a note about it.
If a tag command is run, and there isn't a valid tag, then another tag command is run, and it is a valid tag, the bot should maybe add an alias for the second tag? Maybe only if this happens multiple times, or if a helpful+ approves.
Sentry Issue: GEYSERDISCORDBOT-7P
ContextException: None
at net.dv8tion.jda.api.exceptions.ContextException.here(ContextException.java:54)
at net.dv8tion.jda.api.requests.Request.<init>(Request.java:77)
at net.dv8tion.jda.api.requests.RestFuture.<init>(RestFuture.java:40)
at net.dv8tion.jda.internal.requests.RestActionImpl.submit(RestActionImpl.java:209)
at net.dv8tion.jda.internal.requests.RestActionImpl.complete(RestActionImpl.java:219)
...
(21 additional frame(s) were not displayed)
ErrorResponseException: 10008: Unknown Message
at net.dv8tion.jda.internal.requests.RestActionImpl.complete(RestActionImpl.java:227)
at net.dv8tion.jda.api.requests.RestAction.complete(RestAction.java:632)
at org.geysermc.discordbot.listeners.DeleteHandler.onMessageDelete(DeleteHandler.java:44)
message.delete().complete();
at net.dv8tion.jda.api.hooks.ListenerAdapter.onEvent(ListenerAdapter.java:446)
at net.dv8tion.jda.api.hooks.InterfacedEventManager.handle(InterfacedEventManager.java:96)
...
(17 additional frame(s) were not displayed)
One of the EventListeners had an uncaught exception
Sentry Issue: GEYSERDISCORDBOT-7X
RejectedExecutionException: Task java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@277bf091[Not completed, task = java.util.concurrent.Executors$RunnableAdapter@6eb17ec8[Wrapped task = org.geysermc.discordbot.updates.UpdateManager$$Lambda$434/0x00007fb24b3b95f8@730f9695]] rejected from java.util.concurrent.ScheduledThreadPoolExecutor@fab35b1[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 0]
at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2065)
at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:833)
at java.util.concurrent.ScheduledThreadPoolExecutor.delayedExecute(ScheduledThreadPoolExecutor.java:340)
at java.util.concurrent.ScheduledThreadPoolExecutor.scheduleAtFixedRate(ScheduledThreadPoolExecutor.java:632)
at org.geysermc.discordbot.updates.UpdateManager.setup(UpdateManager.java:63)
GeyserBot.getGeneralThreadPool().scheduleAtFixedRate(UpdateManager::doUpdates, 60L, 60L, TimeUnit.SECONDS);
...
(1 additional frame(s) were not displayed)
Discord's semi-recent 'timeout' feature is currently unsupported by the bot. Similar to kicks and bans, timeouts should be logged in the specified log channel.
A timeout command could also be added, like kicks and bans have. I believe the API allows us to time out users for longer than the official client normally allows us to (28 days instead of 7).
Regex, probably?
Sentry Issue: GEYSERDISCORDBOT-4G
IOException: Permission denied
at java.io.UnixFileSystem.createFileExclusively(UnixFileSystem.java)
at java.io.File.createNewFile(File.java:1043)
at net.dv8tion.jda.api.entities.Message$Attachment.downloadToFile(Message.java:2492)
at net.dv8tion.jda.api.entities.Message$Attachment.downloadToFile(Message.java:2450)
at net.dv8tion.jda.api.entities.Message$Attachment.downloadToFile(Message.java:2411)
...
(20 additional frame(s) were not displayed)
IllegalArgumentException: Cannot create file
at net.dv8tion.jda.api.entities.Message$Attachment.downloadToFile(Message.java:2498)
at net.dv8tion.jda.api.entities.Message$Attachment.downloadToFile(Message.java:2450)
at net.dv8tion.jda.api.entities.Message$Attachment.downloadToFile(Message.java:2411)
at org.geysermc.discordbot.listeners.FileHandler.onMessageReceived(FileHandler.java:85)
at net.dv8tion.jda.api.hooks.ListenerAdapter.onEvent(ListenerAdapter.java:424)
...
(18 additional frame(s) were not displayed)
One of the EventListeners had an uncaught exception
Sentry Issue: GEYSERDISCORDBOT-8
NullPointerException: None
at org.geysermc.discordbot.listeners.LogHandler.onGuildMessageReceived(LogHandler.java:221)
at net.dv8tion.jda.api.hooks.ListenerAdapter.onEvent(ListenerAdapter.java:463)
at net.dv8tion.jda.api.hooks.InterfacedEventManager.handle(InterfacedEventManager.java:96)
at net.dv8tion.jda.internal.hooks.EventManagerProxy.handleInternally(EventManagerProxy.java:88)
at net.dv8tion.jda.internal.hooks.EventManagerProxy.handle(EventManagerProxy.java:70)
...
(14 additional frame(s) were not displayed)
One of the EventListeners had an uncaught exception
Sentry Issue: GEYSERDISCORDBOT-7
NumberFormatException: For input string: "//155.93.172.4/"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:638)
at java.lang.Integer.parseInt(Integer.java:770)
at org.geysermc.discordbot.commands.PingCommand.handle(PingCommand.java:105)
at org.geysermc.discordbot.commands.PingCommand.execute(PingCommand.java:77)
...
(21 additional frame(s) were not displayed)
Exception caught running command ping
Sentry Issue: GEYSERDISCORDBOT-80
IllegalStateException: This message event did not happen in a guild
at net.dv8tion.jda.api.events.message.GenericMessageEvent.getGuild(GenericMessageEvent.java:162)
at org.geysermc.discordbot.listeners.PreviewHandler.onMessageReceived(PreviewHandler.java:56)
NewsChannel previewFeedsChannel = ServerSettings.getPreviewFeedsChannel(event.getGuild());
at net.dv8tion.jda.api.hooks.ListenerAdapter.onEvent(ListenerAdapter.java:446)
at net.dv8tion.jda.api.hooks.InterfacedEventManager.handle(InterfacedEventManager.java:96)
at org.geysermc.discordbot.util.SentryEventManager.handle(SentryEventManager.java:45)
super.handle(event);
...
(16 additional frame(s) were not displayed)
One of the EventListeners had an uncaught exception
Add !help
to list commands
Im trying to setup my sql to the ip 172.17.0.1 so it can actually connect however I've having trouble in the first place since it wants to always use the other ip.
Sentry Issue: GEYSERDISCORDBOT-A
IllegalArgumentException: Name cannot be longer than 256 characters.
at net.dv8tion.jda.api.entities.MessageEmbed$Field.<init>(MessageEmbed.java:964)
at net.dv8tion.jda.api.entities.MessageEmbed$Field.<init>(MessageEmbed.java:988)
at net.dv8tion.jda.api.EmbedBuilder.addField(EmbedBuilder.java:782)
at org.geysermc.discordbot.listeners.ErrorAnalyzer.onMessageReceived(ErrorAnalyzer.java:122)
at net.dv8tion.jda.api.hooks.ListenerAdapter.onEvent(ListenerAdapter.java:463)
...
(17 additional frame(s) were not displayed)
One of the EventListeners had an uncaught exception
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.