Welcome to my corner of this digital domain!
I love music, technology, games.
I want to learn new things
- Indie/Hobbyist Software Dev
- Dev for an awesome survey site (Rewards1)
- Composer
A Multi-purpose bot for discord. Tailor it for your specific guild, and create your own modules. Includes a core module for custom text-based commands with support for advanced functionality
License: MIT License
Welcome to my corner of this digital domain!
I love music, technology, games.
I want to learn new things
Description
RSKill will show a test kill screen that will act like it restarts AND triggers a natural stopbot command.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Program should ALWAYS restart after calling rskill.
Additional context
This is very random, and I am actively looking for ways to fix.
These self-created issues are for documentation purposes.
Full description
Updating ModularBOT via installer will overwrite existing startup.core
To Reproduce
Steps to reproduce the behavior:
Expected behavior
startup.core is to be left untouched by installer.
Desktop:
Workaround (until fixed next version)
Always backup your data prior to any updates. Next version will fix this issue via installer.
I am working on a fix for that. As of right now, do not use them. As we all know, the CoreScript is heavily based on BATCH syntax, but integrates custom features. Comments will eventually take on three forms.
:: double colon
- Batch
//double forward-slash
- C# (and others)
REM <comment>
- batch
Overview
Application will randomly fail to write permissions.cnf due to it "already being open".
To Reproduce
Expected behavior
File writing doesn't fail randomly
Desktop (please complete the following information):
Additional context
A Vast majority of these File IO errors take place during guild synchronization.
Problem Description
SET /P only responds to the last caller of any command invoking that script function. This leads to an easy hijacking of the original call
To Reproduce
Steps to reproduce the behavior:
ECHO Test #1:
SET /P prompt1_1=This is question one. Have someone call !tprompt2, then answer this prompt. Observe that you no longer have control of this prompt after the second one is called.
ECHO Prompt 1 answer 1: %prompt1_1%
SET /P prompt1_2=This is question two of prompt 1. Do you read me?
ECHO Prompt 1 answer 2: %prompt1_2%
!addcmd tprompt2 false SCRIPT
ECHO Test #2:
SET /P prompt2_1=This is question one of prompt 2. Observe that you will have control of BOTH prompts.
ECHO Prompt 2 answer 1: %prompt2_1%
SET /P prompt2_2=This is question 2 of prompt 2. Do you read me?
ECHO Prompt 2 answer 2: %prompt2_2%
!tprompt1
!tprompt2
Expected behavior
Both commands should accept prompt replies from the calling users respectively, at the same time.
Affected Versions
v2.0.1155.2346 Onward.
Additional context
This leaves the entire system un-usable if the bot is in multiple servers calling the commands at the same time. A solution is being worked on at this time.
Describe the bug
Module Service constructors are called more than once on startup.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
All modules with service dependencies, should only call said dependency's constructor once.
Additional context
There's a super rad, and easy work around to the problem. bool doonce;
. BUT I'm making note of this if anyone out there has any idea as to why this happens.
Describe the bug
Occasionally the Console will output and cause UI to garble. This has been an on-going issue since v1.0.
Occasionally Console position isn't registered, so ConsoleIO will not properly set cursor position back when issuing restart or shutdown commands. Some Command input text is also left on screen if it exceeds the length of the output result, that is supposed to overwrite what the user input.
Text will also garble if the window is resized to larger than buffer. Windows 10 only
To Reproduce
Unfortunately this seems to happen at random. Typically if console is resized, or if too many write events try to happen at the same time.
Expected behavior
Console output is CLEAN, and free of line mismatching.
ScreenBusy
, and Busy
wait conditions were added to try and minimize this, but this does not always work.
Desktop Environments:
Additional context
Add any other context about the problem here.
Description
IF Statments will always return FALSE if you compare a variable with a string with spaces in it.
To Reproduce
SET init=this is a test.
IF %init%==this is a test. ECHO This won't be said
Expected behavior
String compare should consider the FULL string rather than one word.
Affected Versions
Known workaround
Only compare variables. IE:
SET /P user_response=enter your nickname
SET /h easteregg=The King Eagle
if %user_response%==%easteregg% ECHO Oh you are developer!
Description
The userlist is only returning one user (the bot.) This has a cascading effect on modules requiring a user as a parameter.
To Reproduce
From console: access any guild's userlist.
Expected behavior
ALL USERS TO BE SHOWN IN THE USER LIST
Additional context
This is likely an API-side issue.
Description
The program shuts down due to a network connection issue. On restart, the app will lock up at the Discord Discord.Net v2.2.0 (API v6)
log entry. This is likely an issue with discord's API during the login call.
To Reproduce
You can't reliably reproduce an issue related to a discord/network outage.
Expected behavior
The program is expected to time out and try again if the instance isn't fully started in a reasonable time.
Affected version
v2.4.33.3241 and below
Additional context
TODO: Try moving timeout start before discordNET class initialization.
Description
Running the users command will list most, but not all users on the first try. (For large guilds)
To Reproduce
Steps to reproduce the behavior:
users <guild id>
Expected behavior
The list should be complete on the first call.
Additional context
This has an easy workaround, and will probably not be solved immediately.
Description
CoreScript engine will throw an Unexpected Function
error in startup.core
if the file contains white space/blank line.
To Reproduce
Steps to reproduce the behavior:
startup.core
by inserting a blank line anywhere.Expected behavior
Whitespaced or blank lines are to be ignored.
Additional notes
This self-assigned issue was created for my own documentation. It will be fixed in the next release, after test instance finishes verification process for discordbots
Description
There is a potentially critical scripting exploit that can allow the creation of a custom command that any user can execute and run live-typed scripts.
To Reproduce
!addcmd echo false {params}
!echo SCRIPT ```DOS
echo I am executing a live script.
echo I also have unrestricted access to scripting function.
botstatus Oops! Someone left a huge hole in their permission system!
```
Expected behavior
The script engine should restrict certain functions to specific access level requirements.
Additional context
This is going to be fixed soon but until then proposed workaround:
Summary
Any module command loaded from modules
folder will fail to execute in startup.core
To Reproduce
startup.core
CMD polljoin <your guildID> <your channel id>
)Expected behavior
Command debug messages and actions are executed as requested.
Resolution
After adding a FirstChanceException handler, it was noted that the requested dependency was not found, and the module could not be loaded. This was caused by calling module loader after CustomCommandManager (thus including CoreScript) was already fed with a previously built service provider.
Describe the bug
ConsoleIO's modal dialogs are being written under by consoleIO.WriteEntry after you close a nested dialog.
To Reproduce
Steps to reproduce the behavior:
guilds
[ENTER]
[ENTER]
[E]
Expected behavior
ConsoleIO is to respect modal check, and keep console logs from appearing on the sub-screens.
Screenshots
https://kingeagle.rms0.org/rZSHTlfB.png
Affected Versions
ALL
Is your feature request related to a problem? Please describe.
YES. As ModularBOT is added to more guilds, the risk of running out of space on a shard increases.
Proposed Solution
Have ModularBOT Determine how many shards should be needed BEFORE connecting to the gateway.
Current alternative/workaround
As it stands right now, it's Trial and error. If bot fails to start, Simply open install directory, and edit file modbot-config.cnf
and increase ShardCount
until gateway is happy.
Additional context
SEE //TODO:... DiscordNET.cs --- line: 69
Located in ModularBOT.csproj
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.