arcaneplugins / arcaneframework Goto Github PK
View Code? Open in Web Editor NEWShaded plugin development library for ArcanePlugins software.
License: GNU General Public License v3.0
Shaded plugin development library for ArcanePlugins software.
License: GNU General Public License v3.0
Once ArcaneFramework is sufficiently complete, MicroLib will be declared as a discontinued resource.
This will replace MicroLib's MultiMessage class, to achieve something very similar to LevelledMobs 4's Message enum.
A baseline should be provided so projects can at least get acquainted with setting up AF for their resource (plugin.yml libraries feature, etc). Later on, the Wiki can be expanded.
TitleWrapper will be a rewrite of MicroLib's WholeTitle class which allows titles to be easily assembled, sent and stored within a plugin, everything done in a single variable rather than multiple.
AF should have a plugin lockdown system. This system is designed to make it easy for a plugin to effectively 'soft-shut-down' itself when a major issue occurs which it cannot rescue from (e.g., the administrator has mis-configured the plugin). In lockdown mode, the plugin frequently warns that it is in the mode, why, how to fix it, and what to do once a fix has been attempted (reload the plugin). Lockdown mode has a separate command system which has no configurable components to be as simple as possible. This command system offers /<plugin_base_command> reload
, e.g., /lm reload
, so that the server owner can try to fix the issue without having to restart their entire server. During lockdown mode, a plugin might want to have some listeners or commands still available in case it is used to try limit potential issues that could arise if the plugin itself was shut down completely, e.g., a land claiming plugin could limit build access whilst it is in lockdown mode.
Allow a plugin to declare a list of supported MC versions, unsupported plugins, etc.
new SupportCheckerBuilder(Plugin)
// plugin works from 1.7 - 1.19. auto generates varargs via fromRange
.withCompatibleVersions(CraftVersion.fromRange(CraftVerison.1_7, CraftVersion.1_19))
// only 1.18 and 1.19 are supported
.withSupportedVersions(CraftVersion.1_18, CraftVersion.1_19)
// any unsuppored classpaths
// if reflection detects these exist then the plugin will not be happy
// e.g. classpaths of unsupported plugins
.withUnsupportedClasspaths(
new String[]{
// title of the issue
"LevelledMobs",
// description of issue
"Plugin is too awesome",
// classpaths
"me.lokka30.levelledmobs.LevelledMobs", // LM1, LM2, LM3
"me.lokka30.levelledmobs.plugin.bukkit.LevelledMobs" // LM4
},
new String[]{
"SleepFixer",
"Plugin is too lightweight",
"me.lokka30.sleepfixer.SleepFixer"
},
new String[]{
"Bukkit",
"no idea",
"org.bukkit.Bukkit"
}
)
.checkAll();
YamlConfigFile
JsonDataFile
I'll pile my current (lack of) thoughts here:
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.