Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
29ae27a
- First closed alpha build
invalid-email-address Jul 17, 2024
63d272d
ResourcePackManager 0.0.2:
invalid-email-address Jul 29, 2024
4527e36
ResourcePackManager 1.0.0:
invalid-email-address Aug 2, 2024
76ad4b3
- Added Bstats
invalid-email-address Aug 2, 2024
be0acb3
Note: Make sure to delete the mixer folder for this update. This shou…
invalid-email-address Aug 3, 2024
7925925
ResourcePackManager 1.0.2:
invalid-email-address Aug 3, 2024
08f61c8
ResourcePackManager 1.1.0
invalid-email-address Aug 7, 2024
f224fc4
ResourcePackManager 1.2.0
invalid-email-address Aug 11, 2024
ac12a77
Fix file handling inconsistencies in BetterHUD and Mix.java.
invalid-email-address Nov 11, 2024
a9b03cd
ResourcePackManager 1.2.2
invalid-email-address Dec 14, 2024
a139378
ResourcePackManager 1.3.0
Feb 7, 2025
cb4c169
ResourcePackManager 1.4.1
Jun 20, 2025
d29b885
Resource Pack Manager 1.5.0:
Jul 26, 2025
6e93ee0
Resource Pack Manager 1.6.0:
Aug 3, 2025
95a4052
Resource Pack Manager 1.7.0:
Dec 6, 2025
f770621
Resource Pack Manager 1.7.1:
Dec 19, 2025
5a93470
Resource Pack Manager 1.7.2:
Jan 17, 2026
ca88cf2
Resource Pack Manager 1.7.2:
Jan 29, 2026
74ad905
Resource Pack Manager 1.7.3:
Feb 2, 2026
b7c2274
Resource Pack Manager 1.7.5:
Mar 11, 2026
7decefe
Fix NoSuchFileException during resource pack mixing by creating paren…
Mar 14, 2026
7e202d1
Migrate ResourcePackManager to NightbreakPluginBootstrap
Mar 14, 2026
90bc5e8
Save current state before Lua scripting abstraction refactor
Mar 18, 2026
de9717c
Update ResourcePackManager to Magmacore 2.0.0-SNAPSHOT
Mar 18, 2026
57a9b33
fix: retry file copy on Windows lock when cloning resource packs
Mar 19, 2026
6442471
fix: use Bukkit scheduler for file lock retry instead of Thread.sleep
Mar 19, 2026
a62d423
refactor+fix: major cleanup and merge logic overhaul
Mar 26, 2026
862515d
fix: skip SHA1 watchdog check for cluster packs (source is a director…
Mar 26, 2026
bbc7c02
fix: preserve non-standard top-level keys in pack.mcmeta during merge
Mar 29, 2026
c87376e
Resource Pack Manager 1.7.6:
Mar 29, 2026
033ced1
Resource Pack Manager 1.7.6:
Mar 29, 2026
7fe8ca7
Implemented autoMixOnStartup config
ImTheLeviDR Apr 6, 2026
cec5de3
Send the last resource pack if no new mix on server start
ImTheLeviDR Apr 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 12 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,7 @@ target/
!**/src/test/**/target/

### IntelliJ IDEA ###
.idea/modules.xml
.idea/jarRepositories.xml
.idea/compiler.xml
.idea/libraries/
.idea/
*.iws
*.iml
*.ipr
Expand Down Expand Up @@ -35,4 +32,14 @@ build/
.vscode/

### Mac OS ###
.DS_Store
.DS_Store

### Claude / AI ###
.claude/
codex-build.log

### Docs ###
docs/plans/

### Generated ###
dependency-reduced-pom.xml
60 changes: 56 additions & 4 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,13 @@

<groupId>com.magmaguy</groupId>
<artifactId>ResourcePackManager</artifactId>
<version>1.0-SNAPSHOT</version>
<version>1.7.6</version>

<properties>
<maven.compiler.source>22</maven.compiler.source>
<maven.compiler.target>22</maven.compiler.target>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<lombok.version>1.18.42</lombok.version>
</properties>

<repositories>
Expand All @@ -22,6 +23,11 @@
<id>central</id>
<url>https://repo1.maven.org/maven2/</url>
</repository>
<repository>
<id>magmaguy-repo-releases</id>
<name>MagmaGuy's Repository</name>
<url>https://repo.magmaguy.com/releases</url>
</repository>
</repositories>

<dependencies>
Expand All @@ -34,7 +40,7 @@
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.34</version>
<version>${lombok.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
Expand All @@ -47,10 +53,41 @@
<artifactId>httpclient5</artifactId>
<version>5.3.1</version>
</dependency>
<dependency>
<groupId>com.magmaguy</groupId>
<artifactId>MagmaCore</artifactId>
<version>2.0.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<!-- Bstats -->
<dependency>
<groupId>org.bstats</groupId>
<artifactId>bstats-bukkit</artifactId>
<version>3.0.2</version>
<scope>compile</scope>
</dependency>
</dependencies>

<build>
<finalName>ResourcePackManager</finalName>

<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.13.0</version>
<configuration>
<source>17</source>
<target>17</target>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
Expand All @@ -68,11 +105,26 @@
<pattern>org.apache.hc</pattern>
<shadedPattern>com.magmaguy.resourcepackmanager.org.apache.hc</shadedPattern>
</relocation>
<relocation>
<pattern>org.bstats</pattern>
<shadedPattern>com.magmaguy.resourcepackmanager.bstats</shadedPattern>
</relocation>
</relocations>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<distributionManagement>
<snapshotRepository>
<id>magmaguy-repo-snapshots</id>
<url>https://magmaguy.com/snapshots</url>
</snapshotRepository>
<repository>
<id>magmaguy-repo-snapshots</id>
<name>MagmaGuy's Repository</name>
<url>https://repo.magmaguy.com/releases</url>
</repository>
</distributionManagement>
</project>

This file was deleted.

14 changes: 0 additions & 14 deletions src/main/java/com/magmaguy/resourcepackmanager/Logger.java

This file was deleted.

141 changes: 131 additions & 10 deletions src/main/java/com/magmaguy/resourcepackmanager/ResourcePackManager.java
Original file line number Diff line number Diff line change
@@ -1,16 +1,43 @@
package com.magmaguy.resourcepackmanager;

import com.magmaguy.magmacore.MagmaCore;
import com.magmaguy.magmacore.command.CommandManager;
import com.magmaguy.magmacore.initialization.PluginInitializationConfig;
import com.magmaguy.magmacore.initialization.PluginInitializationContext;
import com.magmaguy.magmacore.initialization.PluginInitializationState;
import com.magmaguy.magmacore.nightbreak.NightbreakPluginBootstrap;
import com.magmaguy.magmacore.nightbreak.NightbreakPluginHooks;
import com.magmaguy.magmacore.nightbreak.NightbreakPluginSpec;
import com.magmaguy.magmacore.util.Logger;
import com.magmaguy.resourcepackmanager.autohost.AutoHost;
import com.magmaguy.resourcepackmanager.commands.CommandManager;
import com.magmaguy.resourcepackmanager.commands.DataComplianceRequestCommand;
import com.magmaguy.resourcepackmanager.commands.ReloadCommand;
import com.magmaguy.resourcepackmanager.config.BlueprintFolder;
import com.magmaguy.resourcepackmanager.itemsadder.ItemsAdderCommand;
import com.magmaguy.resourcepackmanager.itemsadder.ItemsAdderDismissedConfig;
import com.magmaguy.resourcepackmanager.itemsadder.ItemsAdderWarningListener;
import com.magmaguy.resourcepackmanager.config.DataConfig;
import com.magmaguy.resourcepackmanager.config.DefaultConfig;
import com.magmaguy.resourcepackmanager.mixer.Mix;
import com.magmaguy.resourcepackmanager.config.compatibleplugins.CompatiblePluginConfig;
import com.magmaguy.resourcepackmanager.config.compatibleplugins.CompatiblePluginConfigFields;
import com.magmaguy.resourcepackmanager.playermanager.PlayerManager;
import com.magmaguy.resourcepackmanager.thirdparty.ThirdPartyResourcePack;
import org.bstats.bukkit.Metrics;
import org.bukkit.Bukkit;
import org.bukkit.plugin.Plugin;
import org.bukkit.event.HandlerList;
import org.bukkit.plugin.java.JavaPlugin;

import java.io.File;

public class ResourcePackManager extends JavaPlugin {

public static Plugin plugin;
public static final NightbreakPluginSpec NIGHTBREAK_PLUGIN_SPEC = new NightbreakPluginSpec(
"ResourcePackManager", "resourcepackmanager", "resourcepackmanager.*",
"resourcepackmanager.setup", "resourcepackmanager.initialize",
"", "Reloaded ResourcePackManager.",
false, false, false);

public static JavaPlugin plugin;

@Override
public void onEnable() {
Expand All @@ -20,17 +47,111 @@ public void onEnable() {
" | /\\__ \\ _/ |\\/| / _` | ' \\/ _` / _` / -_) '_|\n" +
" |_|_\\|___/_| |_| |_\\__,_|_||_\\__,_\\__, \\___|_| \n" +
" |___/ ");
Logger.info("Enabling ResourcePackManager v." + this.getDescription().getVersion());
Bukkit.getLogger().info("ResourcePackManager v." + this.getDescription().getVersion());
plugin = this;
DefaultConfig.initializeConfig();
Mix.initialize();
AutoHost.initialize();
new CommandManager(this);
NightbreakPluginBootstrap.startInitialization(this,
new PluginInitializationConfig("ResourcePackManager", null, 10),
NIGHTBREAK_PLUGIN_SPEC,
new NightbreakPluginHooks() {
@Override
public void asyncInitialization(PluginInitializationContext initializationContext) {
ResourcePackManager.this.asyncInitialization(initializationContext);
}

@Override
public void syncInitialization(PluginInitializationContext initializationContext) {
ResourcePackManager.this.syncInitialization(initializationContext);
}

@Override
public void onInitializationSuccess() {
Logger.info("ResourcePackManager fully initialized!");
}

@Override
public void onInitializationFailure(Throwable throwable) {
throwable.printStackTrace();
}
});
}

@Override
public void onLoad() {
MagmaCore.createInstance(this);
}

@Override
public void onDisable() {
MagmaCore.requestInitializationShutdown(this);
if (MagmaCore.getInitializationState(this.getName()) == PluginInitializationState.INITIALIZING) {
Logger.info("Disabling ResourcePackManager during initialization");
ThirdPartyResourcePack.shutdown();
AutoHost.shutdown();
HandlerList.unregisterAll(this);
MagmaCore.shutdown(this);
return;
}
Logger.info("Disabling ResourcePackManager");
ThirdPartyResourcePack.shutdown();
AutoHost.shutdown();
HandlerList.unregisterAll(this);
MagmaCore.shutdown(this);
}

private void asyncInitialization(PluginInitializationContext initializationContext) {
initializationContext.step("Data Config");
new DataConfig();

initializationContext.step("Default Config");
new DefaultConfig();

initializationContext.step("ItemsAdder Config");
new ItemsAdderDismissedConfig();

initializationContext.step("Mixer Folder");
File mixerFolder = new File(getDataFolder(), "mixer");
if (!mixerFolder.exists()) {
mixerFolder.mkdirs();
}

initializationContext.step("Blueprint Folder");
BlueprintFolder.initialize();

initializationContext.step("Compatible Plugins");
new CompatiblePluginConfig();

initializationContext.step("Pack Integrations");
for (CompatiblePluginConfigFields compatiblePluginConfigFields : CompatiblePluginConfig.getCompatiblePlugins().values()) {
if (!compatiblePluginConfigFields.isEnabled()) continue;
ThirdPartyResourcePack.initializeThirdPartyResourcePack(compatiblePluginConfigFields);
}
}

private void syncInitialization(PluginInitializationContext initializationContext) {
initializationContext.step("Change Watchdog");
ThirdPartyResourcePack.startResourcePackChangeWatchdog();

initializationContext.step("Event Listeners");
if (DefaultConfig.isAutoHost()) {
Bukkit.getPluginManager().registerEvents(new PlayerManager(), this);
}
Bukkit.getPluginManager().registerEvents(new ItemsAdderWarningListener(), this);

initializationContext.step("Commands");
CommandManager commandManager = new CommandManager(this, "resourcepackmanager");
NightbreakPluginBootstrap.registerStandardCommands(this,
commandManager,
NIGHTBREAK_PLUGIN_SPEC,
player -> Logger.sendMessage(player, "&eResourcePackManager has no setup menu. Edit config files in plugins/ResourcePackManager/ and use &6/resourcepackmanager reload&e."),
sender -> ReloadCommand.reloadPlugin(sender));
commandManager.registerCommand(new ReloadCommand());
commandManager.registerCommand(new DataComplianceRequestCommand());
commandManager.registerCommand(new ItemsAdderCommand());

initializationContext.step("Metrics");
new Metrics(this, 22867);

initializationContext.step("Version Check");
MagmaCore.checkVersionUpdate("118574", "https://www.spigotmc.org/resources/resource-pack-manager.118574/");
}
}
}
Loading