locistar / organizer Goto Github PK
View Code? Open in Web Editor NEWA configurable multipurpose bot bringing you organizing commands, multiplayer games, moderation commands and more!
A configurable multipurpose bot bringing you organizing commands, multiplayer games, moderation commands and more!
If user is registered to bot and wants to schedule an event, the user will receive an error.
17:34:04.233 ERROR [boundedElastic-9/locibot]: {Guild ID: 712377054531944510} [event schedule] An unknown error occurred: Cannot invoke "java.lang.Long.longValue()" because the return value of "com.locibot.locibot.database.events_db.bean.DBEventBean.getScheduledDate()" is null
Possible{ApplicationCommandInteractionData{id=Possible{942742961937080342}, name=Possible{event}, type=Possible{1}, resolved=Possible.absent, options=[ApplicationCommandInteractionOptionData{name=schedule, value=Possible.absent, type=1, options=[ApplicationCommandInteractionOptionData{name=event_title, value=Possible{test}, type=3, options=null}, ApplicationCommandInteractionOptionData{name=date, value=Possible{19.04.2022}, type=3, options=null}, ApplicationCommandInteractionOptionData{name=time, value=Possible{18:00}, type=3, options=null}]}], customId=Possible.absent, componentType=Possible.absent, values=null, targetId=Possible.absent}}
java.lang.NullPointerException: Cannot invoke "java.lang.Long.longValue()" because the return value of "com.locibot.locibot.database.events_db.bean.DBEventBean.getScheduledDate()" is null
at com.locibot.locibot.command.event_commands.EventUtil.lambda$privateInvite$1(EventUtil.java:60)
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
Assembly trace from producer [reactor.core.publisher.MonoFlatMap] :
reactor.core.publisher.Mono.flatMap(Mono.java:3047)
com.locibot.locibot.command.event_commands.EventUtil.lambda$privateInvite$2(EventUtil.java:51)
Error has been observed at the following site(s):
|_ Mono.flatMap ⇢ at com.locibot.locibot.command.event_commands.EventUtil.lambda$privateInvite$2(EventUtil.java:51)
|_ Mono.flatMap ⇢ at com.locibot.locibot.command.event_commands.EventUtil.privateInvite(EventUtil.java:50)
|_ Mono.flatMap ⇢ at com.locibot.locibot.command.event_commands.ScheduleEventCmd.lambda$execute$4(ScheduleEventCmd.java:44)
|_ Mono.flatMap ⇢ at com.locibot.locibot.command.event_commands.ScheduleEventCmd.lambda$execute$5(ScheduleEventCmd.java:44)
|_ Flux.concatMap ⇢ at com.locibot.locibot.command.event_commands.ScheduleEventCmd.lambda$execute$8(ScheduleEventCmd.java:43)
|_ Flux.collectList ⇢ at com.locibot.locibot.command.event_commands.ScheduleEventCmd.lambda$execute$8(ScheduleEventCmd.java:55)
|_ Mono.then ⇢ at com.locibot.locibot.command.event_commands.ScheduleEventCmd.lambda$execute$8(ScheduleEventCmd.java:43)
|_ Mono.then ⇢ at com.locibot.locibot.command.event_commands.ScheduleEventCmd.lambda$execute$8(ScheduleEventCmd.java:57)
|_ Mono.flatMap ⇢ at com.locibot.locibot.command.event_commands.ScheduleEventCmd.lambda$execute$8(ScheduleEventCmd.java:58)
|_ Mono.flatMap ⇢ at com.locibot.locibot.command.event_commands.ScheduleEventCmd.execute(ScheduleEventCmd.java:38)
|_ Mono.then ⇢ at com.locibot.locibot.command.event_commands.ScheduleEventCmd.execute(ScheduleEventCmd.java:37)
|_ Mono.flatMap ⇢ at com.locibot.locibot.core.command.CommandProcessor.executeCommand(CommandProcessor.java:80)
|_ Mono.doOnSuccess ⇢ at com.locibot.locibot.core.command.CommandProcessor.executeCommand(CommandProcessor.java:81)
Stack trace:
at com.locibot.locibot.command.event_commands.EventUtil.lambda$privateInvite$1(EventUtil.java:60)
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:125)
at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74)
at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onNext(MonoPeekTerminal.java:180)
at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onNext(FluxMapFuseable.java:295)
at reactor.core.publisher.MonoPublishOn$PublishOnSubscriber.run(MonoPublishOn.java:181)
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68)
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
Create a wiki with all needed information like:
/weather should use the new weather system
Create a command to display detailed event information of an event.
rework i18n
replace all old names and links
add a German translation
Remove token from URL and use Cookie instead (Web)
New Command to plan and schedule events.
This might replace the "/group" commands
/event create [name] [description_optional] [...members]
/event schedule [name] [date] [time]
/event publish [name]
/event delete [name]
/event addUser [User] [User] [User] ...
/moderation setup_bot_messages
/event create
create a new event
members are optional -> owner is always member
create server role @event_$name and add all members to it
to discuss: variable "max_size" needed?
/event schedule
only event owner can schedule a event
event might be displayed in a Discord Chat
privacy: Users might need to confirm first, that they want to get a message from the bot
inform users that a new event has been scheduled
new TaskService -> event reminder
/event publish [name]
an event can only be published, when it is scheduled
only a event owner can publish an event
embed with button to join/ leave the event
when publishing add tag (server role) @event_$name
add user when joining to the server role @event_$name
/event delete [name]
delete an event
if scheduled inform all event members
/moderation setup_bot_messages
Create a message with a button, that will unlock direct messages to a user.
If a user didn't register to the bot, they won't receive private bot messages
Remove support links and change invite link.
Add exception handling to all event commands.
If a user enters a wrong date (schedule), time format, or if the user enters anything wrong, tell the user the correct format and do not throw an exception.
blocked by #96
Remove all plain text from the code and move it to i18n
The private key of an event is at the moment the event title.
This might be a problem, because users from two different guilds/servers can not create the same event.
ToDo:
Issue:
The user is not able to unregister from a different server, though he is useing the same bot.
Therefore move the DB entry weatherRegistered to DBUser.
The WeatherApp is not displaying the correct time (wrong weather-time-connection).
The LocalDate should be used insead of the ISO date.
Create a new graph to display both rain volume and rain probability in one graph.
This will replace the RainMap.
Issue:
If a user is creating an event with the same name, he is only able to edit/ schedule the first one.
Also deleting events, that exists with the same name could lead to issues, where the event id is not deleted from DBUser.
Possible Solutions:
chnage nickname of user
change nickname of all users with role x
reset nickname of all users with role x
moderation group
All event commands got updated and some new commands were added.
ToDos:
New command, so that a user is able to view all events, that he is invited to.
Blocked by #96
Create a new command, so that the event owner can list all of his created and planned events.
Blocked by #96
Publish the bot to all websites listed here: https://github.com/Shadorc/Shadbot/wiki/Build-&-Configure
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.