Skip to content

Commit

Permalink
更新Sponge
Browse files Browse the repository at this point in the history
  • Loading branch information
DreamVoid committed Jun 26, 2024
1 parent b181002 commit 43766a9
Show file tree
Hide file tree
Showing 5 changed files with 48 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLClassLoader;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
Expand Down Expand Up @@ -86,6 +87,10 @@ public static Logger getLogger(){

public static void setClassLoader(ClassLoader classLoader) {
Utils.classLoader = classLoader;
for(URL u : ((URLClassLoader) classLoader).getURLs()){
logger.info(u.getPath());
}
logger.info(classLoader.getParent().getClass().getPackage().getName());
}

public static ClassLoader getClassLoader(){
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,12 @@ private static long getLong(String path, long defaults){
}
} else {
Object o = maps.get(args[i]);
if(o instanceof Long){
if(o instanceof Long) {
return (long) o;
} else if(o instanceof Integer) {
return Long.parseLong(String.valueOf(o));
} else if(o instanceof String){
return Long.parseLong((String) o);
} else {
throw new IllegalStateException(path + " is not a long value");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

@SuppressWarnings("deprecation")
public class SpongeLogger extends Logger {
private final org.slf4j.Logger logger;
private final org.apache.logging.log4j.Logger logger;
/**
* Protected method to construct a logger for a named subsystem.
* <p>
Expand All @@ -22,7 +22,7 @@ public class SpongeLogger extends Logger {
* @throws MissingResourceException if the resourceBundleName is non-null and
* no corresponding resource can be found.
*/
protected SpongeLogger(String name, org.slf4j.Logger logger) {
protected SpongeLogger(String name, org.apache.logging.log4j.Logger logger) {
super(name, null);
this.logger = logger;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@
import me.dreamvoid.miraimc.sponge.utils.Metrics;
import me.dreamvoid.miraimc.sponge.utils.SpecialUtils;
import net.kyori.adventure.text.Component;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.logging.log4j.Logger;
import org.spongepowered.api.Server;
import org.spongepowered.api.Sponge;
import org.spongepowered.api.command.Command;
Expand All @@ -32,43 +31,57 @@

import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import java.nio.file.Path;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.UUID;

@Plugin(value = "miraimc")
public class SpongePlugin implements Platform {
// MiraiMC 主代码
private final LifeCycle lifeCycle;
private PluginConfig platformConfig;
@SuppressWarnings("SpongeLogging")
private java.util.logging.Logger SpongeLogger;
private final LibraryLoader loader;
private final Metrics.Factory metricsFactory;

@Inject
public SpongePlugin(Metrics.Factory factory){
lifeCycle = new LifeCycle(this);
lifeCycle.startUp(new SpongeLogger("MiraiMC", LoggerFactory.getLogger("MiraiMC")));
loader = new LibraryLoader((URLClassLoader) getClass().getClassLoader());

metricsFactory = factory;
}
private final java.util.logging.Logger SpongeLogger;
private LibraryLoader loader;

@Inject
private Logger logger;
public SpongePlugin(@ConfigDir(sharedRoot = false) Path dataFolder, final PluginContainer container, final org.apache.logging.log4j.Logger logger, final Metrics.Factory factory, final MetricsConfigManager metricsConfigManager){
this.pluginContainer = container;
this.logger = logger;
this.dataFolder = dataFolder.toFile();
this.metricsFactory = factory;
this.metricsConfigManager = metricsConfigManager;

@Inject
@ConfigDir(sharedRoot = false)
private File dataFolder;
SpongeLogger = new SpongeLogger("MiraiMC", logger);

@Inject
private PluginContainer pluginContainer;
lifeCycle = new LifeCycle(this);
lifeCycle.startUp(SpongeLogger);

if(getClass().getClassLoader() instanceof URLClassLoader){
loader = new LibraryLoader((URLClassLoader) getClass().getClassLoader());
} else {
logger.warn("Plugin's ClassLoader not an instance of URLClassLoader, some functions will broken!");
try{
loader = new LibraryLoader(new URLClassLoader(new URL[]{dataFolder.resolve("libraries").toUri().toURL(), dataFolder.resolve("MiraiBot").resolve("libs").toUri().toURL()}));
} catch (MalformedURLException e) {
Utils.resolveException(e, SpongeLogger, "");
}
}
}

@Inject
private MetricsConfigManager metricsConfigManager;
// Sponge 内部
private final PluginContainer pluginContainer;
private final Logger logger;
private final Metrics.Factory metricsFactory;
private final File dataFolder;
private final MetricsConfigManager metricsConfigManager;

// Sponge 专有
private MiraiEvent MiraiEvent;
private MiraiAutoLogin MiraiAutoLogin;

Expand All @@ -77,8 +90,6 @@ public SpongePlugin(Metrics.Factory factory){
*/
@Listener
public void onLoad(StartingEngineEvent<Server> e) {
SpongeLogger = new SpongeLogger("MiraiMC", this.getLogger());

try {
platformConfig = new SpongeConfig(this);
lifeCycle.preLoad();
Expand Down Expand Up @@ -247,7 +258,7 @@ public String getPluginName() {

@Override
public String getPluginVersion() {
return getPluginContainer().metadata().version().getQualifier();
return getPluginContainer().metadata().version().toString();
}

@Override
Expand Down

0 comments on commit 43766a9

Please sign in to comment.