Skip to content

Commit

Permalink
Support WildStacker and RoseStacker
Browse files Browse the repository at this point in the history
  • Loading branch information
Sefiraat committed Jul 19, 2024
1 parent bb71d96 commit 864be74
Show file tree
Hide file tree
Showing 4 changed files with 80 additions and 2 deletions.
16 changes: 16 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,10 @@
<id>bg-repo</id>
<url>https://repo.bg-software.com/repository/api/</url>
</repository>
<repository>
<id>rosewood-repo</id>
<url>https://repo.rosewooddev.io/repository/public/</url>
</repository>
</repositories>

<dependencies>
Expand Down Expand Up @@ -214,6 +218,18 @@
<version>2.2.017</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.bgsoftware</groupId>
<artifactId>WildStackerAPI</artifactId>
<version>2023.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>dev.rosewood</groupId>
<artifactId>rosestacker</artifactId>
<version>1.5.23</version>
<scope>provided</scope>
</dependency>
</dependencies>


Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
package io.github.sefiraat.networks.managers;

import com.bgsoftware.wildstacker.api.WildStackerAPI;
import com.google.common.base.Preconditions;
import io.github.sefiraat.networks.Networks;
import org.bukkit.Bukkit;
import org.bukkit.entity.Item;

import dev.rosewood.rosestacker.api.RoseStackerAPI;
import dev.rosewood.rosestacker.stack.StackedItem;

public class SupportedPluginManager {

Expand All @@ -11,6 +16,10 @@ public class SupportedPluginManager {
private final boolean infinityExpansion;
private final boolean netheopoiesis;
private final boolean slimeHud;
private final boolean roseStacker;
private final boolean wildStacker;

private RoseStackerAPI roseStackerAPI;

// region First Tick Only Registrations
private boolean mcMMO;
Expand All @@ -24,6 +33,13 @@ public SupportedPluginManager() {
this.infinityExpansion = Bukkit.getPluginManager().isPluginEnabled("InfinityExpansion");
this.netheopoiesis = Bukkit.getPluginManager().isPluginEnabled("Netheopoiesis");
this.slimeHud = Bukkit.getPluginManager().isPluginEnabled("SlimeHUD");

this.roseStacker = Bukkit.getPluginManager().isPluginEnabled("RoseStacker");
if (roseStacker) {
this.roseStackerAPI = RoseStackerAPI.getInstance();
}

this.wildStacker = Bukkit.getPluginManager().isPluginEnabled("WildStacker");
Networks.getInstance()
.getServer()
.getScheduler()
Expand Down Expand Up @@ -55,7 +71,43 @@ public boolean isWildChests() {
return wildChests;
}

public boolean isRoseStacker() {
return roseStacker;
}

public RoseStackerAPI getRoseStackerAPI() {
return roseStackerAPI;
}

public boolean isWildStacker() {
return wildStacker;
}

public static SupportedPluginManager getInstance() {
return instance;
}

public static int getStackAmount(Item item) {
if (getInstance().isWildStacker()) {
return WildStackerAPI.getItemAmount(item);
} else if (getInstance().isRoseStacker()) {
StackedItem stackedItem = getInstance().getRoseStackerAPI().getStackedItem(item);
return stackedItem == null ? item.getItemStack().getAmount() : stackedItem.getStackSize();
} else {
return item.getItemStack().getAmount();
}
}

public static void setStackAmount(Item item, int amount) {
if (getInstance().isWildStacker()) {
WildStackerAPI.getStackedItem(item).setStackAmount(amount, true);
} else if (getInstance().isRoseStacker()) {
StackedItem stackedItem = getInstance().getRoseStackerAPI().getStackedItem(item);
if (stackedItem != null) {
stackedItem.setStackSize(amount);
}
} else {
item.getItemStack().setAmount(amount);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import dev.sefiraat.sefilib.misc.ParticleUtils;
import io.github.sefiraat.networks.NetworkStorage;
import io.github.sefiraat.networks.Networks;
import io.github.sefiraat.networks.managers.SupportedPluginManager;
import io.github.sefiraat.networks.network.NodeDefinition;
import io.github.sefiraat.networks.network.NodeType;
import io.github.sefiraat.networks.slimefun.NetworkSlimefunItems;
Expand Down Expand Up @@ -95,10 +96,17 @@ private void findItem(@Nonnull BlockMenu blockMenu) {
return;
}
if (item.getPickupDelay() <= 0 && !SlimefunUtils.hasNoPickupFlag(item)) {
final ItemStack itemStack = item.getItemStack();
final ItemStack itemStack = item.getItemStack().clone();
final int amount = SupportedPluginManager.getStackAmount(item);
if (amount > itemStack.getMaxStackSize()) {
SupportedPluginManager.setStackAmount(item, amount - itemStack.getMaxStackSize());
itemStack.setAmount(itemStack.getMaxStackSize());
} else {
itemStack.setAmount(amount);
item.remove();
}
blockMenu.replaceExistingItem(inputSlot, itemStack);
ParticleUtils.displayParticleRandomly(item, 1, 5, new Particle.DustOptions(Color.BLUE, 1));
item.remove();
}
return;
}
Expand Down
2 changes: 2 additions & 0 deletions src/main/resources/plugin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ softdepend:
- Netheopoiesis
- SlimeHUD
- WildChests
- RoseStacker
- WildStacker
commands:
networks:
description: /networks
Expand Down

0 comments on commit 864be74

Please sign in to comment.