Initial RS-ItemMagnet repository

This commit is contained in:
BigPappa committed 2026-08-13 02:14:48 -05:00
commit a642ec43e7
47 files changed
+7344

No files matched your search

File diff suppressed because it is too large. Load diff
@@ -0,0 +1,36 @@
package com.rsscripting.itemmagnet.managers;
import org.bukkit.block.Block;
public class PendingConversion {
private final Block lodestone;
private final long expirationTime;
public PendingConversion(
Block lodestone,
long expirationTime
) {
this.lodestone =
lodestone;
this.expirationTime =
expirationTime;
}
public Block getLodestone() {
return lodestone;
}
public boolean isExpired() {
return System.currentTimeMillis()
> expirationTime;
}
}
@@ -0,0 +1,34 @@
package com.rsscripting.itemmagnet.managers;
import org.bukkit.block.Block;
public class PendingTargetAssignment {
private final Block machine;
private final long expirationTime;
public PendingTargetAssignment(
Block machine,
long expirationTime
) {
this.machine = machine;
this.expirationTime = expirationTime;
}
public Block getMachine() {
return machine;
}
public boolean isExpired() {
return System.currentTimeMillis()
> expirationTime;
}
}
@@ -0,0 +1,157 @@
package com.rsscripting.itemmagnet.managers;
import com.rsscripting.itemmagnet.config.ConfigManager;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.block.Block;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
public class RSConversionManager {
private static final Map<UUID, PendingConversion>
pendingConversions =
new HashMap<>();
private static final Map<UUID, PendingTargetAssignment>
pendingTargetAssignments =
new HashMap<>();
public static boolean containsFilterItem(
Block block,
ItemStack item
) {
Map<Integer, ItemStack> filterItems =
MachineManager.getAllFilterItems(
block
);
for (ItemStack filterItem
: filterItems.values()) {
if (filterItem == null) {
continue;
}
if (filterItem.isSimilar(
item
)) {
return true;
}
}
return false;
}
/*
|--------------------------------------------------------------------------
| PENDING CONVERSION
|--------------------------------------------------------------------------
*/
public static void startPendingConversion(
Player player,
Block lodestone
) {
long timeoutMillis =
ConfigManager.getConversionTimeout()
* 1000L;
pendingConversions.put(
player.getUniqueId(),
new PendingConversion(
lodestone,
System.currentTimeMillis()
+ timeoutMillis
)
);
}
public static PendingConversion getPendingConversion(
Player player
) {
return pendingConversions.get(
player.getUniqueId()
);
}
public static void removePendingConversion(
Player player
) {
pendingConversions.remove(
player.getUniqueId()
);
}
/*
|--------------------------------------------------------------------------
| PENDING TARGET ASSIGNMENT
|--------------------------------------------------------------------------
*/
public static void startPendingTargetAssignment(
Player player,
Block lodestone
) {
long timeoutMillis =
ConfigManager.getConversionTimeout()
* 1000L;
pendingTargetAssignments.put(
player.getUniqueId(),
new PendingTargetAssignment(
lodestone,
System.currentTimeMillis()
+ timeoutMillis
)
);
}
public static PendingTargetAssignment getPendingTargetAssignment(
Player player
) {
return pendingTargetAssignments.get(
player.getUniqueId()
);
}
public static void removePendingTargetAssignment(
Player player
) {
pendingTargetAssignments.remove(
player.getUniqueId()
);
}
}
@@ -0,0 +1,66 @@
package com.rsscripting.itemmagnet.managers;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
public class RSRadiusPreviewManager {
private static final Map<UUID, PreviewData>
previews =
new HashMap<>();
public static void startPreview(
Player player,
Block block
) {
previews.put(
player.getUniqueId(),
new PreviewData(
block,
System.currentTimeMillis()
+ 30000
)
);
}
public static PreviewData getPreview(
Player player
) {
return previews.get(
player.getUniqueId()
);
}
public static void removePreview(
Player player
) {
previews.remove(
player.getUniqueId()
);
}
public record PreviewData(
Block block,
long expireTime
) {}
}