Skip to content

Commit f4f9426

Browse files
authored
Merge pull request #140 from Kawi16/main
added: IridiumSkyblock hook
2 parents 4bdc4c0 + 5b57905 commit f4f9426

8 files changed

Lines changed: 71 additions & 2 deletions

File tree

build.gradle

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ allprojects {
2323
maven { name = "codemc"; url = "https://repo.codemc.io/repository/bentoboxworld/" }
2424
maven { name = "nightexpress-releases"; url = "https://repo.nightexpressdev.com/releases"}
2525
maven { name = "minecodes-repository-releases"; url = "https://repository.minecodes.pl/releases"}
26-
maven { name = "Lumine Releases"; url 'https://mvn.lumine.io/repository/maven-public/' }
26+
maven { name = "Lumine Releases"; url = 'https://mvn.lumine.io/repository/maven-public/' }
27+
maven { name = "iridiumdevelopment"; url = "https://nexus.iridiumdevelopment.net/repository/maven-releases/" }
2728
}
2829
}
2930

core/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ dependencies {
2323
compileOnly 'dev.aurelium:auraskills-api-bukkit:2.3.6'
2424
compileOnly 'pl.minecodes.plots:plugin-api:4.6.2'
2525
compileOnly("io.lumine:Mythic-Dist:5.10.0-SNAPSHOT")
26+
compileOnly("com.iridium:IridiumSkyblock:4.1.0")
2627
// Lombok
2728
compileOnly("org.projectlombok:lombok:1.18.38")
2829
annotationProcessor("org.projectlombok:lombok:1.18.38")

core/src/main/java/github/nighter/smartspawner/hooks/IntegrationManager.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import github.nighter.smartspawner.SmartSpawner;
44
import github.nighter.smartspawner.hooks.drops.MythicMobsHook;
5+
import github.nighter.smartspawner.hooks.protections.api.IridiumSkyblock;
56
import github.nighter.smartspawner.hooks.protections.api.Lands;
67
import github.nighter.smartspawner.hooks.protections.api.SuperiorSkyblock2;
78
import github.nighter.smartspawner.hooks.rpg.AuraSkillsIntegration;
@@ -29,6 +30,7 @@ public class IntegrationManager {
2930
private boolean hasRedProtect = false;
3031
private boolean hasMinePlots = false;
3132
private boolean hasMythicMobs = false;
33+
private boolean hasIridiumSkyblock = false;
3234

3335
// Integration plugin flags
3436
private boolean hasAuraSkills = false;
@@ -116,6 +118,15 @@ private void checkProtectionPlugins() {
116118
}
117119
return false;
118120
}, true);
121+
122+
hasIridiumSkyblock = checkPlugin("IridiumSkyblock", () -> {
123+
Plugin is = Bukkit.getPluginManager().getPlugin("IridiumSkyblock");
124+
if(is != null && is.isEnabled()) {
125+
IridiumSkyblock.init();
126+
return true;
127+
}
128+
return false;
129+
}, true);
119130
}
120131

121132
private void checkIntegrationPlugins() {

core/src/main/java/github/nighter/smartspawner/hooks/protections/CheckOpenMenu.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public static boolean CanPlayerOpenMenu(@NotNull final Player player, @NotNull L
2323
if (integrationManager.isHasSimpleClaimSystem() && !SimpleClaimSystem.canPlayerOpenMenuOnClaim(player, location))
2424
return false;
2525
if (integrationManager.isHasMinePlots() && !MinePlots.canPlayerOpenMenu(player, location)) return false;
26+
if (integrationManager.isHasIridiumSkyblock() && !IridiumSkyblock.canPlayerOpenMenu(player, location)) return false;
2627
return !integrationManager.isHasRedProtect() || RedProtectAPI.canPlayerOpenMenuOnClaim(player, location);
2728
}
2829
}

core/src/main/java/github/nighter/smartspawner/hooks/protections/CheckStackBlock.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public static boolean CanPlayerPlaceBlock(@NotNull final Player player, @NotNull
2323
if (integrationManager.isHasSimpleClaimSystem() && !SimpleClaimSystem.canPlayerStackClaimBlock(player, location))
2424
return false;
2525
if (integrationManager.isHasMinePlots() && !MinePlots.canPlayerStackBlock(player, location)) return false;
26+
if (integrationManager.isHasIridiumSkyblock() && !IridiumSkyblock.canPlayerStackBlock(player, location)) return false;
2627
return !integrationManager.isHasRedProtect() || RedProtectAPI.canPlayerStackClaimBlock(player, location);
2728
}
2829
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package github.nighter.smartspawner.hooks.protections.api;
2+
3+
import com.iridium.iridiumskyblock.api.IridiumSkyblockAPI;
4+
import com.iridium.iridiumskyblock.database.Island;
5+
import com.iridium.iridiumskyblock.database.User;
6+
import com.iridium.iridiumskyblock.dependencies.iridiumcore.Item;
7+
import com.iridium.iridiumskyblock.dependencies.iridiumteams.Permission;
8+
import com.iridium.iridiumskyblock.dependencies.iridiumteams.PermissionType;
9+
import com.iridium.iridiumskyblock.dependencies.xseries.XMaterial;
10+
import org.bukkit.Bukkit;
11+
import org.bukkit.Location;
12+
import org.bukkit.entity.Player;
13+
import org.jetbrains.annotations.NotNull;
14+
15+
import java.util.Arrays;
16+
import java.util.Optional;
17+
18+
public class IridiumSkyblock {
19+
public static void init() {
20+
Permission spawnerOpenMenuPermission = new Permission(
21+
new Item(XMaterial.SPAWNER, 38, 1, "&bSpawner Menu Permission", Arrays.asList(
22+
"&7Permission for permit users to open spawners menu.",
23+
"", "&b&lPermission",
24+
"%permission%")
25+
), 1, 1);
26+
Permission spawnerStackPermission = new Permission(
27+
new Item(XMaterial.SPAWNER, 39, 1, "&7Spawner Stack Permission", Arrays.asList(
28+
"&7Permission for permit users to stack spawners.",
29+
"", "&b&lPermission",
30+
"%permission%")
31+
), 1, 1);
32+
IridiumSkyblockAPI.getInstance().addPermission(spawnerOpenMenuPermission, "SpawnerOpenMenuPermission");
33+
IridiumSkyblockAPI.getInstance().addPermission(spawnerStackPermission, "SpawnerStackPermission");
34+
}
35+
36+
public static boolean canPlayerStackBlock(@NotNull Player player, @NotNull Location location) {
37+
return checkPermission(player, location, "SpawnerStackPermission");
38+
}
39+
40+
public static boolean canPlayerOpenMenu(@NotNull Player player, @NotNull Location location) {
41+
return checkPermission(player, location, "SpawnerOpenMenuPermission");
42+
}
43+
44+
private static boolean checkPermission(@NotNull Player player, @NotNull Location location, String permissionKey) {
45+
User user = IridiumSkyblockAPI.getInstance().getUser(player);
46+
Optional<Island> island = IridiumSkyblockAPI.getInstance().getIslandViaLocation(location);
47+
Optional<Permission> permission = IridiumSkyblockAPI.getInstance().getPermissions(permissionKey);
48+
Bukkit.broadcastMessage("c");
49+
if(user == null || island.isEmpty() || permission.isEmpty()) return true;
50+
Bukkit.broadcastMessage("d");
51+
return IridiumSkyblockAPI.getInstance().getIslandPermission(island.get(), user, permission.get(), permissionKey);
52+
}
53+
}

core/src/main/java/github/nighter/smartspawner/spawner/interactions/destroy/SpawnerBreakListener.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public SpawnerBreakListener(SmartSpawner plugin) {
5050
this.chunkSpawnerLimiter = plugin.getChunkSpawnerLimiter();
5151
}
5252

53-
@EventHandler(priority = EventPriority.HIGH)
53+
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
5454
public void onSpawnerBreak(BlockBreakEvent event) {
5555
final Player player = event.getPlayer();
5656
final Block block = event.getBlock();

core/src/main/resources/plugin.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ softdepend:
3030
- MultiWorld
3131
- Worlds
3232
- SuperiorSkyblock2
33+
- IridiumSkyblock
3334

3435
# RPG/Skill Plugins
3536
- AuraSkills

0 commit comments

Comments
 (0)