mirror of
https://github.com/SimplexDevelopment/SimplexCore.git
synced 2024-12-22 16:47:37 +00:00
Felt cute, might delete later
This commit is contained in:
parent
aea26ef2f3
commit
0f71a93b54
@ -5,8 +5,9 @@ import io.github.paldiu.simplexcore.plugin.Addon;
|
|||||||
import io.github.paldiu.simplexcore.utils.Constants;
|
import io.github.paldiu.simplexcore.utils.Constants;
|
||||||
|
|
||||||
public final class SimplexCore extends Addon<SimplexCore> {
|
public final class SimplexCore extends Addon<SimplexCore> {
|
||||||
protected SimplexCore(SimplexCore plugin) {
|
@Override
|
||||||
super(plugin);
|
public SimplexCore getPlugin() {
|
||||||
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package io.github.paldiu.simplexcore.command;
|
package io.github.paldiu.simplexcore.command;
|
||||||
|
|
||||||
|
import io.github.paldiu.simplexcore.command.defaults.DefaultCommand;
|
||||||
import io.github.paldiu.simplexcore.utils.Constants;
|
import io.github.paldiu.simplexcore.utils.Constants;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.command.*;
|
import org.bukkit.command.*;
|
||||||
@ -19,7 +20,7 @@ import java.util.MissingResourceException;
|
|||||||
public class CommandLoader {
|
public class CommandLoader {
|
||||||
private Reflections reflections;
|
private Reflections reflections;
|
||||||
|
|
||||||
public CommandLoader classpath(Class<?> clazz) {
|
public synchronized CommandLoader classpath(Class<?> clazz) {
|
||||||
if (!clazz.isAnnotationPresent(CommandInfo.class)) {
|
if (!clazz.isAnnotationPresent(CommandInfo.class)) {
|
||||||
throw new MissingResourceException("Cannot register this class as the main resource location!", clazz.getSimpleName(), "@CommandInfo");
|
throw new MissingResourceException("Cannot register this class as the main resource location!", clazz.getSimpleName(), "@CommandInfo");
|
||||||
}
|
}
|
||||||
@ -32,7 +33,7 @@ public class CommandLoader {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void load() {
|
public synchronized void load() {
|
||||||
reflections.getTypesAnnotatedWith(CommandInfo.class).forEach(annotated -> {
|
reflections.getTypesAnnotatedWith(CommandInfo.class).forEach(annotated -> {
|
||||||
CommandInfo info = annotated.getDeclaredAnnotation(CommandInfo.class);
|
CommandInfo info = annotated.getDeclaredAnnotation(CommandInfo.class);
|
||||||
|
|
||||||
@ -52,7 +53,7 @@ public class CommandLoader {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public CommandExecutor getFromSetName(String name) {
|
public synchronized CommandExecutor getFromSetName(String name) {
|
||||||
for (Class<? extends CommandExecutor> obj : reflections.getSubTypesOf(CommandExecutor.class)) {
|
for (Class<? extends CommandExecutor> obj : reflections.getSubTypesOf(CommandExecutor.class)) {
|
||||||
if (!obj.isAnnotationPresent(CommandInfo.class)) {
|
if (!obj.isAnnotationPresent(CommandInfo.class)) {
|
||||||
throw new RuntimeException("Missing annotation CommandInfo!");
|
throw new RuntimeException("Missing annotation CommandInfo!");
|
||||||
@ -65,7 +66,7 @@ public class CommandLoader {
|
|||||||
Constructor<? extends CommandExecutor> constr = obj.getDeclaredConstructor();
|
Constructor<? extends CommandExecutor> constr = obj.getDeclaredConstructor();
|
||||||
return constr.newInstance();
|
return constr.newInstance();
|
||||||
} catch (NoSuchMethodException | IllegalAccessException | InstantiationException | InvocationTargetException e) {
|
} catch (NoSuchMethodException | IllegalAccessException | InstantiationException | InvocationTargetException e) {
|
||||||
throw new RuntimeException(e);
|
return new DefaultCommand();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -73,7 +74,7 @@ public class CommandLoader {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public TabCompleter getTabFromName(String name) {
|
public synchronized TabCompleter getTabFromName(String name) {
|
||||||
for (Class<? extends TabCompleter> obj : reflections.getSubTypesOf(TabCompleter.class)) {
|
for (Class<? extends TabCompleter> obj : reflections.getSubTypesOf(TabCompleter.class)) {
|
||||||
if (!obj.isAnnotationPresent(CommandInfo.class)) {
|
if (!obj.isAnnotationPresent(CommandInfo.class)) {
|
||||||
throw new RuntimeException("Missing annotation CommandInfo!");
|
throw new RuntimeException("Missing annotation CommandInfo!");
|
||||||
@ -85,7 +86,7 @@ public class CommandLoader {
|
|||||||
Constructor<? extends TabCompleter> constr = obj.getDeclaredConstructor();
|
Constructor<? extends TabCompleter> constr = obj.getDeclaredConstructor();
|
||||||
return constr.newInstance();
|
return constr.newInstance();
|
||||||
} catch (NoSuchMethodException | InstantiationException | InvocationTargetException | IllegalAccessException e) {
|
} catch (NoSuchMethodException | InstantiationException | InvocationTargetException | IllegalAccessException e) {
|
||||||
e.printStackTrace();
|
return new DefaultCommand();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,16 @@
|
|||||||
|
package io.github.paldiu.simplexcore.command.defaults;
|
||||||
|
|
||||||
|
import io.github.paldiu.simplexcore.command.CommandBase;
|
||||||
|
import io.github.paldiu.simplexcore.command.CommandInfo;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
@CommandInfo(name = "defaultcommand", usage = "/<command>", description = "Default plugin command.")
|
||||||
|
public class DefaultCommand extends CommandBase {
|
||||||
|
@Override
|
||||||
|
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
|
||||||
|
sender.sendMessage("If you are seeing this when running your command, your command didn't register properly.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@ -1,6 +1,11 @@
|
|||||||
package io.github.paldiu.simplexcore.math;
|
package io.github.paldiu.simplexcore.math;
|
||||||
|
|
||||||
|
import io.github.paldiu.simplexcore.utils.Constants;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.scheduler.BukkitTask;
|
||||||
|
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
public class Cuboid {
|
public class Cuboid {
|
||||||
private final int x, y, z;
|
private final int x, y, z;
|
||||||
@ -19,9 +24,28 @@ public class Cuboid {
|
|||||||
this(size.getX(), size.getY(), size.getZ());
|
this(size.getX(), size.getY(), size.getZ());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void generate(Location location) {
|
public synchronized void generate(Location location, Material material) {
|
||||||
|
Consumer<BukkitTask> task = bukkitTask -> {
|
||||||
int t1 = location.getBlockX();
|
int t1 = location.getBlockX();
|
||||||
int t2 = location.getBlockY();
|
int t2 = location.getBlockY();
|
||||||
int t3 = location.getBlockZ();
|
int t3 = location.getBlockZ();
|
||||||
|
|
||||||
|
int a = t1+x;
|
||||||
|
int b = t2+y;
|
||||||
|
int c = t3+z;
|
||||||
|
|
||||||
|
while (t1 < a) {
|
||||||
|
while (t2 < b) {
|
||||||
|
while (t3 < c) {
|
||||||
|
t3++;
|
||||||
|
location.getWorld().getBlockAt(t1, t2, t3).setType(material);
|
||||||
|
}
|
||||||
|
t2++;
|
||||||
|
}
|
||||||
|
t1++;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
Constants.getScheduler().runTaskLaterAsynchronously(Constants.getPlugin(), task, Constants.getTimeValues().SECOND());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,20 +3,12 @@ package io.github.paldiu.simplexcore.plugin;
|
|||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
public abstract class Addon<T extends Addon<T>> extends JavaPlugin {
|
public abstract class Addon<T extends Addon<T>> extends JavaPlugin {
|
||||||
private final T plugin;
|
|
||||||
|
|
||||||
protected Addon(T plugin) {
|
|
||||||
this.plugin = plugin;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets your plugin as an addon.
|
* Gets your plugin as an addon.
|
||||||
*
|
*
|
||||||
* @return The addon.
|
* @return The addon.
|
||||||
*/
|
*/
|
||||||
public T getPlugin() {
|
public abstract T getPlugin();
|
||||||
return plugin;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLoad() {
|
public void onLoad() {
|
||||||
|
@ -37,11 +37,43 @@ public final class Constants {
|
|||||||
return scheduler;
|
return scheduler;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static AddonRegistry getRegistry() {
|
public static synchronized AddonRegistry getRegistry() {
|
||||||
return AddonRegistry.getInstance();
|
return AddonRegistry.getInstance();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static CommandLoader getCommandLoader() {
|
public static synchronized CommandLoader getCommandLoader() {
|
||||||
return CommandLoader.getInstance();
|
return CommandLoader.getInstance();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static TimeValues getTimeValues() {
|
||||||
|
return new TimeValues();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class TimeValues {
|
||||||
|
public long SECOND() {
|
||||||
|
return 20L;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long MINUTE() {
|
||||||
|
return 1200L;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long HOUR() {
|
||||||
|
return 72000L;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long DAY() {
|
||||||
|
return 1728000L;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long MONTH() {
|
||||||
|
return 51840000L;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long YEAR() {
|
||||||
|
return 622080000L;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
7
target/classes/plugin.yml
Normal file
7
target/classes/plugin.yml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
name: SimplexCore
|
||||||
|
version: 1.0.0-BLEEDING
|
||||||
|
main: pw.coomer.simplexcore.SimplexCore
|
||||||
|
api-version: 1.16
|
||||||
|
prefix: Simplex
|
||||||
|
authors: [ Paldiu ]
|
||||||
|
description: Core for a group of plugins designed to enhance gameplay to the max
|
5
target/maven-archiver/pom.properties
Normal file
5
target/maven-archiver/pom.properties
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#Generated by Maven
|
||||||
|
#Wed Jan 27 08:29:34 CST 2021
|
||||||
|
groupId=io.github.paldiu.simplexcore
|
||||||
|
artifactId=SimplexCore
|
||||||
|
version=1.0.0-BLEEDING
|
@ -0,0 +1,17 @@
|
|||||||
|
io\github\paldiu\simplexcore\command\defaults\Command_info.class
|
||||||
|
io\github\paldiu\simplexcore\command\CommandLoader.class
|
||||||
|
io\github\paldiu\simplexcore\math\Size.class
|
||||||
|
io\github\paldiu\simplexcore\command\CommandBase.class
|
||||||
|
io\github\paldiu\simplexcore\command\CommandInfo.class
|
||||||
|
io\github\paldiu\simplexcore\plugin\AddonRegistry.class
|
||||||
|
io\github\paldiu\simplexcore\command\CommandLoader$Registry.class
|
||||||
|
io\github\paldiu\simplexcore\utils\Constants$TimeValues.class
|
||||||
|
io\github\paldiu\simplexcore\utils\Bean.class
|
||||||
|
io\github\paldiu\simplexcore\utils\Constants.class
|
||||||
|
io\github\paldiu\simplexcore\SimplexCore.class
|
||||||
|
io\github\paldiu\simplexcore\utils\Trio.class
|
||||||
|
io\github\paldiu\simplexcore\plugin\AddonManager.class
|
||||||
|
io\github\paldiu\simplexcore\math\Cuboid.class
|
||||||
|
io\github\paldiu\simplexcore\plugin\Addon.class
|
||||||
|
io\github\paldiu\simplexcore\command\defaults\DefaultCommand.class
|
||||||
|
io\github\paldiu\simplexcore\utils\Utilities.class
|
@ -0,0 +1,14 @@
|
|||||||
|
C:\Users\Samantha\IdeaProjects\SimplexCore\src\main\java\io\github\paldiu\simplexcore\utils\Utilities.java
|
||||||
|
C:\Users\Samantha\IdeaProjects\SimplexCore\src\main\java\io\github\paldiu\simplexcore\command\CommandInfo.java
|
||||||
|
C:\Users\Samantha\IdeaProjects\SimplexCore\src\main\java\io\github\paldiu\simplexcore\plugin\AddonManager.java
|
||||||
|
C:\Users\Samantha\IdeaProjects\SimplexCore\src\main\java\io\github\paldiu\simplexcore\math\Size.java
|
||||||
|
C:\Users\Samantha\IdeaProjects\SimplexCore\src\main\java\io\github\paldiu\simplexcore\utils\Trio.java
|
||||||
|
C:\Users\Samantha\IdeaProjects\SimplexCore\src\main\java\io\github\paldiu\simplexcore\command\CommandBase.java
|
||||||
|
C:\Users\Samantha\IdeaProjects\SimplexCore\src\main\java\io\github\paldiu\simplexcore\plugin\Addon.java
|
||||||
|
C:\Users\Samantha\IdeaProjects\SimplexCore\src\main\java\io\github\paldiu\simplexcore\plugin\AddonRegistry.java
|
||||||
|
C:\Users\Samantha\IdeaProjects\SimplexCore\src\main\java\io\github\paldiu\simplexcore\utils\Bean.java
|
||||||
|
C:\Users\Samantha\IdeaProjects\SimplexCore\src\main\java\io\github\paldiu\simplexcore\command\CommandLoader.java
|
||||||
|
C:\Users\Samantha\IdeaProjects\SimplexCore\src\main\java\io\github\paldiu\simplexcore\command\defaults\Command_info.java
|
||||||
|
C:\Users\Samantha\IdeaProjects\SimplexCore\src\main\java\io\github\paldiu\simplexcore\SimplexCore.java
|
||||||
|
C:\Users\Samantha\IdeaProjects\SimplexCore\src\main\java\io\github\paldiu\simplexcore\math\Cuboid.java
|
||||||
|
C:\Users\Samantha\IdeaProjects\SimplexCore\src\main\java\io\github\paldiu\simplexcore\utils\Constants.java
|
Loading…
Reference in New Issue
Block a user