├── .gitattributes ├── .github ├── FUNDING.yml └── workflows │ └── gradle.yml ├── .gitignore ├── .travis.yml ├── LICENSE.txt ├── README.md ├── SECURITY.md ├── banner-social.png ├── banner.png ├── build.gradle ├── fonts └── FiraCode-Medium.ttf ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── ide_emojis ├── default │ ├── blframe.png │ ├── brframe.png │ ├── btabbed_frame.png │ ├── ctabbed_frame.png │ ├── ltab_corner.png │ ├── ltab_corner_selected.png │ ├── ltab_separator.png │ ├── ltab_separator_selected.png │ ├── ltabbed_frame.png │ ├── rtab_corner.png │ ├── rtab_corner_selected.png │ ├── rtab_separator.png │ ├── rtab_separator_selected.png │ ├── rtabbed_frame.png │ ├── tlframe.png │ ├── trframe.png │ ├── ttabbed_frame.png │ └── ttabbed_frame_selected.png ├── delete.png ├── intellij │ ├── selected_bl.png │ ├── selected_bottom.png │ ├── selected_br.png │ ├── selected_ml.png │ ├── selected_mr.png │ ├── selected_side_bottom.png │ ├── selected_side_middle.png │ ├── selected_side_top.png │ ├── selected_tl.png │ ├── selected_top.png │ └── selected_tr.png ├── select.png └── unselected.png ├── image_inputs ├── intellij_base.png └── welcome_text.png ├── keyboard_emojis ├── alt.png ├── alt_active.png ├── backspace.png ├── caps_lock.png ├── caps_lock_active.png ├── context.png ├── ctrl.png ├── ctrl_active.png ├── cursor.png ├── del.png ├── down.png ├── end.png ├── enter.png ├── enterl.png ├── enterr.png ├── fn.png ├── fn_active.png ├── home.png ├── icon.png ├── ins.png ├── left.png ├── padding.png ├── pg_down.png ├── pg_up.png ├── right.png ├── shift.png ├── shiftl.png ├── shiftr.png ├── space.png ├── spacec.png ├── spacel.png ├── spacer.png ├── tab.png └── up.png ├── logo.png ├── mockup-display.html ├── mockup.png ├── settings.gradle ├── src ├── main │ ├── antlr │ │ ├── JavaScriptLexer.g4 │ │ └── JavaScriptParser.g4 │ ├── java │ │ └── com │ │ │ └── uddernetworks │ │ │ └── emojide │ │ │ ├── data │ │ │ ├── BasicDatabaseManager.java │ │ │ ├── BasicSQLBinder.java │ │ │ ├── DatabaseManager.java │ │ │ ├── GenericMap.java │ │ │ ├── SQLBinder.java │ │ │ ├── SQLBound.java │ │ │ └── document │ │ │ │ ├── BasicDocument.java │ │ │ │ ├── DefaultDocumentManager.java │ │ │ │ ├── Document.java │ │ │ │ └── DocumentManager.java │ │ │ ├── discord │ │ │ ├── DefaultDocumentTabController.java │ │ │ ├── DocumentTabController.java │ │ │ ├── ImageConverter.java │ │ │ ├── commands │ │ │ │ ├── CommandHelp.java │ │ │ │ ├── EmojiCommand.java │ │ │ │ ├── HelpCommand.java │ │ │ │ ├── IDECommand.java │ │ │ │ ├── PurgeCommand.java │ │ │ │ ├── choosable │ │ │ │ │ ├── ChoosingList.java │ │ │ │ │ ├── ChoosingListManager.java │ │ │ │ │ ├── DefaultChoosingList.java │ │ │ │ │ └── DefaultChoosingListManager.java │ │ │ │ └── manager │ │ │ │ │ ├── Argument.java │ │ │ │ │ ├── ArgumentError.java │ │ │ │ │ ├── ArgumentList.java │ │ │ │ │ ├── Command.java │ │ │ │ │ ├── CommandArg.java │ │ │ │ │ ├── CommandManager.java │ │ │ │ │ ├── CommandResult.java │ │ │ │ │ └── EmbedUtils.java │ │ │ ├── emoji │ │ │ │ ├── DefaultEmojiManager.java │ │ │ │ ├── Emoji.java │ │ │ │ ├── EmojiManager.java │ │ │ │ ├── Group.java │ │ │ │ └── StaticEmoji.java │ │ │ └── font │ │ │ │ ├── DefaultFontManager.java │ │ │ │ ├── Font.java │ │ │ │ └── FontManager.java │ │ │ ├── event │ │ │ ├── Cancellable.java │ │ │ ├── Event.java │ │ │ ├── EventRaiser.java │ │ │ ├── Handler.java │ │ │ ├── Priority.java │ │ │ └── Raisable.java │ │ │ ├── generator │ │ │ ├── DefaultEmojiGenerator.java │ │ │ ├── EmojiGenerator.java │ │ │ └── LetterGenerator.java │ │ │ ├── gui │ │ │ ├── CustomRenderedContainerFrame.java │ │ │ ├── EditableDynamicTextFrame.java │ │ │ ├── EditableStaticTextFrame.java │ │ │ ├── EmptyContainerFrame.java │ │ │ ├── HighlightedTextFrame.java │ │ │ ├── StaticTextFrame.java │ │ │ ├── TextPromptFrame.java │ │ │ ├── WelcomeFrame.java │ │ │ ├── components │ │ │ │ ├── CachedDisplayer.java │ │ │ │ ├── ComponentUtils.java │ │ │ │ ├── DefaultEmojiComponent.java │ │ │ │ ├── DefaultEmojiContainer.java │ │ │ │ ├── DefaultPositionedComponent.java │ │ │ │ ├── Displayer.java │ │ │ │ ├── EmojiComponent.java │ │ │ │ ├── EmojiContainer.java │ │ │ │ ├── InvalidComponentException.java │ │ │ │ ├── MockupImageDisplayer.java │ │ │ │ ├── MockupWebpageDisplayer.java │ │ │ │ ├── PositionedComponent.java │ │ │ │ ├── output │ │ │ │ │ ├── DefaultOutputFrame.java │ │ │ │ │ ├── IntelliJOutputFrame.java │ │ │ │ │ ├── OutputFrame.java │ │ │ │ │ └── OutputFrameTheme.java │ │ │ │ ├── styled │ │ │ │ │ ├── StyleUtils.java │ │ │ │ │ ├── StyledEmojiComponent.java │ │ │ │ │ └── StyledEmojiContainer.java │ │ │ │ └── theme │ │ │ │ │ ├── ThemeDependantRendering.java │ │ │ │ │ └── ThemeImplementor.java │ │ │ ├── render │ │ │ │ ├── RenderAction.java │ │ │ │ ├── RenderBreakpoint.java │ │ │ │ ├── RenderEngine.java │ │ │ │ └── RenderEntry.java │ │ │ ├── tabbed │ │ │ │ ├── DefaultTabbedFrame.java │ │ │ │ ├── IntelliJTabbedFrame.java │ │ │ │ ├── TabbedFrame.java │ │ │ │ ├── TabbedFrameConstants.java │ │ │ │ └── TabbedFrameTheme.java │ │ │ ├── tabs │ │ │ │ └── Tab.java │ │ │ ├── text │ │ │ │ ├── AutoGrowArrayList.java │ │ │ │ ├── DefaultTextBlock.java │ │ │ │ ├── DynamicTextBlock.java │ │ │ │ └── TextBlock.java │ │ │ └── theme │ │ │ │ ├── DefaultThemeManager.java │ │ │ │ ├── Theme.java │ │ │ │ └── ThemeManager.java │ │ │ ├── ide │ │ │ ├── ConsolePiper.java │ │ │ ├── FunctionController.java │ │ │ ├── LanguageHighlighter.java │ │ │ └── lexer │ │ │ │ └── javascript │ │ │ │ ├── JavaScriptBaseLexer.java │ │ │ │ └── JavaScriptBaseParser.java │ │ │ ├── keyboard │ │ │ ├── KeyPressEvent.java │ │ │ ├── KeyboardInputManager.java │ │ │ ├── KeyboardRaisable.java │ │ │ └── SimpleKeyboardInputManager.java │ │ │ ├── main │ │ │ ├── ChoosableEnum.java │ │ │ ├── ConfigManager.java │ │ │ ├── CustomPool.java │ │ │ ├── DefaultConfigManager.java │ │ │ ├── EmojIDE.java │ │ │ └── Thread.java │ │ │ ├── utils │ │ │ └── Commandline.java │ │ │ └── web │ │ │ ├── BasicWebCallback.java │ │ │ ├── BasicWebCallbackHandler.java │ │ │ ├── CommandCallback.java │ │ │ ├── SimpleWebListener.java │ │ │ ├── WebCallback.java │ │ │ ├── WebCallbackHandler.java │ │ │ └── WebListener.java │ └── resources │ │ ├── config.conf │ │ ├── createDocument.sql │ │ ├── documents.sql │ │ ├── getDocument.sql │ │ ├── getDocuments.sql │ │ ├── log4j.properties │ │ ├── log4j.xml │ │ ├── modifyDocument.sql │ │ └── removeDocument.sql └── test │ └── java │ └── com │ └── uddernetworks │ └── emojide │ └── gui │ └── text │ └── AutoGrowArrayListTest.java └── welcome_emojis └── name ├── 0w0.png ├── 0w1.png ├── 1w0.png ├── 1w1.png ├── 2w0.png ├── 2w1.png ├── 3w0.png ├── 3w1.png ├── 4w0.png ├── 4w1.png ├── 5w0.png ├── 5w1.png ├── 6w0.png ├── 6w1.png ├── 7w0.png └── 7w1.png /.gitattributes: -------------------------------------------------------------------------------- 1 | mockup-display.html linguist-generated=true 2 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: ['https://paypal.me/RubbaBoy'] 13 | -------------------------------------------------------------------------------- /.github/workflows/gradle.yml: -------------------------------------------------------------------------------- 1 | name: Java CI 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | 8 | jobs: 9 | Ubuntu: 10 | name: Run Ubuntu 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: actions/checkout@v1 14 | - name: Set up JDK 12 15 | uses: actions/setup-java@v1 16 | with: 17 | java-version: 12 18 | - name: Print gradle 19 | run: | 20 | chmod +x gradlew 21 | ./gradlew --version 22 | - name: Test 23 | run: ./gradlew test 24 | - name: Clone Javadoc 25 | run: | 26 | git config --global user.email "nobody@ms-paint-i.de" 27 | git config --global user.name "GitHub Actions" 28 | mkdir pages 29 | cd pages 30 | git clone https://github.com/RubbaBoy/EmojIDE-javadocs . 31 | rm -rf * 32 | echo Javadocs cloned to: 33 | pwd 34 | cd ../ 35 | - name: Javadoc 36 | run: | 37 | ./gradlew javadoc 38 | cd build/docs 39 | mv javadoc/* ../../pages 40 | cd ../../pages 41 | echo "docs.xn--is8hfy.ws" > CNAME 42 | - name: Push Javadoc 43 | run: | 44 | cd pages 45 | git add . 46 | git commit -m "Update docs from RubbaBoy/EmojIDE" 47 | git push "https://${{ secrets.TOKEN }}@github.com/RubbaBoy/EmojIDE-javadocs.git" master:master 48 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .gradle/ 2 | .idea/ 3 | emojis/ 4 | build/ 5 | generated_emojis/ 6 | secret.conf 7 | *.log 8 | executing/ 9 | database/ 10 | ide_emojis/intellij/gen 11 | *.pdn 12 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | os: windows 2 | language: shell 3 | filter_secrets: false 4 | cache: false 5 | before_install: 6 | - choco install openjdk -y 7 | - wget http://services.gradle.org/distributions/gradle-5.2.1-bin.zip 8 | - mkdir 'c:\\emojide' 9 | - unzip -qq gradle-5.2.1-bin.zip -d /c/emojide/gradle 10 | - export GRADLE_HOME=/c/emojide/gradle/gradle-5.2.1 11 | - export JAVA_HOME="C:\\Program Files\\OpenJDK\\jdk-12.0.2" 12 | - export PATH=$GRADLE_HOME/bin:$PATH 13 | - export PATH=$JAVA_HOME/bin:$PATH 14 | - set TERM=dumb 15 | script: 16 | - gradle clean install cleanTest test --no-daemon 17 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Adam Yarris 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
11 | 12 | Wiki | 13 | Docs | 14 | Reddit | 15 | Demo | 16 | Hackathon 17 | 18 |
19 | 20 | 21 | 22 | After completing [MS Paint IDE](https://ms-paint-i.de/), I realized that moving from Discord to talk with people all the way to Paint to program was relatively exhausting. I then set to make EmojIDE, an IDE entirely in Discord Emojis. This project strives to increase communication among developers by making Discord the cool to both program in and communicate with other developers. 23 | 24 |  25 | 26 | EmojIDE in the IntelliJ theme 27 | 28 | ## Features 29 | 30 | EmojIDE is a Discord bot created for the [r/ProgrammerHumor](https://www.reddit.com/r/ProgrammerHumor/) [hackathon](https://www.programmerhumor.org/Hackathon), lasting a month. This means that the bot does currently lack some features revolving around multi-user usage, and I am trying to use the time limit as justification for my laziness. The current features actually implemented in the bot, however, are: 31 | 32 | - 2050+ emojis across 42 Discord servers 33 | - Including 2 fonts (With expandability) in 8 color variations each 34 | - Easy inspectability, bulk deletion, and other means of management of emojis 35 | - Never-before-seen I/O, allowing for: 36 | - No reactions for any primary Emoji I/O 37 | - A full ANSI keyboard in emojis, with < 1s response time (Not including render engine throttles) 38 | - Help menus/embeds navigable via clicking on options 39 | - Selectable elements of an enum/list via emojis for settings 40 | - High expandability 41 | - A highly advanced Emoji based rendering framework 42 | - Highly expandable with little effort 43 | - Advanced theming capabilities 44 | - Current themes are EmojIDE and IntelliJ 45 | - A render engine to handle Discord API interactions 46 | - 3 Displayer implementations, allowing for: 47 | - Normal emoji rendering in a channel 48 | - Rendering immediately to an image (As rapid development can be bottlenecked by Discord's rate limiting) 49 | - Rendering to a local Discord clone for an exact preview immediately 50 | - Advanced, custom command framework 51 | - Custom event framework 52 | - HSQLDB Integration to store code files 53 | - Execution and full syntax highlighting of JavaScript 54 | 55 | ## Demo 56 | 57 | Here's a demo video of starting the IDE, changing some stuff, and writing a small program: 58 | 59 | [](https://youtu.be/06pMgnB6e6o) -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Supported Versions 4 | 5 | There's only one released version, so it's the only supported one. 6 | 7 | | Version | Supported | 8 | | ------- | ------------------ | 9 | | 1.0.0 | :white_check_mark: | 10 | 11 | ## Reporting a Vulnerability 12 | 13 | If you find something that looks like it could cause some issues, either contact me via email at [adam@yarr.is](mailto:adam@yarr.is) or on Discord, `RubbaBoy#2832`. This doesn't store any data aside from the data you type in it and your Discord user ID, and can be deleted in the app via the Control + X keybind in the IDE. Any and all security issues will be addressed though. 14 | -------------------------------------------------------------------------------- /banner-social.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/banner-social.png -------------------------------------------------------------------------------- /banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/banner.png -------------------------------------------------------------------------------- /build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | id 'maven' 4 | id 'application' 5 | id 'antlr' 6 | } 7 | 8 | group 'com.uddernetworks.emojide' 9 | version '1.0.0' 10 | 11 | sourceCompatibility = 12 12 | 13 | mainClassName = 'com.uddernetworks.emojide.main.EmojIDE' 14 | 15 | repositories { 16 | mavenCentral() 17 | jcenter() 18 | } 19 | 20 | dependencies { 21 | testImplementation('org.junit.jupiter:junit-jupiter:5.4.2') 22 | implementation 'net.dv8tion:JDA:4.BETA.0_32' 23 | 24 | implementation 'mysql:mysql-connector-java:5.1.6' 25 | implementation 'com.zaxxer:HikariCP:3.3.1' 26 | implementation 'org.hsqldb:hsqldb:2.4.1' 27 | 28 | implementation 'org.slf4j:slf4j-api:1.7.25' 29 | implementation 'org.slf4j:slf4j-log4j12:1.7.25' 30 | 31 | implementation 'org.apache.commons:commons-text:1.7' 32 | implementation 'com.github.jhg023:SimpleNet:1.4.14' 33 | implementation 'com.electronwill.night-config:hocon:3.6.0' 34 | implementation 'commons-collections:commons-collections:3.2.2' 35 | 36 | implementation 'org.antlr:antlr4-runtime:4.7.2' 37 | antlr 'org.antlr:antlr4:4.7.2' 38 | } 39 | -------------------------------------------------------------------------------- /fonts/FiraCode-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/fonts/FiraCode-Medium.ttf -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Aug 02 10:08:44 EDT 2019 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.2.1-all.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- 1 | @if "%DEBUG%" == "" @echo off 2 | @rem ########################################################################## 3 | @rem 4 | @rem Gradle startup script for Windows 5 | @rem 6 | @rem ########################################################################## 7 | 8 | @rem Set local scope for the variables with windows NT shell 9 | if "%OS%"=="Windows_NT" setlocal 10 | 11 | set DIRNAME=%~dp0 12 | if "%DIRNAME%" == "" set DIRNAME=. 13 | set APP_BASE_NAME=%~n0 14 | set APP_HOME=%DIRNAME% 15 | 16 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 17 | set DEFAULT_JVM_OPTS="-Xmx64m" 18 | 19 | @rem Find java.exe 20 | if defined JAVA_HOME goto findJavaFromJavaHome 21 | 22 | set JAVA_EXE=java.exe 23 | %JAVA_EXE% -version >NUL 2>&1 24 | if "%ERRORLEVEL%" == "0" goto init 25 | 26 | echo. 27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 28 | echo. 29 | echo Please set the JAVA_HOME variable in your environment to match the 30 | echo location of your Java installation. 31 | 32 | goto fail 33 | 34 | :findJavaFromJavaHome 35 | set JAVA_HOME=%JAVA_HOME:"=% 36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 37 | 38 | if exist "%JAVA_EXE%" goto init 39 | 40 | echo. 41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 42 | echo. 43 | echo Please set the JAVA_HOME variable in your environment to match the 44 | echo location of your Java installation. 45 | 46 | goto fail 47 | 48 | :init 49 | @rem Get command-line arguments, handling Windows variants 50 | 51 | if not "%OS%" == "Windows_NT" goto win9xME_args 52 | 53 | :win9xME_args 54 | @rem Slurp the command line arguments. 55 | set CMD_LINE_ARGS= 56 | set _SKIP=2 57 | 58 | :win9xME_args_slurp 59 | if "x%~1" == "x" goto execute 60 | 61 | set CMD_LINE_ARGS=%* 62 | 63 | :execute 64 | @rem Setup the command line 65 | 66 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 67 | 68 | @rem Execute Gradle 69 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 70 | 71 | :end 72 | @rem End local scope for the variables with windows NT shell 73 | if "%ERRORLEVEL%"=="0" goto mainEnd 74 | 75 | :fail 76 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 77 | rem the _cmd.exe /c_ return code! 78 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 79 | exit /b 1 80 | 81 | :mainEnd 82 | if "%OS%"=="Windows_NT" endlocal 83 | 84 | :omega 85 | -------------------------------------------------------------------------------- /ide_emojis/default/blframe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/ide_emojis/default/blframe.png -------------------------------------------------------------------------------- /ide_emojis/default/brframe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/ide_emojis/default/brframe.png -------------------------------------------------------------------------------- /ide_emojis/default/btabbed_frame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/ide_emojis/default/btabbed_frame.png -------------------------------------------------------------------------------- /ide_emojis/default/ctabbed_frame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/ide_emojis/default/ctabbed_frame.png -------------------------------------------------------------------------------- /ide_emojis/default/ltab_corner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/ide_emojis/default/ltab_corner.png -------------------------------------------------------------------------------- /ide_emojis/default/ltab_corner_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/ide_emojis/default/ltab_corner_selected.png -------------------------------------------------------------------------------- /ide_emojis/default/ltab_separator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/ide_emojis/default/ltab_separator.png -------------------------------------------------------------------------------- /ide_emojis/default/ltab_separator_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/ide_emojis/default/ltab_separator_selected.png -------------------------------------------------------------------------------- /ide_emojis/default/ltabbed_frame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/ide_emojis/default/ltabbed_frame.png -------------------------------------------------------------------------------- /ide_emojis/default/rtab_corner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/ide_emojis/default/rtab_corner.png -------------------------------------------------------------------------------- /ide_emojis/default/rtab_corner_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/ide_emojis/default/rtab_corner_selected.png -------------------------------------------------------------------------------- /ide_emojis/default/rtab_separator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/ide_emojis/default/rtab_separator.png -------------------------------------------------------------------------------- /ide_emojis/default/rtab_separator_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/ide_emojis/default/rtab_separator_selected.png -------------------------------------------------------------------------------- /ide_emojis/default/rtabbed_frame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/ide_emojis/default/rtabbed_frame.png -------------------------------------------------------------------------------- /ide_emojis/default/tlframe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/ide_emojis/default/tlframe.png -------------------------------------------------------------------------------- /ide_emojis/default/trframe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/ide_emojis/default/trframe.png -------------------------------------------------------------------------------- /ide_emojis/default/ttabbed_frame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/ide_emojis/default/ttabbed_frame.png -------------------------------------------------------------------------------- /ide_emojis/default/ttabbed_frame_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/ide_emojis/default/ttabbed_frame_selected.png -------------------------------------------------------------------------------- /ide_emojis/delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/ide_emojis/delete.png -------------------------------------------------------------------------------- /ide_emojis/intellij/selected_bl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/ide_emojis/intellij/selected_bl.png -------------------------------------------------------------------------------- /ide_emojis/intellij/selected_bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/ide_emojis/intellij/selected_bottom.png -------------------------------------------------------------------------------- /ide_emojis/intellij/selected_br.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/ide_emojis/intellij/selected_br.png -------------------------------------------------------------------------------- /ide_emojis/intellij/selected_ml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/ide_emojis/intellij/selected_ml.png -------------------------------------------------------------------------------- /ide_emojis/intellij/selected_mr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/ide_emojis/intellij/selected_mr.png -------------------------------------------------------------------------------- /ide_emojis/intellij/selected_side_bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/ide_emojis/intellij/selected_side_bottom.png -------------------------------------------------------------------------------- /ide_emojis/intellij/selected_side_middle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/ide_emojis/intellij/selected_side_middle.png -------------------------------------------------------------------------------- /ide_emojis/intellij/selected_side_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/ide_emojis/intellij/selected_side_top.png -------------------------------------------------------------------------------- /ide_emojis/intellij/selected_tl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/ide_emojis/intellij/selected_tl.png -------------------------------------------------------------------------------- /ide_emojis/intellij/selected_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/ide_emojis/intellij/selected_top.png -------------------------------------------------------------------------------- /ide_emojis/intellij/selected_tr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/ide_emojis/intellij/selected_tr.png -------------------------------------------------------------------------------- /ide_emojis/select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/ide_emojis/select.png -------------------------------------------------------------------------------- /ide_emojis/unselected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/ide_emojis/unselected.png -------------------------------------------------------------------------------- /image_inputs/intellij_base.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/image_inputs/intellij_base.png -------------------------------------------------------------------------------- /image_inputs/welcome_text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/image_inputs/welcome_text.png -------------------------------------------------------------------------------- /keyboard_emojis/alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/keyboard_emojis/alt.png -------------------------------------------------------------------------------- /keyboard_emojis/alt_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/keyboard_emojis/alt_active.png -------------------------------------------------------------------------------- /keyboard_emojis/backspace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/keyboard_emojis/backspace.png -------------------------------------------------------------------------------- /keyboard_emojis/caps_lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/keyboard_emojis/caps_lock.png -------------------------------------------------------------------------------- /keyboard_emojis/caps_lock_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/keyboard_emojis/caps_lock_active.png -------------------------------------------------------------------------------- /keyboard_emojis/context.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/keyboard_emojis/context.png -------------------------------------------------------------------------------- /keyboard_emojis/ctrl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/keyboard_emojis/ctrl.png -------------------------------------------------------------------------------- /keyboard_emojis/ctrl_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/keyboard_emojis/ctrl_active.png -------------------------------------------------------------------------------- /keyboard_emojis/cursor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/keyboard_emojis/cursor.png -------------------------------------------------------------------------------- /keyboard_emojis/del.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/keyboard_emojis/del.png -------------------------------------------------------------------------------- /keyboard_emojis/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/keyboard_emojis/down.png -------------------------------------------------------------------------------- /keyboard_emojis/end.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/keyboard_emojis/end.png -------------------------------------------------------------------------------- /keyboard_emojis/enter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/keyboard_emojis/enter.png -------------------------------------------------------------------------------- /keyboard_emojis/enterl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/keyboard_emojis/enterl.png -------------------------------------------------------------------------------- /keyboard_emojis/enterr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/keyboard_emojis/enterr.png -------------------------------------------------------------------------------- /keyboard_emojis/fn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/keyboard_emojis/fn.png -------------------------------------------------------------------------------- /keyboard_emojis/fn_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/keyboard_emojis/fn_active.png -------------------------------------------------------------------------------- /keyboard_emojis/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/keyboard_emojis/home.png -------------------------------------------------------------------------------- /keyboard_emojis/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/keyboard_emojis/icon.png -------------------------------------------------------------------------------- /keyboard_emojis/ins.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/keyboard_emojis/ins.png -------------------------------------------------------------------------------- /keyboard_emojis/left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/keyboard_emojis/left.png -------------------------------------------------------------------------------- /keyboard_emojis/padding.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/keyboard_emojis/padding.png -------------------------------------------------------------------------------- /keyboard_emojis/pg_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/keyboard_emojis/pg_down.png -------------------------------------------------------------------------------- /keyboard_emojis/pg_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/keyboard_emojis/pg_up.png -------------------------------------------------------------------------------- /keyboard_emojis/right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/keyboard_emojis/right.png -------------------------------------------------------------------------------- /keyboard_emojis/shift.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/keyboard_emojis/shift.png -------------------------------------------------------------------------------- /keyboard_emojis/shiftl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/keyboard_emojis/shiftl.png -------------------------------------------------------------------------------- /keyboard_emojis/shiftr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/keyboard_emojis/shiftr.png -------------------------------------------------------------------------------- /keyboard_emojis/space.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/keyboard_emojis/space.png -------------------------------------------------------------------------------- /keyboard_emojis/spacec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/keyboard_emojis/spacec.png -------------------------------------------------------------------------------- /keyboard_emojis/spacel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/keyboard_emojis/spacel.png -------------------------------------------------------------------------------- /keyboard_emojis/spacer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/keyboard_emojis/spacer.png -------------------------------------------------------------------------------- /keyboard_emojis/tab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/keyboard_emojis/tab.png -------------------------------------------------------------------------------- /keyboard_emojis/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/keyboard_emojis/up.png -------------------------------------------------------------------------------- /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/logo.png -------------------------------------------------------------------------------- /mockup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubbaBoy/EmojIDE/0d8595934e428e6bbb5ba7ace0772d21099a2b23/mockup.png -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'EmojIDE' 2 | 3 | -------------------------------------------------------------------------------- /src/main/java/com/uddernetworks/emojide/data/BasicSQLBinder.java: -------------------------------------------------------------------------------- 1 | package com.uddernetworks.emojide.data; 2 | 3 | import org.slf4j.Logger; 4 | import org.slf4j.LoggerFactory; 5 | 6 | import java.io.BufferedReader; 7 | import java.io.IOException; 8 | import java.io.InputStreamReader; 9 | import java.util.Arrays; 10 | import java.util.Objects; 11 | import java.util.stream.Collectors; 12 | 13 | public class BasicSQLBinder implements SQLBinder { 14 | 15 | private static Logger LOGGER = LoggerFactory.getLogger(BasicSQLBinder.class); 16 | 17 | @Override 18 | public void createBindings(Object object) { 19 | Arrays.stream(object.getClass().getDeclaredFields()) 20 | .parallel() 21 | .filter(field -> field.isAnnotationPresent(SQLBound.class)) 22 | .filter(field -> field.getType().equals(String.class)) 23 | .forEach(field -> { 24 | var sqlBoundFile = field.getAnnotation(SQLBound.class).file(); 25 | var sqlFile = (sqlBoundFile.isBlank() ? field.getName() : sqlBoundFile) + ".sql"; 26 | field.setAccessible(true); 27 | try { 28 | field.set(object, getQuery(sqlFile)); 29 | } catch (IllegalAccessException | IOException e) { 30 | LOGGER.error("Error setting field " + field.getName() + " in " + object.getClass().getSimpleName(), e); 31 | } 32 | }); 33 | } 34 | 35 | @Override 36 | public String getQuery(String name) throws IOException { 37 | LOGGER.info("Resource {}", name); 38 | var resource = Objects.requireNonNull(getClass().getClassLoader().getResource(name)); 39 | 40 | try (var reader = new BufferedReader(new InputStreamReader(resource.openStream()))) { 41 | return reader.lines().collect(Collectors.joining("\n")); 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /src/main/java/com/uddernetworks/emojide/data/DatabaseManager.java: -------------------------------------------------------------------------------- 1 | package com.uddernetworks.emojide.data; 2 | 3 | import com.uddernetworks.emojide.data.document.Document; 4 | 5 | import java.sql.Connection; 6 | import java.sql.SQLException; 7 | import java.util.List; 8 | import java.util.Optional; 9 | 10 | public interface DatabaseManager { 11 | 12 | /** 13 | * Initializes tables and queries for the DatabaseManager. 14 | */ 15 | void init(); 16 | 17 | /** 18 | * Gets a {@link Connection} from HikariCP. 19 | * 20 | * @return A {@link Connection} 21 | * @throws SQLException If bad stuff happens 22 | */ 23 | Connection getConnection() throws SQLException; 24 | 25 | /** 26 | * Gets all {@link Document}s in the database. 27 | * 28 | * @return All {@link Document}s 29 | */ 30 | List!ide fonts
and others. The examples used in the class will derive from the following embed screenshot:
13 | * Fonts
35 | * @param description The description of the embed, e.g. The following are the fonts used by the IDE. Either
36 | * click the :uns: to apply the font, or type `!ide setfont "name"`
37 | */
38 | void sendEmbed(Member member, TextChannel channel, String title, String description);
39 |
40 | /**
41 | * Invoked by the {@link ChoosingListManager} when an enum is selected.
42 | *
43 | * @param member The requester of the interacted message
44 | * @param channel The channel in which the interacted message is in
45 | * @param messageId The Discord ID of the message being interacted with
46 | * @param ordinal The ordinal of the enum (Not yet validated)
47 | */
48 | void activateEnum(Member member, TextChannel channel, long messageId, int ordinal);
49 |
50 | /**
51 | * This is not specific towards the list portion of the chooser, but rather the manual selection. This makes
52 | * the manual choosing of an Enum just a single line in the command registration. The following screenshots will be
53 | * used as reference in the method's docs:
54 | * font
63 | * @param onSelect The action to perform when a given Enum is selected
64 | * @param successTitle The title to display when an item was successfully chosen, e.g. Changed Font
65 | * @param successDescription The description (Supplied by the chosen Enum) to display when an item was successfully
66 | * chosen, e.g. Changed active font to Fira Code
67 | */
68 | void manualChoose(TextChannel channel, Member member, String enumName, String lowercaseDescriptor, Consumername
argument
33 | * is the emoji name, i.e. o96
34 | *
35 | * @param name The character to get the emoji of
36 | * @return The emoji
37 | */
38 | Emoji getTextEmoji(String name);
39 |
40 | /**
41 | * Gets the text emoji for the given character, in the currently applied typeface.
42 | *
43 | * @param character The character to get the emoji of
44 | * @param font The font to render in
45 | * @return The emoji
46 | */
47 | Emoji getTextEmoji(char character, Font font);
48 |
49 | /**
50 | * Gets the text emoji for the given character, in the given font. This assumes the name
argument
51 | * is the emoji name, i.e. o96
52 | *
53 | * @param name The character to get the emoji of
54 | * @param font The font to render in
55 | * @return The emoji
56 | */
57 | Emoji getTextEmoji(String name, Font font);
58 |
59 | /**
60 | * Gets an immutable map of all custom emojis uploaded and used by EmojIDE.
61 | *
62 | * @return All emojis by EmojIDE
63 | */
64 | Map