Releases: Fernthedev/FernAPI
Release candidate #3
Changes:
- fae5080 Merge ae006ac into aebca94
- ae006ac Bump bungeecord-api from 1.14-SNAPSHOT to 1.16-R0.1
- aebca94 Fix StackOverFlow error due to typo
- 903e4c5 Improvements, bug fixes, fix typos etc. Added PacketParser for parsing GSON classes which if used require gsonName to be provided.
- 77f7770 Add @Inject to Velocity
- ba5f96c Fix .gitignore
- a14c51c Add brigadier repo
- 9a6cb78 Using Aikar's ACF command framework and added native compatibility with IFPlayer, FernCommandIssuer, IFConsole. Fixed many bugs and improved API methods.
- 78d7531 Merge branch 'beta' into stable
- 9acd451 Fix some bugs
See More
- d7012d5 Merge pull request #26 from Fernthedev/dependabot/gradle/org.jetbrains.kotlin.jvm-1.3.71
- 464582f Fix some bugs
- 2d39a6a Bump org.jetbrains.kotlin.jvm from 1.3.70 to 1.3.71
- 05c721d Merge pull request #25 from Fernthedev/dependabot/gradle/org.mariadb.jdbc-mariadb-java-client-2.6.0
- b92a808 Bump mariadb-java-client from 2.5.4 to 2.6.0
- b9637cf Merge remote-tracking branch 'origin/beta' into beta
- a057775 Removed Debug RuntimeExceptions and fixed StackOverFlow issues
- fa0816c Delete release.yml
- eb995ef Create release.yml
- 45354fd Merge pull request #24 from Fernthedev/stable
- e6fb904 Merge pull request #23 from Fernthedev/dependabot/gradle/io.freefair.lombok-5.0.0-rc6
- 6f29a6f Bump io.freefair.lombok from 5.0.0-rc4 to 5.0.0-rc6
- 82fb6b5 Update README.md
- 5f3fa54 Delete config.yml
- cb8be9e Merge pull request #22 from Fernthedev/stable
- e1ad8b1 Merge branch 'beta' into stable
- 91c10a3 Merge pull request #21 from Fernthedev/dependabot/gradle/org.projectlombok-lombok-1.18.12
- bd1a3d6 Merge pull request #15 from Fernthedev/dependabot/gradle/junit-junit-4.13
- d18ec11 Merge pull request #17 from Fernthedev/dependabot/gradle/com.google.code.gson-gson-2.8.6
- 29529ff Merge pull request #18 from Fernthedev/dependabot/gradle/org.mariadb.jdbc-mariadb-java-client-2.5.4
- af25ec5 Merge pull request #19 from Fernthedev/dependabot/gradle/com.google.guava-guava-28.2-jre
- ca73066 Merge pull request #16 from Fernthedev/dependabot/gradle/net.nemerosa.versioning-2.12.1
- a489b1a Bump net.nemerosa.versioning from 2.8.2 to 2.12.1
- 4e89e91 Merge pull request #20 from Fernthedev/dependabot/gradle/org.jetbrains.kotlin.jvm-1.3.70
- 6dd454a Bump Kotlin
- 0f3fbb4 Bump lombok from 1.18.8 to 1.18.12
- 8f9848f Bump org.jetbrains.kotlin.jvm from 1.3.61 to 1.3.70
- 3ac63f6 Bump guava from 28.1-jre to 28.2-jre
- 44eecc3 Bump mariadb-java-client from 2.1.2 to 2.5.4
- 728cf69 Bump gson from 2.6.2 to 2.8.6
- f95a331 Bump junit from 4.12 to 4.13
- 44369ae Improve version data retrieval using fernapi_version.json variable rather than jar version. (This may also avoid using the plugin's jar version rather than the desired API version, which was never tested when old implementation finished)
- e800163 Fix CircleCI
- c9e4381 Few changes
- 69c4e9c Added versioning
- 0dcaaad Added versioning
- 60b7c05 Fixed compile error
- 7e84bf7 Fixed compile error
- 78859c6 Merge remote-tracking branch 'origin/beta' into beta
- 27858ed Finished SpongePluginData
- f617860 Update README.md
- 67b28e8 Update README.md
- 79b0670 Update README.md
- 4f8c17c Updated docs and README
- 0ba4913 Some MKDocs changes
- 0e943c6 Merge remote-tracking branch 'origin/stable' into beta
- 7a45a1d Remove unnecessary files
- 91a38cd Update mkdocs.yml
- a797444 Update README.md
- adc4f04 Use semantic versioning with beta
- b193807 Fixed javadoc error
- 20aea86 Merge pull request #13 from Fernthedev/stable
- 3e8a140 Merge branch 'beta' into stable
- 2c42c0a Fix compile errors.
- e249c2d Working with ReadTheDocs
- fc73e46 Working with ReadTheDocs
- e7f1fc2 Working with ReadTheDocs
- 9a42a89 Working with ReadTheDocs
- 7660c71 Working with Readthedocs
- 72a7061 Working with ReadTheDocs
- 9b0b005 Working with ReadTheDocs
- 7629289 Working on ReadTheDocs
- 8f0e40e Working on ReadTheDocs
- 97c0f8f Fixing some readthedocs.org stuff
- 5e428a3 New README in docs folder
- 88c34f9 Create requirements.txt
- 20664cb Fixed Vault not working since it wasn't checking if it was in dependencies/soft dependencies in plugin.yml
- 5af8057 Changed name from Sorter to ListUtil
- 6760f13 Update azure-pipelines.yml
- 7005f99 Update config.yml
- 14d3b92 Update fern-configmanager dependency
- c58277b Change doc url
- 9fae7ef New docs folder for better organization. Might add readthedocs.org support
- 8615110 Fix typo
- 4fda280 Added documentation for NullPointerException cause
- 0b4b1b9 Added more documentation
- b79c4a9 Added more locale methods
- ad9ebf0 Fix typo of velocity command with no name
- e213c09 Remove upload artifacts
- 062d6b6 Reverted api keyword changes to fix CI
- 385068e Reverted api keyword changes to fix CI
- 274be17 Changed to api keyword
- ace2dc6 Changed some dependencies from compileOnly to implementation or API to properly use them
- 82877fc Upgraded to Gradle 6.0.1 and now use the new built-in publishing java source/javadoc
- 088bb82 UniversalCommand now by default auto-completes arguments registered using UniversalCommand.addArgument and any inner arguments. IChatHandler now has a method for converting BaseMessage to it's server-specific instance. Fixed a bug causing BaseMessage to send the same message twice. Moved ServerInfo to network package. Added Parameter generic bounds to IFPlayer implementations. Fixed a typo bug in VelocityInterface causing it to use Optional to construct instead of retrieving the player.
- 25511cd Updated documentation in README.md
- 8aa1c53 Fixed some inconsistencies
- 3e89db8 Merge branch 'beta' of https://github.com/Fernthedev/FernAPI into beta
- edd55f8 commit
- 3b8e66f Merge pull request #12 from Fernthedev/multi-module-redo
- 6907e33 Added sponge repo to velocity
- c5c0a79 Moved to a multi-module structure to allow using specific server platforms and to encapsulate dependencies of server platforms to reduce NoClassDef exceptions
- 200d687 Added IFPlayer.isNull method for checking if player instance is null
- 748edc2 Fixed a bug causing a null exception because parentText was not initialized
- 3a72cc4 Merge pull request #11 from Fernthedev/master
- b9dbe8c Added Cross-Server ServerInfo instance for getting information (They can be casted to their server-specific in...
Release Candidate #1
Fixed a few more bugs - Improved version retrieval (startup log now shows FernAPI version)
Changes:
- Updated many dependencies
- Lombok 1.18.12 & 5.0.0-rc6
- Kotlin 1.3.70
- Guava 28.2-jre
- MariaDB 2.5.4
- GSON 2.8.6
- JUnit 4.13
- Fern ConfigManager 1.1.3
- New documentation docs using ReadTheDocs and MkDocs
- Added Versioning for avoiding less version typos
- Removed CircleCI
- 44369ae Improve version data retrieval using fernapi_version.json variable rather than jar version. (This may also avoid using the plugin's jar version rather than the desired API version, which was never tested when old implementation finished)
- 20664cb Fixed Vault not working since it wasn't checking if it was in dependencies/soft dependencies in plugin.yml
- 5af8057 Changed name from Sorter to ListUtil
implementation or API to properly use them - 82877fc Upgraded to Gradle 6.0.1 and now use the new built-in publishing java source/javadoc
- d46b2a9 - Added Scheduling
- d137531 - Migrated to MariaDB connector
- 0f76d29 - The Scheduler API is now in Universal class with it's own interface handler ( Universal.getScheduler )
- b9dbe8c Added Cross-Server ServerInfo instance for getting information (They can be casted to their server-specific instance except Sponge) Use Universal.getNetworkHandler.getServer/s. You can now use PluginMessageData.setServer and constructor with IServerInfo instance as well
- c5c0a79 Moved to a multi-module structure to allow using specific server platforms and to encapsulate dependencies of server platforms to reduce NoClassDef exceptions
- 200d687 Added IFPlayer.isNull method for checking if player instance is null
- 748edc2 Fixed a bug causing a null exception because parentText was not initialized
- 088bb82 UniversalCommand now by default auto-completes arguments registered using UniversalCommand.addArgument and any inner arguments. IChatHandler now has a method for converting BaseMessage to it's server-specific instance. Fixed a bug causing BaseMessage to send the same message twice. Moved ServerInfo to network package. Added Parameter generic bounds to IFPlayer implementations. Fixed a typo bug in VelocityInterface causing it to use Optional to construct instead of retrieving the player.
- 27858ed Finished SpongePluginData
Full Commit History:
- 45354fd Merge pull request #24 from Fernthedev/stable
- e6fb904 Merge pull request #23 from Fernthedev/dependabot/gradle/io.freefair.lombok-5.0.0-rc6
- 6f29a6f Bump io.freefair.lombok from 5.0.0-rc4 to 5.0.0-rc6
- 82fb6b5 Update README.md
- 5f3fa54 Delete config.yml
- cb8be9e Merge pull request #22 from Fernthedev/stable
- e1ad8b1 Merge branch 'beta' into stable
- 91c10a3 Merge pull request #21 from Fernthedev/dependabot/gradle/org.projectlombok-lombok-1.18.12
- bd1a3d6 Merge pull request #15 from Fernthedev/dependabot/gradle/junit-junit-4.13
- d18ec11 Merge pull request #17 from Fernthedev/dependabot/gradle/com.google.code.gson-gson-2.8.6
See More
- 29529ff Merge pull request #18 from Fernthedev/dependabot/gradle/org.mariadb.jdbc-mariadb-java-client-2.5.4
- af25ec5 Merge pull request #19 from Fernthedev/dependabot/gradle/com.google.guava-guava-28.2-jre
- ca73066 Merge pull request #16 from Fernthedev/dependabot/gradle/net.nemerosa.versioning-2.12.1
- a489b1a Bump net.nemerosa.versioning from 2.8.2 to 2.12.1
- 4e89e91 Merge pull request #20 from Fernthedev/dependabot/gradle/org.jetbrains.kotlin.jvm-1.3.70
- 6dd454a Bump Kotlin
- 0f3fbb4 Bump lombok from 1.18.8 to 1.18.12
- 8f9848f Bump org.jetbrains.kotlin.jvm from 1.3.61 to 1.3.70
- 3ac63f6 Bump guava from 28.1-jre to 28.2-jre
- 44eecc3 Bump mariadb-java-client from 2.1.2 to 2.5.4
- 728cf69 Bump gson from 2.6.2 to 2.8.6
- f95a331 Bump junit from 4.12 to 4.13
- 44369ae Improve version data retrieval using fernapi_version.json variable rather than jar version. (This may also avoid using the plugin's jar version rather than the desired API version, which was never tested when old implementation finished)
- e800163 Fix CircleCI
- c9e4381 Few changes
- 69c4e9c Added versioning
- 0dcaaad Added versioning
- 60b7c05 Fixed compile error
- 7e84bf7 Fixed compile error
- 78859c6 Merge remote-tracking branch 'origin/beta' into beta
- 27858ed Finished SpongePluginData
- f617860 Update README.md
- 67b28e8 Update README.md
- 79b0670 Update README.md
- 4f8c17c Updated docs and README
- 0ba4913 Some MKDocs changes
- 0e943c6 Merge remote-tracking branch 'origin/stable' into beta
- 7a45a1d Remove unnecessary files
- 91a38cd Update mkdocs.yml
- a797444 Update README.md
- adc4f04 Use semantic versioning with beta
- b193807 Fixed javadoc error
- 20aea86 Merge pull request #13 from Fernthedev/stable
- 3e8a140 Merge branch 'beta' into stable
- 2c42c0a Fix compile errors.
- e249c2d Working with ReadTheDocs
- fc73e46 Working with ReadTheDocs
- e7f1fc2 Working with ReadTheDocs
- 9a42a89 Working with ReadTheDocs
- 7660c71 Working with Readthedocs
- 72a7061 Working with ReadTheDocs
- 9b0b005 Working with ReadTheDocs
- 7629289 Working on ReadTheDocs
- 8f0e40e Working on ReadTheDocs
- 97c0f8f Fixing some readthedocs.org stuff
- 5e428a3 New README in docs folder
- 88c34f9 Create requirements.txt
- 20664cb Fixed Vault not working since it wasn't checking if it was in dependencies/soft dependencies in plugin.yml
- 5af8057 Changed name from Sorter to ListUtil
- 6760f13 Update azure-pipelines.yml
- 7005f99 Update config.yml
- 14d3b92 Update fern-configmanager dependency
- c58277b Change doc url
- 9fae7ef New docs folder for better organization. Might add readthedocs.org support
- 8615110 Fix typo
- 4fda280 Added documentation for NullPointerException cause
- 0b4b1b9 Added more documentation
- b79c4a9 Added more locale methods
- ad9ebf0 Fix typo of velocity command with no name
- e213c09 Remove upload artifacts
- 062d6b6 Reverted api keyword changes to fix CI
- 385068e Reverted api keyword changes to fix CI
- 274be17 Changed to api keyword
- ace2dc6 Changed some dependencies from compileOnly to implementation or API to properly use them
- 82877fc Upgraded to Gradle 6.0.1 and now use the new built-in publishing java source/javadoc
- 088bb82 UniversalCommand now by default auto-completes arguments registered using UniversalCommand.addArgument and any inner arguments. IChatHandler now has a method for converting BaseMessage to it's server-specific instance. Fixed a bug causing BaseMessage to send the same message twice. Moved ServerInfo to network package. Added Parameter generic bounds to IFPlayer implementations. Fixed a typo bug in VelocityInterface causing it to use Optional to construct instead of retrieving the player.
- 25511cd Updated documentation in README.md
- 8aa1c53 Fixed some inconsistencies
- 3e89db8 Merge branch 'beta' of https://github.com/Fernthedev/FernAPI into beta...
Polishing and new features
This release is meant to polish up a few bugs and features.
Feature/Bug changelog:
- Added Locale. Implement Ilocale or override DefaultLocale and set in Universal.setLocale()
- Beta version uses semantic scheme now
- UniversalCommand automatically does a permission check before executing command for better consistency across platforms.
- Fixed Vault load bug which was caused because Vault was being used without checking if it was a dependecy/softdependency
- Added PluginData which allows reading plugin metadata (Not working on Sponge)
- New ReadTheDocs site: https://fernapi.readthedocs.io/en/stable/
- (Spigot) PluginYMLMustDefineCommand is thrown when the command isn't defined in the plugin.yml as required
- Fern Config Manager has been updated to 1.1.3
- Build tools now use OpenJDK11
- Sorter is now ListUtil
1.9b8
Changes:
- 82877fc Upgraded to Gradle 6.0.1 and now use the new built-in publishing java source/javadoc
- 088bb82 UniversalCommand now by default auto-completes arguments registered using UniversalCommand.addArgument and any inner arguments.
IChatHandler now has a method for converting BaseMessage to it's server-specific instance.
Fixed a bug causing BaseMessage to send the same message twice.
Moved ServerInfo to network package.
Added Parameter generic bounds to IFPlayer implementations.
Fixed a typo bug in VelocityInterface causing it to use Optional to construct instead of retrieving the player. - 25511cd Updated documentation in README.md
- 8aa1c53 Fixed some inconsistencies
- 3e89db8 Merge branch 'beta' of https://github.com/Fernthedev/FernAPI into beta
- edd55f8 commit
See More
- 3b8e66f Merge pull request #12 from Fernthedev/multi-module-redo
- 6907e33 Added sponge repo to velocity
- c5c0a79 Moved to a multi-module structure to allow using specific server platforms and to encapsulate dependencies of server platforms to reduce NoClassDef exceptions
- 200d687 Added IFPlayer.isNull method for checking if player instance is null
- 748edc2 Fixed a bug causing a null exception because parentText was not initialized
- 3a72cc4 Merge pull request #11 from Fernthedev/master
- b9dbe8c Added Cross-Server ServerInfo instance for getting information (They can be casted to their server-specific instance except Sponge) Use Universal.getNetworkHandler.getServer/s. You can now use PluginMessageData.setServer and constructor with IServerInfo instance as well
- cfe9b46 Update azure-pipelines.yml for Azure Pipelines
- dc040ad - Fixed compile errors caught in CI
- 0f76d29 - The Scheduler API is now in Universal class with it's own interface handler ( Universal.getScheduler )
- 63d70d3 Update README.md
- 0c1e51b Merge pull request #10 from Fernthedev/master
- 8d36463 Update README.md
- 8d9f745 Update gradle.yml
- 2d1d048 Merge remote-tracking branch 'origin/master'
- 1a0c220 Make gradlew executable
- 2b6e942 Make gradlew executable
- 1d2d95e Update gradle.yml
- b54bbd5 Create gradle.yml
- 7b0238c - Version Bump to Beta 2
- 9b3ef15 Merge pull request #9 from Fernthedev/beta
- ae44f9e - Version reformat
- d46b2a9 - Added Scheduling
- 69aa306 Merge pull request #8 from Fernthedev/beta
- d137531 - Migrated to MariaDB connector
This list of changes was auto generated.
Multi-Module (new documentation in README)
Changes:
- 8aa1c53 Fixed some inconsistencies
- 3e89db8 Merge branch 'beta' of https://github.com/Fernthedev/FernAPI into beta
- edd55f8 commit
- 3b8e66f Merge pull request #12 from Fernthedev/multi-module-redo
- 6907e33 Added sponge repo to velocity
- c5c0a79 Moved to a multi-module structure to allow using specific server platforms and to encapsulate dependencies of server platforms to reduce NoClassDef exceptions
- 200d687 Added IFPlayer.isNull method for checking if player instance is null
- 748edc2 Fixed a bug causing a null exception because parentText was not initialized
- 3a72cc4 Merge pull request #11 from Fernthedev/master
- b9dbe8c Added Cross-Server ServerInfo instance for getting information (They can be casted to their server-specific instance except Sponge) Use Universal.getNetworkHandler.getServer/s. You can now use PluginMessageData.setServer and constructor with IServerInfo instance as well
See More
- cfe9b46 Update azure-pipelines.yml for Azure Pipelines
- dc040ad - Fixed compile errors caught in CI
- 0f76d29 - The Scheduler API is now in Universal class with it's own interface handler ( Universal.getScheduler )
- 63d70d3 Update README.md
- 0c1e51b Merge pull request #10 from Fernthedev/master
- 8d36463 Update README.md
- 8d9f745 Update gradle.yml
- 2d1d048 Merge remote-tracking branch 'origin/master'
- 1a0c220 Make gradlew executable
- 2b6e942 Make gradlew executable
- 1d2d95e Update gradle.yml
- b54bbd5 Create gradle.yml
- 7b0238c - Version Bump to Beta 2
- 9b3ef15 Merge pull request #9 from Fernthedev/beta
- ae44f9e - Version reformat
- d46b2a9 - Added Scheduling
- 69aa306 Merge pull request #8 from Fernthedev/beta
- d137531 - Migrated to MariaDB connector
This list of changes was auto generated.
Gathering ServerInfo for proxies now possible
Added Cross-Server ServerInfo instance for getting information (They can be casted to their server-specific instance except Sponge) Use Universal.getNetworkHandler.getServer/s. You can now use PluginMessageData.setServer and constructor with IServerInfo instance as well
Changes:
- 3a72cc4 Merge pull request #11 from Fernthedev/master
- b9dbe8c Added Cross-Server ServerInfo instance for getting information (They can be casted to their server-specific instance except Sponge) Use Universal.getNetworkHandler.getServer/s. You can now use PluginMessageData.setServer and constructor with IServerInfo instance as well
- cfe9b46 Update azure-pipelines.yml for Azure Pipelines
- dc040ad - Fixed compile errors caught in CI
- 0f76d29 - The Scheduler API is now in Universal class with it's own interface handler ( Universal.getScheduler )
- 63d70d3 Update README.md
- 0c1e51b Merge pull request #10 from Fernthedev/master
- 8d36463 Update README.md
- 8d9f745 Update gradle.yml
- 2d1d048 Merge remote-tracking branch 'origin/master'
See More
- 1a0c220 Make gradlew executable
- 2b6e942 Make gradlew executable
- 1d2d95e Update gradle.yml
- b54bbd5 Create gradle.yml
- 7b0238c - Version Bump to Beta 2
- 9b3ef15 Merge pull request #9 from Fernthedev/beta
- ae44f9e - Version reformat
- d46b2a9 - Added Scheduling
- 69aa306 Merge pull request #8 from Fernthedev/beta
- d137531 - Migrated to MariaDB connector
This list of changes was auto generated.
Scheduler API Update and UUIDFetchManager redundancy improvements
- The Scheduler API is now in Universal class with it's own interface handler ( Universal.getScheduler )
- Moved getPlayerNameFromUUID and getPlayerUUIDFromName to MethodInterface
- Moved cancelTask to new Scheduler API
- UUIDFetchManager has been refactored to use the new Scheduler API, making it redundant to use UUIDSpigot / UUIDSponge / UUIDVelocity / UUIDBungee
- Sorter and UUIDFetcher have been moved to util package
Changes:
- dc040ad - Fixed compile errors caught in CI
- 0f76d29 - The Scheduler API is now in Universal class with it's own interface handler ( Universal.getScheduler )
- 0c1e51b Merge pull request #10 from Fernthedev/master
- 8d36463 Update README.md
- 8d9f745 Update gradle.yml
- 2d1d048 Merge remote-tracking branch 'origin/master'
- 1a0c220 Make gradlew executable
- 2b6e942 Make gradlew executable
- 1d2d95e Update gradle.yml
- b54bbd5 Create gradle.yml
Arguments API (Universal Commands)
There is now an argument API. Example Usage (Only for Universal Commands)
// Required for registering arguments
addArgument(new Argument("example", (sender, args) -> {
foo();
}));
// Usually in execute() method of Universal Commands
try {
ArgumentRunnable argumentRunnable = handleArguments(sender, args); // Get the argument runnable which runs the code
argumentRunnable.run(sender, args);
} catch (ArgumentNotFoundException e) {
// Handle when argument not found
}
Some extra features. Enhancements will come soon
I've just worked a bit on the feature set and I plan to rewrite MySQL (the current one will be known as legacy) with annotations and reflection which will probably be better and more user-friendly for the developer.
Changelog:
- Added Scheduling
- Console instances can now be checked with "instanceOf IFConsole"
- Vanish check WIP
Bug Fixes to MySQL and improvements
- Migrated to MariaDB connector
- Added search() command for Universal Command for auto complete
- Improvements to MySQL