added support for portable stonecutter alongside crafting table, renamed listener for clarity
This commit is contained in:
@@ -0,0 +1,20 @@
|
|||||||
|
package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.portableCrafting;
|
||||||
|
|
||||||
|
import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
|
||||||
|
import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.block.Action;
|
||||||
|
import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
|
|
||||||
|
class OnCraftingBlockUseListener extends ApplianceListener<PortableCrafting> {
|
||||||
|
@EventHandler
|
||||||
|
public void inInteract(PlayerInteractEvent event) {
|
||||||
|
if(!event.getAction().equals(Action.RIGHT_CLICK_AIR)) return;
|
||||||
|
if(!Settings.instance().getSetting(event.getPlayer(), Settings.Key.EnablePortableCrafting, Boolean.class)) return;
|
||||||
|
|
||||||
|
switch(event.getMaterial()) {
|
||||||
|
case CRAFTING_TABLE -> this.getAppliance().openCraftingTable(event.getPlayer());
|
||||||
|
case STONECUTTER -> this.getAppliance().openStonecutter(event.getPlayer());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.portableCrafting;
|
|
||||||
|
|
||||||
import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener;
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.event.EventHandler;
|
|
||||||
import org.bukkit.event.block.Action;
|
|
||||||
import org.bukkit.event.player.PlayerInteractEvent;
|
|
||||||
|
|
||||||
class OnCraftingTableUseListener extends ApplianceListener<PortableCrafting> {
|
|
||||||
@EventHandler
|
|
||||||
public void inInteract(PlayerInteractEvent event) {
|
|
||||||
if(!event.getAction().equals(Action.RIGHT_CLICK_AIR)) return;
|
|
||||||
if(!event.getMaterial().equals(Material.CRAFTING_TABLE)) return;
|
|
||||||
this.getAppliance().openFor(event.getPlayer());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -14,13 +14,16 @@ public class PortableCrafting extends Appliance {
|
|||||||
Settings.instance().declareSetting(PortableCraftingSetting.class);
|
Settings.instance().declareSetting(PortableCraftingSetting.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void openFor(Player player) {
|
public void openCraftingTable(Player player) {
|
||||||
if(!Settings.instance().getSetting(player, Settings.Key.EnablePortableCrafting, Boolean.class)) return;
|
|
||||||
player.openWorkbench(null, true);
|
player.openWorkbench(null, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void openStonecutter(Player player) {
|
||||||
|
player.openStonecutter(null, true);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected @NotNull List<Listener> listeners() {
|
protected @NotNull List<Listener> listeners() {
|
||||||
return List.of(new OnCraftingTableUseListener());
|
return List.of(new OnCraftingBlockUseListener());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ public class PortableCraftingSetting extends BoolSetting implements CategorizedS
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String description() {
|
protected String description() {
|
||||||
return "Erlaubt das öffnen einer Werkbank in der Hand, ohne sie plazieren zu müssen";
|
return "Erlaubt das öffnen einer Werkbank oder einer Steinsäge in der Hand, ohne den Block plazieren zu müssen";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user