-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit cd55a4c
Showing
15 changed files
with
648 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,113 @@ | ||
# User-specific stuff | ||
.idea/ | ||
|
||
*.iml | ||
*.ipr | ||
*.iws | ||
|
||
# IntelliJ | ||
out/ | ||
|
||
# Compiled class file | ||
*.class | ||
|
||
# Log file | ||
*.log | ||
|
||
# BlueJ files | ||
*.ctxt | ||
|
||
# Package Files # | ||
*.jar | ||
*.war | ||
*.nar | ||
*.ear | ||
*.zip | ||
*.tar.gz | ||
*.rar | ||
|
||
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml | ||
hs_err_pid* | ||
|
||
*~ | ||
|
||
# temporary files which can be created if a process still has a handle open of a deleted file | ||
.fuse_hidden* | ||
|
||
# KDE directory preferences | ||
.directory | ||
|
||
# Linux trash folder which might appear on any partition or disk | ||
.Trash-* | ||
|
||
# .nfs files are created when an open file is removed but is still being accessed | ||
.nfs* | ||
|
||
# General | ||
.DS_Store | ||
.AppleDouble | ||
.LSOverride | ||
|
||
# Icon must end with two \r | ||
Icon | ||
|
||
# Thumbnails | ||
._* | ||
|
||
# Files that might appear in the root of a volume | ||
.DocumentRevisions-V100 | ||
.fseventsd | ||
.Spotlight-V100 | ||
.TemporaryItems | ||
.Trashes | ||
.VolumeIcon.icns | ||
.com.apple.timemachine.donotpresent | ||
|
||
# Directories potentially created on remote AFP share | ||
.AppleDB | ||
.AppleDesktop | ||
Network Trash Folder | ||
Temporary Items | ||
.apdisk | ||
|
||
# Windows thumbnail cache files | ||
Thumbs.db | ||
Thumbs.db:encryptable | ||
ehthumbs.db | ||
ehthumbs_vista.db | ||
|
||
# Dump file | ||
*.stackdump | ||
|
||
# Folder config file | ||
[Dd]esktop.ini | ||
|
||
# Recycle Bin used on file shares | ||
$RECYCLE.BIN/ | ||
|
||
# Windows Installer files | ||
*.cab | ||
*.msi | ||
*.msix | ||
*.msm | ||
*.msp | ||
|
||
# Windows shortcuts | ||
*.lnk | ||
|
||
target/ | ||
|
||
pom.xml.tag | ||
pom.xml.releaseBackup | ||
pom.xml.versionsBackup | ||
pom.xml.next | ||
|
||
release.properties | ||
dependency-reduced-pom.xml | ||
buildNumber.properties | ||
.mvn/timing.properties | ||
.mvn/wrapper/maven-wrapper.jar | ||
.flattened-pom.xml | ||
|
||
# Common working directory | ||
run/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<project xmlns="http://maven.apache.org/POM/4.0.0" | ||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||
<modelVersion>4.0.0</modelVersion> | ||
|
||
<groupId>de.dragonrex</groupId> | ||
<artifactId>DragonCore</artifactId> | ||
<version>1.0</version> | ||
<packaging>jar</packaging> | ||
|
||
<name>DragonCore</name> | ||
|
||
<properties> | ||
<java.version>1.8</java.version> | ||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | ||
</properties> | ||
|
||
<build> | ||
<plugins> | ||
<plugin> | ||
<groupId>org.apache.maven.plugins</groupId> | ||
<artifactId>maven-compiler-plugin</artifactId> | ||
<version>3.8.1</version> | ||
<configuration> | ||
<source>${java.version}</source> | ||
<target>${java.version}</target> | ||
</configuration> | ||
</plugin> | ||
<plugin> | ||
<groupId>org.apache.maven.plugins</groupId> | ||
<artifactId>maven-shade-plugin</artifactId> | ||
<version>3.2.4</version> | ||
<executions> | ||
<execution> | ||
<phase>package</phase> | ||
<goals> | ||
<goal>shade</goal> | ||
</goals> | ||
<configuration> | ||
<createDependencyReducedPom>false</createDependencyReducedPom> | ||
</configuration> | ||
</execution> | ||
</executions> | ||
</plugin> | ||
</plugins> | ||
<resources> | ||
<resource> | ||
<directory>src/main/resources</directory> | ||
<filtering>true</filtering> | ||
</resource> | ||
</resources> | ||
</build> | ||
|
||
<repositories> | ||
<repository> | ||
<id>spigotmc-repo</id> | ||
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url> | ||
</repository> | ||
<repository> | ||
<id>sonatype</id> | ||
<url>https://oss.sonatype.org/content/groups/public/</url> | ||
</repository> | ||
</repositories> | ||
|
||
<dependencies> | ||
<dependency> | ||
<groupId>org.spigotmc</groupId> | ||
<artifactId>spigot</artifactId> | ||
<version>1.18.2-R0.1-SNAPSHOT</version> | ||
<scope>provided</scope> | ||
</dependency> | ||
</dependencies> | ||
</project> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
package de.dragonrex.dragoncore; | ||
|
||
import de.dragonrex.dragoncore.module.ModuleLoader; | ||
import de.dragonrex.dragoncore.utils.EventLoader; | ||
import org.bukkit.plugin.java.JavaPlugin; | ||
|
||
public final class DragonCore extends JavaPlugin { | ||
private static DragonCore instance; | ||
private ModuleLoader loader; | ||
|
||
@Override | ||
public void onEnable() { | ||
instance = this; | ||
try { | ||
this.loader = new ModuleLoader(); | ||
} catch (Exception e) { | ||
e.printStackTrace(); | ||
} | ||
} | ||
|
||
@Override | ||
public void onDisable() { | ||
loader.disableAllModules(); | ||
} | ||
|
||
public static DragonCore getInstance() { | ||
return instance; | ||
} | ||
|
||
public ModuleLoader getLoader() { | ||
return this.loader; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
package de.dragonrex.dragoncore.logger; | ||
|
||
public class Logger { | ||
public static void log(LoggerType type, String logMessage) { | ||
switch (type) { | ||
case INFO: | ||
System.out.println("§2[INFO] " + logMessage); | ||
break; | ||
case WARNING: | ||
System.out.println("§6[WARNING] " + logMessage); | ||
break; | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
package de.dragonrex.dragoncore.logger; | ||
|
||
public enum LoggerType { | ||
INFO, | ||
WARNING; | ||
} |
32 changes: 32 additions & 0 deletions
32
src/main/java/de/dragonrex/dragoncore/module/DragonModule.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
package de.dragonrex.dragoncore.module; | ||
|
||
import de.dragonrex.dragoncore.DragonCore; | ||
import de.dragonrex.dragoncore.utils.DragonCommand; | ||
import de.dragonrex.dragoncore.utils.EventLoader; | ||
import org.bukkit.Bukkit; | ||
import org.bukkit.command.CommandMap; | ||
import org.bukkit.event.Listener; | ||
|
||
import java.lang.reflect.Field; | ||
|
||
public abstract class DragonModule { | ||
|
||
public void onDisable() {} | ||
|
||
public void onEnable() {} | ||
|
||
public void registerEvent(Listener listener) { | ||
EventLoader.registerEvent(listener, DragonCore.getInstance()); | ||
} | ||
|
||
public void registerCommand(DragonCommand command) { | ||
try { | ||
Field bukkitCommandMap = Bukkit.getServer().getClass().getDeclaredField("commandMap"); | ||
bukkitCommandMap.setAccessible(true); | ||
CommandMap commandMap = (CommandMap) bukkitCommandMap.get(Bukkit.getServer()); | ||
commandMap.register("TestModule", command); | ||
} catch (IllegalAccessException | NoSuchFieldException e) { | ||
e.printStackTrace(); | ||
} | ||
} | ||
} |
34 changes: 34 additions & 0 deletions
34
src/main/java/de/dragonrex/dragoncore/module/ExtensionLoader.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
package de.dragonrex.dragoncore.module; | ||
|
||
import java.io.File; | ||
import java.lang.reflect.Constructor; | ||
import java.net.URL; | ||
import java.net.URLClassLoader; | ||
import java.util.ArrayList; | ||
import java.util.List; | ||
|
||
public class ExtensionLoader<C> { | ||
|
||
public C loadClass(File jar, String classpath, Class<C> parentClass) throws Exception { | ||
try { | ||
File[] plugins = new File("modules/").listFiles(); | ||
List<URL> urls = new ArrayList<>(); | ||
for (File plugin : plugins) { | ||
if (plugin.getName().endsWith(".jar")) { | ||
urls.add(plugin.toURI().toURL()); | ||
} | ||
} | ||
urls.add(jar.toURI().toURL()); | ||
|
||
URLClassLoader urlClassLoader = new URLClassLoader(urls.toArray(new URL[urls.size()]), getClass().getClassLoader()); | ||
Class<?> clazz = Class.forName(classpath, true, urlClassLoader); | ||
Class<? extends C> newClass = clazz.asSubclass(parentClass); | ||
|
||
Constructor<? extends C> constructor = newClass.getConstructor(); | ||
return constructor.newInstance(); | ||
|
||
} catch (Exception exception) { | ||
throw exception; | ||
} | ||
} | ||
} |
24 changes: 24 additions & 0 deletions
24
src/main/java/de/dragonrex/dragoncore/module/ModuleConfig.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
package de.dragonrex.dragoncore.module; | ||
|
||
public class ModuleConfig { | ||
|
||
private final String name, autore, mainPath; | ||
|
||
public ModuleConfig(String name, String autore, String mainPath) { | ||
this.name = name; | ||
this.mainPath = mainPath; | ||
this.autore = autore; | ||
} | ||
|
||
public String getName() { | ||
return name; | ||
} | ||
|
||
public String getAutore() { | ||
return autore; | ||
} | ||
|
||
public String getMainPath() { | ||
return mainPath; | ||
} | ||
} |
Oops, something went wrong.