Files
TiedUp-/src/main/java/com/tiedup/remake/util/tasks/SaleLoader.java
NotEvil f6466360b6 Clean repo for open source release
Remove build artifacts, dev tool configs, unused dependencies,
and third-party source dumps. Add proper README, update .gitignore,
clean up Makefile.
2026-04-12 00:51:22 +02:00

104 lines
2.5 KiB
Java

package com.tiedup.remake.util.tasks;
import com.tiedup.remake.core.TiedUpMod;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
/**
* Loads and manages sale prices for slave trading.
*
* Phase 14.3.5: Sale system
*
* Provides default sale prices and can be extended
* to load from config files in the future.
*
* Based on original SaleLoader from 1.12.2
*/
public class SaleLoader {
private static final Random RANDOM = new Random();
/** List of available sale prices */
private static final List<ItemTask> SALES = new ArrayList<>();
/** Whether sales have been initialized */
private static boolean initialized = false;
/**
* Initialize default sales.
* Called on mod initialization.
*/
public static void init() {
if (initialized) return;
// Default sale prices
SALES.add(new ItemTask("minecraft:iron_ingot", 10));
SALES.add(new ItemTask("minecraft:iron_ingot", 20));
SALES.add(new ItemTask("minecraft:gold_ingot", 10));
SALES.add(new ItemTask("minecraft:gold_ingot", 15));
SALES.add(new ItemTask("minecraft:diamond", 3));
SALES.add(new ItemTask("minecraft:diamond", 5));
SALES.add(new ItemTask("minecraft:emerald", 5));
SALES.add(new ItemTask("minecraft:emerald", 10));
initialized = true;
TiedUpMod.LOGGER.info(
"[SaleLoader] Loaded {} default sales",
SALES.size()
);
}
/**
* Get a random sale price.
*
* @return Random ItemTask for sale price
*/
public static ItemTask getRandomSale() {
if (SALES.isEmpty()) {
// Fallback if not initialized
return new ItemTask("minecraft:iron_ingot", 10);
}
return SALES.get(RANDOM.nextInt(SALES.size()));
}
/**
* Get all available sale prices.
*
* @return List of all sales
*/
public static List<ItemTask> getAllSales() {
return new ArrayList<>(SALES);
}
/**
* Check if sales are available.
*
* @return true if at least one sale is configured
*/
public static boolean hasSales() {
return !SALES.isEmpty();
}
/**
* Add a custom sale price.
*
* @param sale The sale to add
*/
public static void addSale(ItemTask sale) {
if (sale != null) {
SALES.add(sale);
}
}
/**
* Clear all sales (for reloading).
*/
public static void clear() {
SALES.clear();
initialized = false;
}
}