Initial RS-ItemMagnet repository
This commit is contained in:
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
|
||||
|
||||
) {}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user