mirror of
https://github.com/SimplexDevelopment/SimplexCore.git
synced 2024-12-22 16:47:37 +00:00
Minor Update
Can't figure out shading but otherwise just a minor update to how things are handled.
This commit is contained in:
parent
ca47c7cea5
commit
1d17d36177
65
build.gradle
65
build.gradle
@ -1,6 +1,13 @@
|
|||||||
plugins {
|
plugins {
|
||||||
id "java"
|
id "java"
|
||||||
id "com.github.johnrengelman.shadow" version "6.1.0"
|
id "com.github.johnrengelman.shadow" version "7.1.2"
|
||||||
|
id 'maven-publish'
|
||||||
|
id 'signing'
|
||||||
|
}
|
||||||
|
|
||||||
|
java {
|
||||||
|
withJavadocJar()
|
||||||
|
withSourcesJar()
|
||||||
}
|
}
|
||||||
|
|
||||||
version project.properties["pluginVersion"]
|
version project.properties["pluginVersion"]
|
||||||
@ -28,7 +35,6 @@ dependencies {
|
|||||||
].each {s ->
|
].each {s ->
|
||||||
compileOnly s
|
compileOnly s
|
||||||
}
|
}
|
||||||
|
|
||||||
//compile
|
//compile
|
||||||
[
|
[
|
||||||
"org.jetbrains:annotations:23.0.0",
|
"org.jetbrains:annotations:23.0.0",
|
||||||
@ -77,3 +83,58 @@ processResources {
|
|||||||
"pluginMain": "${project.properties["pluginMainPackage"]}.${project.properties["pluginMain"]}"
|
"pluginMain": "${project.properties["pluginMainPackage"]}.${project.properties["pluginMain"]}"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
publishing {
|
||||||
|
publications {
|
||||||
|
mavenJava(MavenPublication) {
|
||||||
|
artifactId = 'simplexcore'
|
||||||
|
from components.java
|
||||||
|
versionMapping {
|
||||||
|
usage('java-api') {
|
||||||
|
fromResolutionOf('runtimeClasspath')
|
||||||
|
}
|
||||||
|
usage('java-runtime') {
|
||||||
|
fromResolutionResult()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pom {
|
||||||
|
name = 'SimplexCore'
|
||||||
|
description = 'An API and Library designed for development of Paper plugins.'
|
||||||
|
url = 'https://simplexdev.app'
|
||||||
|
licenses {
|
||||||
|
license {
|
||||||
|
name = 'GNU General Public License v2.0'
|
||||||
|
url = 'https://opensource.org/licenses/gpl-2.0.php'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
developers {
|
||||||
|
developer {
|
||||||
|
id = 'simplexdevelopment'
|
||||||
|
name = 'Simplex Development Group'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
scm {
|
||||||
|
connection = 'scm:git:git://github.com/simplexdevelopment/simplexcore.git'
|
||||||
|
developerConnection = 'scm:git:ssh://github.com/simplexdevelopment/simplexcore.git'
|
||||||
|
url = 'https://github.com/SimplexDevelopment/SimplexCore'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
repositories {
|
||||||
|
maven {
|
||||||
|
// change URLs to point to your repos, e.g. http://my.org/repo
|
||||||
|
def releasesRepoUrl = layout.buildDirectory.dir('https://s01.oss.sonatype.org/content/repository/releases')
|
||||||
|
def snapshotsRepoUrl = layout.buildDirectory.dir('https://s01.oss.sonatype.org/content/repository/snapshots')
|
||||||
|
url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
signing {
|
||||||
|
sign publishing.publications.mavenJava
|
||||||
|
}
|
||||||
|
javadoc {
|
||||||
|
if(JavaVersion.current().isJava9Compatible()) {
|
||||||
|
options.addBooleanOption('html5', true)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -1,5 +1,11 @@
|
|||||||
|
com.gradle.java.home=C:/Program Files/Java/jdk-16.0.1
|
||||||
|
|
||||||
pluginMain=SimplexCorePlugin
|
pluginMain=SimplexCorePlugin
|
||||||
pluginMainPackage=io.github.simplexdev.simplexcore
|
pluginMainPackage=io.github.simplexdev.simplexcore
|
||||||
pluginVersion=1.0.0
|
pluginVersion=1.0.0
|
||||||
pluginName=SimplexCore
|
pluginName=SimplexCore
|
||||||
pluginJarClassifier=Alpha
|
pluginJarClassifier=Alpha
|
||||||
|
|
||||||
|
signing.keyId=0x961A411C
|
||||||
|
signing.password=simplex21
|
||||||
|
signing.secretKeyRingFile=simplexcore.asc
|
||||||
|
12
simplexcore.asc
Normal file
12
simplexcore.asc
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
mDMEYdpDBxYJKwYBBAHaRw8BAQdAoGRHsaqmeJEq8ZXIpoCUqCQ0aKbNpLVz0lD4
|
||||||
|
yq+UM6i0C3NpbXBsZXhjb3JliJoEExYKAEIWIQT65oQCdo6SdgRjZpTAvpGolhpB
|
||||||
|
HAUCYdpDBwIbAwUJB4WtmQULCQgHAgMiAgEGFQoJCAsCBBYCAwECHgcCF4AACgkQ
|
||||||
|
wL6RqJYaQRwLkQD+Kef3rW0gUvCx8jodYo5Dwd3Xeb4EpKoYwWVNy59a4f4A/jbP
|
||||||
|
elULb4W9X2QY5haAlqGgxZWl3b72rbU2coIruqULuDgEYdpDBxIKKwYBBAGXVQEF
|
||||||
|
AQEHQC9BgyazC+d+LYmrNdqLiQHWb69HFFB0dlRAM6M8YmAYAwEIB4h+BBgWCgAm
|
||||||
|
FiEE+uaEAnaOknYEY2aUwL6RqJYaQRwFAmHaQwcCGwwFCQeFrZkACgkQwL6RqJYa
|
||||||
|
QRxmvgEApZfqXwcuiqv/x0KFykus5ECOSgLrfB9l5f1lMzHPwrAA/RH31VsaKq10
|
||||||
|
JSvONawvcpjts3x7qy6+wrkjI25LJmUL
|
||||||
|
=h40b
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
@ -11,10 +11,11 @@ import io.github.simplexdev.simplexcore.module.SimplexModule;
|
|||||||
public final class SimplexCorePlugin extends SimplexModule<SimplexCorePlugin> {
|
public final class SimplexCorePlugin extends SimplexModule<SimplexCorePlugin> {
|
||||||
private static boolean debug = false;
|
private static boolean debug = false;
|
||||||
private static boolean suspended = false;
|
private static boolean suspended = false;
|
||||||
private static SimplexCorePlugin instance;
|
|
||||||
private Yaml config;
|
private Yaml config;
|
||||||
private Yaml internals;
|
private Yaml internals;
|
||||||
|
|
||||||
|
private static SimplexCorePlugin instance;
|
||||||
|
|
||||||
public static SimplexCorePlugin getInstance() {
|
public static SimplexCorePlugin getInstance() {
|
||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
@ -26,16 +27,16 @@ public final class SimplexCorePlugin extends SimplexModule<SimplexCorePlugin> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init() {
|
public void init() {
|
||||||
SimplexCorePlugin.instance = this;
|
instance = getPlugin();
|
||||||
this.config = new YamlFactory(this).setDefaultPathways();
|
config = new YamlFactory(this).setDefaultPathways();
|
||||||
this.internals = new YamlFactory(this).from("internals.yml", getParentFolder(), "internals.yml");
|
internals = new YamlFactory(this).from("internals.yml", getParentFolder(), "internals.yml");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void start() {
|
public void start() {
|
||||||
try {
|
try {
|
||||||
getRegistry().register(this);
|
getRegistry().register(this);
|
||||||
getCommandLoader().classpath(this, Command_info.class).load();
|
getCommandLoader().load(this, Command_info.class);
|
||||||
getYamlConfig().reload();
|
getYamlConfig().reload();
|
||||||
getInternals().reload();
|
getInternals().reload();
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
|
@ -8,7 +8,8 @@ public enum Messages {
|
|||||||
BAN(Component.text("You have been banned from this server.")),
|
BAN(Component.text("You have been banned from this server.")),
|
||||||
KICK(Component.text("You have been kicked by a moderator.")),
|
KICK(Component.text("You have been kicked by a moderator.")),
|
||||||
AFK_KICK(Component.text("You were kicked to ensure space for active players.")),
|
AFK_KICK(Component.text("You were kicked to ensure space for active players.")),
|
||||||
PERMBAN(Component.text("You are permanently banned from this server."));
|
PERMBAN(Component.text("You are permanently banned from this server.")),
|
||||||
|
NOT_FROM_CONSOLE(Component.text("This command may only be used in game."));
|
||||||
|
|
||||||
|
|
||||||
final Component message;
|
final Component message;
|
||||||
|
@ -22,18 +22,9 @@ import java.util.MissingResourceException;
|
|||||||
|
|
||||||
public final class CommandLoader {
|
public final class CommandLoader {
|
||||||
private Reflections reflections;
|
private Reflections reflections;
|
||||||
private ClassLoader classLoader;
|
|
||||||
private SimplexModule<?> plugin;
|
private SimplexModule<?> plugin;
|
||||||
private static final CommandLoader instance = new CommandLoader();
|
|
||||||
private final Registry registry = new Registry();
|
private final Registry registry = new Registry();
|
||||||
|
|
||||||
/**
|
|
||||||
* @return A Singleton Pattern instance of this class.
|
|
||||||
*/
|
|
||||||
public static CommandLoader getInstance() {
|
|
||||||
return instance;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prepares the CommandLoader to load your plugin's commands from its own package location.
|
* Prepares the CommandLoader to load your plugin's commands from its own package location.
|
||||||
* All your commands MUST be placed in their own package.
|
* All your commands MUST be placed in their own package.
|
||||||
@ -46,9 +37,8 @@ public final class CommandLoader {
|
|||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @param clazz The command class to load from
|
* @param clazz The command class to load from
|
||||||
* @return An instance of this where the classpath has been prepared for loading the commands.
|
|
||||||
*/
|
*/
|
||||||
public <T extends SimplexCommand> CommandLoader classpath(SimplexModule<?> plugin, Class<T> clazz) {
|
public <T extends SimplexCommand> void load(SimplexModule<?> plugin, Class<T> clazz) {
|
||||||
if (clazz == null) {
|
if (clazz == null) {
|
||||||
throw new IllegalArgumentException("The class provided cannot be found!");
|
throw new IllegalArgumentException("The class provided cannot be found!");
|
||||||
}
|
}
|
||||||
@ -63,18 +53,9 @@ public final class CommandLoader {
|
|||||||
|
|
||||||
this.reflections = ReflectionTools.reflect(clazz);
|
this.reflections = ReflectionTools.reflect(clazz);
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
this.classLoader = plugin.getClass().getClassLoader();
|
ClassLoader classLoader = plugin.getClass().getClassLoader();
|
||||||
|
|
||||||
return this;
|
if (reflections == null || classLoader == null) {
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Loads all the commands from the specified classpath.
|
|
||||||
* This should be used immediately after {@link CommandLoader#classpath(SimplexModule, Class)} has been called.
|
|
||||||
* If used before, an exception will be thrown, and your commands will not be loaded.
|
|
||||||
*/
|
|
||||||
public void load() {
|
|
||||||
if (reflections == null || plugin == null || classLoader == null) {
|
|
||||||
throw new CommandLoaderException("Please run CommandLoader#classpath(SimplexModule, Class) first!");
|
throw new CommandLoaderException("Please run CommandLoader#classpath(SimplexModule, Class) first!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,8 +49,7 @@ public abstract class SimplexModule<T extends SimplexModule<T>> extends JavaPlug
|
|||||||
/**
|
/**
|
||||||
* Plugin initialization logic.
|
* Plugin initialization logic.
|
||||||
*/
|
*/
|
||||||
public void init() {
|
public void init() {}
|
||||||
}
|
|
||||||
|
|
||||||
public PluginManager getManager() {
|
public PluginManager getManager() {
|
||||||
return this.getServer().getPluginManager();
|
return this.getServer().getPluginManager();
|
||||||
@ -69,6 +68,6 @@ public abstract class SimplexModule<T extends SimplexModule<T>> extends JavaPlug
|
|||||||
}
|
}
|
||||||
|
|
||||||
public CommandLoader getCommandLoader() {
|
public CommandLoader getCommandLoader() {
|
||||||
return CommandLoader.getInstance();
|
return new CommandLoader();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ import io.github.simplexdev.api.func.VoidSupplier;
|
|||||||
import io.github.simplexdev.simplexcore.SimplexCorePlugin;
|
import io.github.simplexdev.simplexcore.SimplexCorePlugin;
|
||||||
import io.github.simplexdev.simplexcore.module.SimplexModule;
|
import io.github.simplexdev.simplexcore.module.SimplexModule;
|
||||||
import io.github.simplexdev.simplexcore.utils.TickedTime;
|
import io.github.simplexdev.simplexcore.utils.TickedTime;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
import org.bukkit.scheduler.BukkitTask;
|
import org.bukkit.scheduler.BukkitTask;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
@ -60,19 +61,20 @@ public abstract class SimplexTask implements Consumer<BukkitTask> {
|
|||||||
* {@link org.bukkit.scheduler.BukkitScheduler}.
|
* {@link org.bukkit.scheduler.BukkitScheduler}.
|
||||||
*
|
*
|
||||||
* @param task The instance of a subclass of this class.
|
* @param task The instance of a subclass of this class.
|
||||||
* @param repeating Whether or not the task should repeat.
|
* @param repeating Whether the task should repeat.
|
||||||
* @param delayed Whether or not to delay the first time the task runs.
|
* @param delayed Whether to delay the first time the task runs.
|
||||||
* @param <T> A subclass of SimplexTask.
|
* @param <T> A subclass of SimplexTask.
|
||||||
*/
|
*/
|
||||||
public <T extends SimplexTask> void register(T task, boolean repeating, boolean delayed) {
|
public <T extends SimplexTask> void register(T task, boolean repeating, boolean delayed) {
|
||||||
if (delayed && repeating) {
|
if (delayed && repeating) {
|
||||||
SimplexCorePlugin.getInstance().getScheduler().runTaskTimer(plugin, task, DELAY, INTERVAL);
|
setTaskId(SimplexCorePlugin.getInstance().getScheduler().scheduleSyncRepeatingTask(plugin, (Runnable)task, DELAY, INTERVAL));
|
||||||
} else if (delayed) {
|
} else if (delayed) {
|
||||||
SimplexCorePlugin.getInstance().getScheduler().runTaskLater(plugin, task, DELAY);
|
setTaskId(SimplexCorePlugin.getInstance().getScheduler().scheduleSyncDelayedTask(plugin, (Runnable)task, DELAY));
|
||||||
} else if (repeating) {
|
} else if (repeating) {
|
||||||
SimplexCorePlugin.getInstance().getScheduler().runTaskTimer(plugin, task, 0L, INTERVAL);
|
setTaskId(SimplexCorePlugin.getInstance().getScheduler().scheduleSyncRepeatingTask(plugin, (Runnable)task, 0L, INTERVAL));
|
||||||
} else {
|
} else {
|
||||||
SimplexCorePlugin.getInstance().getScheduler().runTask(plugin, task);
|
SimplexCorePlugin.getInstance().getScheduler().runTask(plugin, task);
|
||||||
|
setTaskId(-1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -83,11 +85,10 @@ public abstract class SimplexTask implements Consumer<BukkitTask> {
|
|||||||
* This version of this method will not create a repeating task..
|
* This version of this method will not create a repeating task..
|
||||||
*
|
*
|
||||||
* @param task The instance of a subclass of this class.
|
* @param task The instance of a subclass of this class.
|
||||||
* @param plugin Your plugin instance.
|
* @param delayed Whether to delay the start of the task.
|
||||||
* @param delayed Whether or not to delay the start of the task.
|
|
||||||
* @param <T> A subclass of SimplexTask.
|
* @param <T> A subclass of SimplexTask.
|
||||||
*/
|
*/
|
||||||
public <T extends SimplexTask> void register(T task, SimplexModule<?> plugin, boolean delayed) {
|
public <T extends SimplexTask> void register(T task, boolean delayed) {
|
||||||
register(task, false, delayed);
|
register(task, false, delayed);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -97,10 +98,9 @@ public abstract class SimplexTask implements Consumer<BukkitTask> {
|
|||||||
* This version of this method will not create a delayed or repeating task.
|
* This version of this method will not create a delayed or repeating task.
|
||||||
*
|
*
|
||||||
* @param task The instance of a subclass of this class.
|
* @param task The instance of a subclass of this class.
|
||||||
* @param plugin Your plugin instance.
|
|
||||||
* @param <T> A subclass of SimplexTask.
|
* @param <T> A subclass of SimplexTask.
|
||||||
*/
|
*/
|
||||||
public <T extends SimplexTask> void register(T task, SimplexModule<?> plugin) {
|
public <T extends SimplexTask> void register(T task) {
|
||||||
register(task, false, false);
|
register(task, false, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user