1
mirror of https://github.com/StarWishsama/Slimefun4.git synced 2024-09-19 19:25:48 +00:00

feat: added orebfuscator integration

This commit is contained in:
NgLoader 2021-06-21 21:13:49 +02:00
parent 80608b1e08
commit 282f9e0e43
4 changed files with 84 additions and 0 deletions

19
pom.xml
View File

@ -90,6 +90,11 @@
<id>walshy-public</id>
<url>https://repo.walshy.dev/public</url>
</repository>
<repository>
<!-- Orebfuscator -->
<id>imprex-repo</id>
<url>https://imprex.ingrim4.me/repository/maven-public/</url>
</repository>
</repositories>
<build>
@ -473,6 +478,20 @@
<version>2.3.8</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<!-- We don't need any of the dependencies -->
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>net.imprex</groupId>
<artifactId>orebfuscator-api</artifactId>
<version>1.0.0</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<!-- We don't need any of the dependencies -->

View File

@ -54,6 +54,7 @@ public class IntegrationsManager {
private boolean isMcMMOInstalled = false;
private boolean isClearLagInstalled = false;
private boolean isItemsAdderInstalled = false;
private boolean isOrebfuscatorInstalled = false;
// Addon support
private boolean isChestTerminalInstalled = false;
@ -140,6 +141,12 @@ public class IntegrationsManager {
SlimefunPlugin.logger().log(Level.WARNING, x, () -> "Failed to load Protection plugin integrations for Slimefun v" + SlimefunPlugin.getVersion());
}
// Orebfuscator Integration
load("Orebfuscator", integration -> {
new OrebfuscatorIntegration(plugin).register();
isOrebfuscatorInstalled = true;
});
isChestTerminalInstalled = isAddonInstalled("ChestTerminal");
}
@ -281,4 +288,7 @@ public class IntegrationsManager {
return isChestTerminalInstalled;
}
public boolean isOrebfuscatorInstalled() {
return isOrebfuscatorInstalled;
}
}

View File

@ -0,0 +1,54 @@
package io.github.thebusybiscuit.slimefun4.integrations;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import javax.annotation.Nonnull;
import org.bukkit.Bukkit;
import org.bukkit.block.Block;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.plugin.RegisteredServiceProvider;
import io.github.thebusybiscuit.slimefun4.api.events.BlockPlacerPlaceEvent;
import io.github.thebusybiscuit.slimefun4.api.events.ExplosiveToolBreakBlocksEvent;
import io.github.thebusybiscuit.slimefun4.api.events.ReactorExplodeEvent;
import io.github.thebusybiscuit.slimefun4.implementation.SlimefunPlugin;
import net.imprex.orebfuscator.api.OrebfuscatorService;
public class OrebfuscatorIntegration implements Listener {
private final SlimefunPlugin plugin;
private OrebfuscatorService service;
public OrebfuscatorIntegration(@Nonnull SlimefunPlugin plugin) {
this.plugin = plugin;
}
public void register() {
RegisteredServiceProvider<OrebfuscatorService> provider = Bukkit.getServer().getServicesManager().getRegistration(OrebfuscatorService.class);
this.service = provider.getProvider();
Bukkit.getServer().getPluginManager().registerEvents(this, this.plugin);
}
@EventHandler
public void onBlockPlacerPlace(BlockPlacerPlaceEvent event) {
this.service.deobfuscate(Arrays.asList(event.getBlock(), event.getBlockPlacer()));
}
@EventHandler
public void onExplosiveToolBreakBlocks(ExplosiveToolBreakBlocksEvent event) {
Set<Block> blocks = new HashSet<>();
blocks.addAll(event.getAdditionalBlocks());
blocks.add(event.getPrimaryBlock());
this.service.deobfuscate(blocks);
}
@EventHandler
public void onReactorExplode(ReactorExplodeEvent event) {
this.service.deobfuscate(Arrays.asList(event.getLocation().getBlock()));
}
}

View File

@ -18,6 +18,7 @@ softdepend:
- ClearLag
- mcMMO
- ItemsAdder
- Orebfuscator
# We hook into these plugins too, but they depend on Slimefun.
loadBefore: