Skip to content

Commit 2dff0fb

Browse files
Update SurvivalSlimefunGuide.java
1 parent d12ae85 commit 2dff0fb

File tree

1 file changed

+20
-3
lines changed

1 file changed

+20
-3
lines changed

src/main/java/io/github/thebusybiscuit/slimefun4/implementation/guide/SurvivalSlimefunGuide.java

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -367,10 +367,27 @@ public void openSearch(PlayerProfile profile, String input, boolean addToHistory
367367
menu.addItem(index, itemstack);
368368
menu.addMenuClickHandler(index, (pl, slot, itm, action) -> {
369369
try {
370-
if (!isSurvivalMode()) {
371-
pl.getInventory().addItem(slimefunItem.getItem().clone());
372-
} else {
370+
if (isSurvivalMode()) {
373371
displayItem(profile, slimefunItem, true);
372+
} else if (pl.hasPermission("slimefun.cheat.items")) {
373+
if (sfitem instanceof MultiBlockMachine) {
374+
Slimefun.getLocalization().sendMessage(pl, "guide.cheat.no-multiblocks");
375+
} else {
376+
ItemStack clonedItem = sfitem.getItem().clone();
377+
378+
if (action.isShiftClicked()) {
379+
clonedItem.setAmount(clonedItem.getMaxStackSize());
380+
}
381+
382+
pl.getInventory().addItem(clonedItem);
383+
}
384+
} else {
385+
/*
386+
* Fixes #3548 - If for whatever reason,
387+
* an unpermitted players gets access to this guide,
388+
* this will be our last line of defense to prevent any exploit.
389+
*/
390+
Slimefun.getLocalization().sendMessage(pl, "messages.no-permission", true);
374391
}
375392
} catch (Exception | LinkageError x) {
376393
printErrorMessage(pl, slimefunItem, x);

0 commit comments

Comments
 (0)