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

@@ -0,0 +1,285 @@
package com.rsscripting.itemmagnet.gui;
import com.rsscripting.itemmagnet.managers.MachineManager;
import com.rsscripting.itemmagnet.utils.RSConstants;
import com.rsscripting.itemmagnet.utils.RSMenuUtils;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import java.util.List;
public class RSMainMenu {
public static final String MENU_TITLE = "Main";
public static void open(
Player player,
Block block
) {
Inventory menu =
Bukkit.createInventory(
new RSMenuHolder(
"MAIN"
),
18,
Component.text(
MENU_TITLE
).color(
NamedTextColor.BLUE
)
);
/*
|--------------------------------------------------------------------------
| FILLER
|--------------------------------------------------------------------------
*/
ItemStack filler =
RSMenuUtils.createFillerPane();
for (int i = 0; i < menu.getSize(); i++) {
menu.setItem(i, filler);
}
/*
|--------------------------------------------------------------------------
| CONVERT BACK
|--------------------------------------------------------------------------
*/
menu.setItem(
2,
RSMenuUtils.createMenuItem(
Material.COMPOSTER,
"§6Convert Back"
)
);
/*
|--------------------------------------------------------------------------
| PAUSE / RESUME
|--------------------------------------------------------------------------
*/
boolean paused =
MachineManager.isPaused(
block
);
String status =
MachineManager.getStoredStatus(
block
);
String displayStatus;
switch (status) {
case "RUNNING" -> displayStatus =
"Running";
case "PAUSED" -> displayStatus =
"Paused";
case "ERROR_TARGET_MISSING" -> displayStatus =
"Target Container Missing";
case "ERROR_TARGET_INVALID" -> displayStatus =
"Invalid Target Container";
case "ERROR_NO_TARGET" -> displayStatus =
"No Target Container Assigned";
default -> displayStatus =
status;
}
menu.setItem(
6,
RSMenuUtils.createMenuItem(
paused
? Material.RED_DYE
: Material.GREEN_DYE,
paused
? "§cPaused"
: "§aRunning",
List.of(
"§7Status: §f"
+ displayStatus
)
)
);
/*
|--------------------------------------------------------------------------
| RADIUS
|--------------------------------------------------------------------------
*/
menu.setItem(
10,
RSMenuUtils.createMenuItem(
Material.COMPASS,
"§bRadius",
List.of(
"§7Current Radius: §f"
+ MachineManager.getRadius(block)
)
)
);
/*
|--------------------------------------------------------------------------
| Show Radius
|--------------------------------------------------------------------------
*/
menu.setItem(
12,
RSMenuUtils.createMenuItem(
Material.ENDER_EYE,
"§bShow Radius",
List.of(
"§7Displays a particle outline",
"§7of the ItemMagnet radius.",
"",
"§eClick to preview."
)
)
);
/*
|--------------------------------------------------------------------------
| TARGET CONTAINER
|--------------------------------------------------------------------------
*/
int[] targetContainer =
MachineManager.getTargetContainer(
block
);
if (targetContainer == null) {
menu.setItem(
14,
RSMenuUtils.createMenuItem(
Material.TARGET,
"§eTarget Container",
List.of(
"§cNo target Container assigned.",
"",
"§7Click to assign",
"§7a target Container."
)
)
);
} else {
menu.setItem(
14,
RSMenuUtils.createMenuItem(
Material.TARGET,
"§eTarget Container",
List.of(
"§7Current Container:",
" " + targetContainer[0],
" " + targetContainer[1],
" " + targetContainer[2],
"",
"§7Click to assign",
"§7a new target Container."
)
)
);
}
/*
|--------------------------------------------------------------------------
| FILTER
|--------------------------------------------------------------------------
*/
menu.setItem(
16,
RSMenuUtils.createMenuItem(
Material.HOPPER,
"§eFilter",
List.of(
"§7Mode: §f"
+ MachineManager.getFilterMode(block)
)
)
);
/*
|--------------------------------------------------------------------------
| ADMIN
|--------------------------------------------------------------------------
*/
if (player.hasPermission(
RSConstants.ADMIN_PERMISSION
)) {
menu.setItem(
4,
RSMenuUtils.createMenuItem(
Material.COMMAND_BLOCK,
"§cAdmin"
)
);
}
player.openInventory(menu);
}
}