Skip to content

Commit

Permalink
1.2-SNAPSHOT
Browse files Browse the repository at this point in the history
  • Loading branch information
404Setup committed Sep 21, 2024
1 parent 9b963a0 commit 5b7785d
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 5 deletions.
9 changes: 7 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ plugins {
}

group = 'one.tranic'
version = '1.1-SNAPSHOT'
version = '1.2-SNAPSHOT'

repositories {
maven {
Expand All @@ -24,8 +24,12 @@ repositories {
url = "https://oss.sonatype.org/content/groups/public/"
}
maven {
url = "https://repo.repsy.io/mvn/rdb/default"
name = "jitpack"
url = "https://jitpack.io"
}
maven {
name = "tranic-repo"
url = "https://repo.repsy.io/mvn/rdb/default"
}
}

Expand All @@ -36,6 +40,7 @@ dependencies {
implementation("org.apache.maven:maven-resolver-provider:3.9.9")
implementation("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.22")
implementation("org.apache.maven.resolver:maven-resolver-transport-http:1.9.22")
implementation("com.github.Carleslc.Simple-YAML:Simple-Yaml:1.8.4")
}

def targetJavaVersion = 17
Expand Down
14 changes: 11 additions & 3 deletions src/main/java/one/tranic/mavenLoader/MavenLoader.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,27 @@
import com.velocitypowered.api.event.proxy.ProxyInitializeEvent;
import com.velocitypowered.api.event.proxy.ProxyShutdownEvent;
import com.velocitypowered.api.plugin.Plugin;
import com.velocitypowered.api.plugin.annotation.DataDirectory;
import one.tranic.mavenLoader.plugins.Loader;
import org.slf4j.Logger;

import java.nio.file.Path;

@Plugin(id = "maven-loader", name = "MavenLoader", version = BuildConstants.VERSION, url = "https://tranic.one", authors = {"404"})
public class MavenLoader {

private final Metrics.Factory metricsFactory;
private Logger logger;
private final Logger logger;
private Metrics metrics;

@Inject
public MavenLoader(Logger logger, Metrics.Factory metricsFactory) {
public MavenLoader(Logger logger, Metrics.Factory metricsFactory, @DataDirectory Path dataDirectory) {
this.logger = logger;
this.metricsFactory = metricsFactory;
try {
new Loader().scanJarFiles(dataDirectory.getParent());
} catch (Exception e) {
e.printStackTrace();
}
}

@Subscribe
Expand Down
52 changes: 52 additions & 0 deletions src/main/java/one/tranic/mavenLoader/plugins/Loader.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package one.tranic.mavenLoader.plugins;

import one.tranic.mavenloader.api.MavenLibraryResolver;
import org.simpleyaml.configuration.file.YamlConfiguration;

import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;
import java.util.jar.JarFile;
import java.util.zip.ZipEntry;

public class Loader {
public void scanJarFiles(Path directory) throws Exception {
try (DirectoryStream<Path> stream = Files.newDirectoryStream(directory, "*.jar")) {
for (Path entry : stream) {
if (Files.isRegularFile(entry)) {
checkForMavenYml(entry);
}
}
}
}

private void checkForMavenYml(Path jarPath) throws Exception {
try (JarFile jarFile = new JarFile(jarPath.toFile())) {
ZipEntry mavenYmlEntry = jarFile.getEntry("maven.yml");
if (mavenYmlEntry != null && !mavenYmlEntry.isDirectory()) {
parseMavenYml(jarFile, mavenYmlEntry);
}
}
}

private void parseMavenYml(JarFile jarFile, ZipEntry entry) throws Exception {
try (var inputStream = jarFile.getInputStream(entry)) {
YamlConfiguration c = YamlConfiguration.loadConfiguration(inputStream);
List<String> repository = c.getStringList("repository");
List<String> dependency = c.getStringList("dependency");
if (dependency.isEmpty()) return;
MavenLibraryResolver resolver = new MavenLibraryResolver();
if (!repository.isEmpty()) {
int i = 0;
for (String repo : repository) {
resolver.addRepository(repo, "AutoRepository-" + i);
i++;
}
}
for (String dep : dependency) {
resolver.addDependency(dep);
}
}
}
}

0 comments on commit 5b7785d

Please sign in to comment.