Skip to content

Commit fc295a1

Browse files
hykilpikonnaaanushkasharma
authored andcommitted
[O] Return jar file in UnloadBoundary
1 parent a60bfa1 commit fc295a1

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

src/main/java/org/hydev/mcpm/client/injector/PluginLoader.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@
1616
import java.io.File;
1717
import java.io.IOException;
1818
import java.net.URLClassLoader;
19-
import java.util.*;
19+
import java.util.Arrays;
20+
import java.util.List;
21+
import java.util.Map;
22+
import java.util.SortedSet;
2023

2124
import static org.hydev.mcpm.utils.ReflectionUtils.getPrivateField;
2225
import static org.hydev.mcpm.utils.ReflectionUtils.setPrivateField;
@@ -74,13 +77,14 @@ public boolean loadPlugin(File jar)
7477
}
7578

7679
@Override
77-
public void unloadPlugin(String name) throws PluginNotFoundException
80+
public File unloadPlugin(String name) throws PluginNotFoundException
7881
{
7982
var pm = Bukkit.getPluginManager();
8083

8184
// 1. Find plugin by name
8285
var plugin = Arrays.stream(pm.getPlugins()).filter(p -> p.getName().equalsIgnoreCase(name)).findFirst()
8386
.orElseThrow(() -> new PluginNotFoundException(name));
87+
var jar = new File(plugin.getClass().getProtectionDomain().getCodeSource().getLocation().getPath());
8488

8589
// 2. Unload plugin
8690
pm.disablePlugin(plugin);
@@ -127,6 +131,8 @@ public void unloadPlugin(String name) throws PluginNotFoundException
127131
e.printStackTrace();
128132
}
129133
}
134+
135+
return jar;
130136
}
131137

132138
@Override

src/main/java/org/hydev/mcpm/client/injector/UnloadBoundary.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package org.hydev.mcpm.client.injector;
22

3+
import java.io.File;
4+
35
/**
46
* Interface for unloading a locally installed plugin.
57
*
@@ -12,6 +14,8 @@ public interface UnloadBoundary
1214
* Dynamically unload a local plugin through JVM reflections and classloader hacks
1315
*
1416
* @param name Loaded plugin name
17+
* @return Jar file
18+
* @throws PluginNotFoundException If a loaded plugin of the name isn't found
1519
*/
16-
void unloadPlugin(String name) throws PluginNotFoundException;
20+
File unloadPlugin(String name) throws PluginNotFoundException;
1721
}

0 commit comments

Comments
 (0)