added portable crafting
This commit is contained in:
parent
3dc25d63fd
commit
a60b6265a8
@ -14,6 +14,7 @@ import eu.mhsl.craftattack.spawn.appliances.kick.Kick;
|
|||||||
import eu.mhsl.craftattack.spawn.appliances.outlawed.Outlawed;
|
import eu.mhsl.craftattack.spawn.appliances.outlawed.Outlawed;
|
||||||
import eu.mhsl.craftattack.spawn.appliances.panicBan.PanicBan;
|
import eu.mhsl.craftattack.spawn.appliances.panicBan.PanicBan;
|
||||||
import eu.mhsl.craftattack.spawn.appliances.playerlimit.PlayerLimit;
|
import eu.mhsl.craftattack.spawn.appliances.playerlimit.PlayerLimit;
|
||||||
|
import eu.mhsl.craftattack.spawn.appliances.portableCrafting.PortableCrafting;
|
||||||
import eu.mhsl.craftattack.spawn.appliances.projectStart.ProjectStart;
|
import eu.mhsl.craftattack.spawn.appliances.projectStart.ProjectStart;
|
||||||
import eu.mhsl.craftattack.spawn.appliances.report.Report;
|
import eu.mhsl.craftattack.spawn.appliances.report.Report;
|
||||||
import eu.mhsl.craftattack.spawn.appliances.restart.Restart;
|
import eu.mhsl.craftattack.spawn.appliances.restart.Restart;
|
||||||
@ -62,7 +63,8 @@ public final class Main extends JavaPlugin {
|
|||||||
new Debug(),
|
new Debug(),
|
||||||
new Fleischerchest(),
|
new Fleischerchest(),
|
||||||
new CustomAdvancements(),
|
new CustomAdvancements(),
|
||||||
new Settings()
|
new Settings(),
|
||||||
|
new PortableCrafting()
|
||||||
);
|
);
|
||||||
|
|
||||||
Bukkit.getLogger().info("Loading appliances...");
|
Bukkit.getLogger().info("Loading appliances...");
|
||||||
|
@ -0,0 +1,14 @@
|
|||||||
|
package eu.mhsl.craftattack.spawn.appliances.portableCrafting;
|
||||||
|
|
||||||
|
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
|
|
||||||
|
public class OnCraftingTableUseListener extends ApplianceListener<PortableCrafting> {
|
||||||
|
@EventHandler
|
||||||
|
public void inInteract(PlayerInteractEvent event) {
|
||||||
|
if(!event.getMaterial().equals(Material.CRAFTING_TABLE)) return;
|
||||||
|
getAppliance().openFor(event.getPlayer());
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
package eu.mhsl.craftattack.spawn.appliances.portableCrafting;
|
||||||
|
|
||||||
|
import eu.mhsl.craftattack.spawn.appliance.Appliance;
|
||||||
|
import eu.mhsl.craftattack.spawn.appliances.settings.Settings;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class PortableCrafting extends Appliance {
|
||||||
|
public void openFor(Player player) {
|
||||||
|
if(!Settings.instance().getSetting(player, Settings.Key.EnablePortableCrafting, Boolean.class)) return;
|
||||||
|
player.openWorkbench(null, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected @NotNull List<Listener> eventHandlers() {
|
||||||
|
return List.of(new OnCraftingTableUseListener());
|
||||||
|
}
|
||||||
|
}
|
@ -4,6 +4,7 @@ import eu.mhsl.craftattack.spawn.Main;
|
|||||||
import eu.mhsl.craftattack.spawn.appliance.Appliance;
|
import eu.mhsl.craftattack.spawn.appliance.Appliance;
|
||||||
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
|
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
|
||||||
import eu.mhsl.craftattack.spawn.appliances.settings.datatypes.Setting;
|
import eu.mhsl.craftattack.spawn.appliances.settings.datatypes.Setting;
|
||||||
|
import eu.mhsl.craftattack.spawn.appliances.settings.settings.EnablePortableCraftingSetting;
|
||||||
import eu.mhsl.craftattack.spawn.appliances.settings.settings.ShowJoinAndLeaveMessagesSetting;
|
import eu.mhsl.craftattack.spawn.appliances.settings.settings.ShowJoinAndLeaveMessagesSetting;
|
||||||
import eu.mhsl.craftattack.spawn.appliances.settings.settings.TechnicalTablistSetting;
|
import eu.mhsl.craftattack.spawn.appliances.settings.settings.TechnicalTablistSetting;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
@ -17,13 +18,19 @@ import java.util.List;
|
|||||||
import java.util.WeakHashMap;
|
import java.util.WeakHashMap;
|
||||||
|
|
||||||
public class Settings extends Appliance {
|
public class Settings extends Appliance {
|
||||||
|
private static Settings settingsInstance;
|
||||||
|
|
||||||
public enum Key {
|
public enum Key {
|
||||||
TechnicalTab,
|
TechnicalTab,
|
||||||
ShowJoinAndLeaveMessages,
|
ShowJoinAndLeaveMessages,
|
||||||
|
EnablePortableCrafting,
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Settings instance() {
|
public static Settings instance() {
|
||||||
return Main.instance().getAppliance(Settings.class);
|
if(settingsInstance != null) return settingsInstance;
|
||||||
|
Settings instance = Main.instance().getAppliance(Settings.class);
|
||||||
|
Settings.settingsInstance = instance;
|
||||||
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
public record OpenSettingsInventory(Inventory inventory, List<Setting<?>> settings) {
|
public record OpenSettingsInventory(Inventory inventory, List<Setting<?>> settings) {
|
||||||
@ -37,7 +44,8 @@ public class Settings extends Appliance {
|
|||||||
|
|
||||||
List<Setting<?>> settings = List.of(
|
List<Setting<?>> settings = List.of(
|
||||||
new TechnicalTablistSetting(),
|
new TechnicalTablistSetting(),
|
||||||
new ShowJoinAndLeaveMessagesSetting()
|
new ShowJoinAndLeaveMessagesSetting(),
|
||||||
|
new EnablePortableCraftingSetting()
|
||||||
);
|
);
|
||||||
|
|
||||||
settings.forEach(setting -> setting.initializeFromPlayer(player));
|
settings.forEach(setting -> setting.initializeFromPlayer(player));
|
||||||
|
@ -0,0 +1,31 @@
|
|||||||
|
package eu.mhsl.craftattack.spawn.appliances.settings.settings;
|
||||||
|
|
||||||
|
import eu.mhsl.craftattack.spawn.appliances.settings.Settings;
|
||||||
|
import eu.mhsl.craftattack.spawn.appliances.settings.datatypes.BoolSetting;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
|
||||||
|
public class EnablePortableCraftingSetting extends BoolSetting {
|
||||||
|
public EnablePortableCraftingSetting() {
|
||||||
|
super(Settings.Key.EnablePortableCrafting);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String title() {
|
||||||
|
return "Portables Crafting";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String description() {
|
||||||
|
return "Erlaubt das öffnen einer Werkbank in der Hand, ohne sie plazieren zu müssen";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Material icon() {
|
||||||
|
return Material.CRAFTING_TABLE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Boolean defaultValue() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user