Skip to content

Commit

Permalink
Added protocolLib dependency + auto download
Browse files Browse the repository at this point in the history
  • Loading branch information
tbvns committed Jan 28, 2024
1 parent d1b206a commit 0b0329a
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 3 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package xyz.prismenetwork.kelpmodloader.Dependency;

import java.util.HashMap;

public class DependencyManager {
public static HashMap<String, String> dependency = new HashMap<>();
public static void check() {
//List of all dependency
dependency.put("ProtocolLib", "https://github.com/dmulloy2/ProtocolLib/releases/latest/download/ProtocolLib.jar");

dependency.forEach((n, l) -> {
Downloader.download(n, l);
});

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package xyz.prismenetwork.kelpmodloader.Dependency;

import xyz.prismenetwork.kelpmodloader.KelpModLoader;

import java.io.File;
import java.io.InputStream;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;

public class Downloader {
static File pluginFolder = KelpModLoader.getPlugin(KelpModLoader.class).getDataFolder().getParentFile();
public static void download(String name, String link) {

if (KelpModLoader.getPlugin(KelpModLoader.class).getServer().getPluginManager().getPlugin(name)!=null) return;

KelpModLoader.getPlugin(KelpModLoader.class).getLogger().warning(name + " is not installed, downloading ProtocolLib from " + link);

try {
InputStream in = new URL(link).openStream();
Files.copy(in, Path.of(pluginFolder.getPath() + "/"+ name + ".jar"), StandardCopyOption.REPLACE_EXISTING);

KelpModLoader.getInstance.getPluginLoader().loadPlugin(new File(pluginFolder.getPath() + "/" + name + ".jar"));

} catch (Exception e) {
KelpModLoader.getPlugin(KelpModLoader.class).getLogger().warning("Could not download protocolLib:");
e.printStackTrace();
}

}
}
Original file line number Diff line number Diff line change
@@ -1,20 +1,26 @@
package xyz.prismenetwork.kelpmodloader;

import org.bukkit.Material;
import org.bukkit.plugin.java.JavaPlugin;
import xyz.prismenetwork.kelpmodloader.Block.CreateBlock;
import xyz.prismenetwork.kelpmodloader.Dependency.DependencyManager;
import xyz.prismenetwork.kelpmodloader.EventHandler.BlockPlaceEvent;
import xyz.prismenetwork.kelpmodloader.EventHandler.BlockUpdateEvent;
import xyz.prismenetwork.kelpmodloader.Item.GenerateBlockItems;
import xyz.prismenetwork.kelpmodloader.Mods.ModsLoader;
import xyz.prismenetwork.kelpmodloader.Pack.CreatePack;
import xyz.prismenetwork.kelpmodloader.Dependency.Downloader;

import java.io.IOException;

public final class KelpModLoader extends JavaPlugin {
public static KelpModLoader getInstance = null;

@Override
public void onEnable() {
getInstance = this;

DependencyManager.check();

getServer().getConsoleSender().sendMessage( "\n" +
"§2---------------------------------- \n" +
" §2[ §aKelp Mod Loader §2] \n" +
Expand Down
4 changes: 2 additions & 2 deletions src/main/resources/plugin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@ name: KelpModLoader
version: '${project.version}'
main: xyz.prismenetwork.kelpmodloader.KelpModLoader
api-version: '1.20'
depend:
- ProtocolLib
authors:
- Tbvns

0 comments on commit 0b0329a

Please sign in to comment.