From 0b3358760a73dd0f34039853c375b72cc22c8510 Mon Sep 17 00:00:00 2001 From: Softwareart Date: Sun, 15 Oct 2023 17:01:50 +0200 Subject: [PATCH] Initial commit --- pom.xml | 93 +++++++++++++++++++ .../bansystemspigot/Api/ItemBuilder.java | 61 ++++++++++++ .../bansystemspigot/Api/MiliCalc.java | 12 +++ .../bansystemspigot/BansystemSpigot.java | 23 +++++ .../bansystemspigot/Commands/BanCommand.java | 35 +++++++ .../bansystemspigot/Commands/MuteCommand.java | 2 + .../Commands/ReportCommand.java | 2 + .../bansystemspigot/Gui/GuiData.java | 13 +++ .../bansystemspigot/Gui/MainGUI.java | 54 +++++++++++ .../bansystemspigot/Gui/ReasonGui.java | 67 +++++++++++++ .../bansystemspigot/Gui/ReportGUI.java | 46 +++++++++ .../bansystemspigot/Gui/TimeGui.java | 61 ++++++++++++ src/main/resources/plugin.yml | 4 + 13 files changed, 473 insertions(+) create mode 100644 pom.xml create mode 100644 src/main/java/de/softwarerat/bansystemspigot/Api/ItemBuilder.java create mode 100644 src/main/java/de/softwarerat/bansystemspigot/Api/MiliCalc.java create mode 100644 src/main/java/de/softwarerat/bansystemspigot/BansystemSpigot.java create mode 100644 src/main/java/de/softwarerat/bansystemspigot/Commands/BanCommand.java create mode 100644 src/main/java/de/softwarerat/bansystemspigot/Commands/MuteCommand.java create mode 100644 src/main/java/de/softwarerat/bansystemspigot/Commands/ReportCommand.java create mode 100644 src/main/java/de/softwarerat/bansystemspigot/Gui/GuiData.java create mode 100644 src/main/java/de/softwarerat/bansystemspigot/Gui/MainGUI.java create mode 100644 src/main/java/de/softwarerat/bansystemspigot/Gui/ReasonGui.java create mode 100644 src/main/java/de/softwarerat/bansystemspigot/Gui/ReportGUI.java create mode 100644 src/main/java/de/softwarerat/bansystemspigot/Gui/TimeGui.java create mode 100644 src/main/resources/plugin.yml diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..45f9403 --- /dev/null +++ b/pom.xml @@ -0,0 +1,93 @@ + + + 4.0.0 + + de.softwarerat + BansystemSpigot + 1.0-SNAPSHOT + jar + + BansystemSpigot + + + 18 + UTF-8 + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + ${java.version} + ${java.version} + + + + org.apache.maven.plugins + maven-shade-plugin + 3.2.4 + + + package + + shade + + + false + + + + + + + + src/main/resources + true + + + + + + + papermc-repo + https://repo.papermc.io/repository/maven-public/ + + + sonatype + https://oss.sonatype.org/content/groups/public/ + + + gitlab-maven + https://Gitlab.Softwarerat.com/api/v4/projects/8/packages/maven + + + skullcreator-repo + https://github.com/deanveloper/SkullCreator/raw/mvn-repo/ + + + + + + io.papermc.paper + paper-api + 1.20.1-R0.1-SNAPSHOT + provided + + + com.github.stefvanschie.inventoryframework + IF + 0.10.9 + + + com.softwarerat + BansystemAPI + 1.6.1-BETA + compile + + + diff --git a/src/main/java/de/softwarerat/bansystemspigot/Api/ItemBuilder.java b/src/main/java/de/softwarerat/bansystemspigot/Api/ItemBuilder.java new file mode 100644 index 0000000..7b345ad --- /dev/null +++ b/src/main/java/de/softwarerat/bansystemspigot/Api/ItemBuilder.java @@ -0,0 +1,61 @@ +package de.softwarerat.bansystemspigot.Api; + +import org.bukkit.Material; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.inventory.ItemFlag; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import java.util.function.Consumer; + +public class ItemBuilder { + + + + private Map> clickActions; + private ItemMeta itemMeta; + private ItemStack itemStack; + public ItemBuilder(Material mat){ + itemStack = new ItemStack(mat); + itemMeta = itemStack.getItemMeta(); + this.clickActions = new HashMap<>(); + } + public ItemBuilder setDisplayname(String s){ + itemMeta.setDisplayName(s); + return this; + } + public ItemBuilder setLocalizedName(String s){ + itemMeta.setLocalizedName(s); + return this; + } + public ItemBuilder setLore(String... s){ + itemMeta.setLore(Arrays.asList(s)); + return this; + } + + public ItemBuilder setUnbreakable(boolean s){ + itemMeta.setUnbreakable(s); + return this; + } + public ItemBuilder addItemFlags(ItemFlag... s){ + itemMeta.addItemFlags(s); + return this; + } + + + @Override + public String toString() { + return "ItemBuilder{" + + "itemMeta=" + itemMeta + + ", itemStack=" + itemStack + + '}'; + } + public ItemStack build(){ + itemStack.setItemMeta(itemMeta); + return itemStack; + } + +} diff --git a/src/main/java/de/softwarerat/bansystemspigot/Api/MiliCalc.java b/src/main/java/de/softwarerat/bansystemspigot/Api/MiliCalc.java new file mode 100644 index 0000000..1dafc15 --- /dev/null +++ b/src/main/java/de/softwarerat/bansystemspigot/Api/MiliCalc.java @@ -0,0 +1,12 @@ +package de.softwarerat.bansystemspigot.Api; + +public class MiliCalc { + + public Long addDays(Long ms,int days){ + int dayMS = days*86400000; + return dayMS+ms; + + }; + + +} diff --git a/src/main/java/de/softwarerat/bansystemspigot/BansystemSpigot.java b/src/main/java/de/softwarerat/bansystemspigot/BansystemSpigot.java new file mode 100644 index 0000000..b1885aa --- /dev/null +++ b/src/main/java/de/softwarerat/bansystemspigot/BansystemSpigot.java @@ -0,0 +1,23 @@ +package de.softwarerat.bansystemspigot; + +import com.softwarerat.Bansystem; +import com.softwarerat.MySQL.Ban; +import org.bukkit.plugin.java.JavaPlugin; + +public final class BansystemSpigot extends JavaPlugin { + Ban ban; + + @Override + public void onEnable() { + // Plugin startup logic + Bansystem bansystem = new Bansystem(); + bansystem.enableAPI("Admin","GGoders0","127.0.0.1","BanSystem"); + ban = bansystem.getBan(); + + } + + @Override + public void onDisable() { + // Plugin shutdown logic + } +} diff --git a/src/main/java/de/softwarerat/bansystemspigot/Commands/BanCommand.java b/src/main/java/de/softwarerat/bansystemspigot/Commands/BanCommand.java new file mode 100644 index 0000000..fc9fa64 --- /dev/null +++ b/src/main/java/de/softwarerat/bansystemspigot/Commands/BanCommand.java @@ -0,0 +1,35 @@ +package de.softwarerat.bansystemspigot.Commands; + +import com.github.stefvanschie.inventoryframework.adventuresupport.ComponentHolder; +import com.github.stefvanschie.inventoryframework.gui.GuiItem; +import com.github.stefvanschie.inventoryframework.gui.type.ChestGui; +import com.github.stefvanschie.inventoryframework.pane.OutlinePane; +import com.github.stefvanschie.inventoryframework.pane.Pane; +import com.softwarerat.MySQL.Ban; +import de.softwarerat.bansystemspigot.Api.ItemBuilder; +import de.softwarerat.bansystemspigot.Api.MiliCalc; +import net.kyori.adventure.text.Component; +import org.bukkit.Material; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; + +public class BanCommand implements CommandExecutor { + Ban ban; + MiliCalc miliCalc; + + public BanCommand(Ban ban, MiliCalc miliCalc) { + this.ban = ban; + this.miliCalc = miliCalc; + } + + @Override + public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s, @NotNull String[] strings) { + + return false; + } + + +} diff --git a/src/main/java/de/softwarerat/bansystemspigot/Commands/MuteCommand.java b/src/main/java/de/softwarerat/bansystemspigot/Commands/MuteCommand.java new file mode 100644 index 0000000..3958a63 --- /dev/null +++ b/src/main/java/de/softwarerat/bansystemspigot/Commands/MuteCommand.java @@ -0,0 +1,2 @@ +package de.softwarerat.bansystemspigot.Commands;public class MuteCommand { +} diff --git a/src/main/java/de/softwarerat/bansystemspigot/Commands/ReportCommand.java b/src/main/java/de/softwarerat/bansystemspigot/Commands/ReportCommand.java new file mode 100644 index 0000000..4191fa3 --- /dev/null +++ b/src/main/java/de/softwarerat/bansystemspigot/Commands/ReportCommand.java @@ -0,0 +1,2 @@ +package de.softwarerat.bansystemspigot.Commands;public class ReportCommand { +} diff --git a/src/main/java/de/softwarerat/bansystemspigot/Gui/GuiData.java b/src/main/java/de/softwarerat/bansystemspigot/Gui/GuiData.java new file mode 100644 index 0000000..2360dee --- /dev/null +++ b/src/main/java/de/softwarerat/bansystemspigot/Gui/GuiData.java @@ -0,0 +1,13 @@ +package de.softwarerat.bansystemspigot.Gui; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class GuiData { + + Long time; + String reason; + +} \ No newline at end of file diff --git a/src/main/java/de/softwarerat/bansystemspigot/Gui/MainGUI.java b/src/main/java/de/softwarerat/bansystemspigot/Gui/MainGUI.java new file mode 100644 index 0000000..06e7fbe --- /dev/null +++ b/src/main/java/de/softwarerat/bansystemspigot/Gui/MainGUI.java @@ -0,0 +1,54 @@ +package de.softwarerat.bansystemspigot.Gui; + +import com.github.stefvanschie.inventoryframework.adventuresupport.ComponentHolder; +import com.github.stefvanschie.inventoryframework.gui.GuiItem; +import com.github.stefvanschie.inventoryframework.gui.type.ChestGui; +import com.github.stefvanschie.inventoryframework.pane.OutlinePane; +import com.github.stefvanschie.inventoryframework.pane.Pane; +import de.softwarerat.bansystemspigot.Api.ItemBuilder; +import net.kyori.adventure.text.Component; +import org.bukkit.Material; +import org.bukkit.entity.Player; + +public class MainGUI { +TimeGui timeGui; +ReasonGui reasonGui; + + public MainGUI(TimeGui timeGui, ReasonGui reasonGui) { + this.timeGui = timeGui; + this.reasonGui = reasonGui; + } + + public void showMainGUI(Player player, String playerName) { + ChestGui chestGui = new ChestGui(6, ComponentHolder.of(Component.text("Ban"))); + + chestGui.setOnGlobalClick(clickEvent -> clickEvent.setCancelled(true)); + + OutlinePane settingPane = new OutlinePane(1, 1, 1, 1, Pane.Priority.HIGH); + + ItemBuilder builder = new ItemBuilder(Material.PLAYER_HEAD); + builder.setDisplayname(playerName); + + settingPane.addItem(new GuiItem(new ItemBuilder(Material.CLOCK).setDisplayname("Banzeit wählen").build(), inventoryClickEvent -> { + timeGui.showTimeGUI(player,playerName); + + })); + settingPane.addItem(new GuiItem(new ItemBuilder(Material.NETHERITE_AXE).setDisplayname("Bangrund wählen").build(), inventoryClickEvent -> { + reasonGui.showReasonGUI(player,playerName); + })); + settingPane.addItem(new GuiItem(new ItemBuilder(Material.PLAYER_HEAD).setDisplayname(playerName).build())); + + + settingPane.align(OutlinePane.Alignment.CENTER); + + chestGui.addPane(settingPane); + + OutlinePane background = new OutlinePane(0, 0, 9, 6, Pane.Priority.LOWEST); + background.addItem(new GuiItem(new ItemBuilder(Material.GRAY_STAINED_GLASS_PANE).setDisplayname(" ").build())); + background.setRepeat(true); + + chestGui.addPane(background); + + chestGui.show(player); + } +} diff --git a/src/main/java/de/softwarerat/bansystemspigot/Gui/ReasonGui.java b/src/main/java/de/softwarerat/bansystemspigot/Gui/ReasonGui.java new file mode 100644 index 0000000..8924a06 --- /dev/null +++ b/src/main/java/de/softwarerat/bansystemspigot/Gui/ReasonGui.java @@ -0,0 +1,67 @@ +package de.softwarerat.bansystemspigot.Gui; + +import com.github.stefvanschie.inventoryframework.adventuresupport.ComponentHolder; +import com.github.stefvanschie.inventoryframework.gui.GuiItem; +import com.github.stefvanschie.inventoryframework.gui.type.ChestGui; +import com.github.stefvanschie.inventoryframework.pane.OutlinePane; +import com.github.stefvanschie.inventoryframework.pane.Pane; +import de.softwarerat.bansystemspigot.Api.ItemBuilder; +import de.softwarerat.bansystemspigot.Api.MiliCalc; +import net.kyori.adventure.text.Component; +import org.bukkit.Material; +import org.bukkit.entity.Player; + +public class ReasonGui { + GuiData guiData; + MiliCalc miliCalc; + MainGUI mainGUI; + + + public ReasonGui(GuiData guiData, MiliCalc miliCalc, MainGUI mainGUI) { + this.guiData = guiData; + this.miliCalc = miliCalc; + this.mainGUI = mainGUI; + } + + public void showReasonGUI(Player player, String playerName) { + ChestGui chestGui = new ChestGui(6, ComponentHolder.of(Component.text("Ban"))); + + chestGui.setOnGlobalClick(clickEvent -> clickEvent.setCancelled(true)); + + OutlinePane settingPane = new OutlinePane(1, 1, 1, 1, Pane.Priority.HIGH); + + + settingPane.addItem(new GuiItem(new ItemBuilder(Material.CLOCK).setDisplayname("Grund Hacking").build(), inventoryClickEvent -> { + mainGUI.showMainGUI(player, playerName); + guiData.setReason("Hacking"); + })); + settingPane.addItem(new GuiItem(new ItemBuilder(Material.CLOCK).setDisplayname("Grund Teaming").build(), inventoryClickEvent -> { + guiData.setReason("Teaming"); + inventoryClickEvent.getInventory().close(); + mainGUI.showMainGUI(player, playerName); + })); + settingPane.addItem(new GuiItem(new ItemBuilder(Material.CLOCK).setDisplayname("Hausverbot").build(), inventoryClickEvent -> { + guiData.setReason("Hausverbot"); + inventoryClickEvent.getInventory().close(); + + })); + settingPane.addItem(new GuiItem(new ItemBuilder(Material.CLOCK).setDisplayname("Trolling").build(), inventoryClickEvent -> { + guiData.setReason("Trolling"); + inventoryClickEvent.getInventory().close(); + mainGUI.showMainGUI(player, playerName); + })); + + settingPane.addItem(new GuiItem(new ItemBuilder(Material.ACACIA_SIGN).setDisplayname("Andere Gründe kann man über /bungeeban verwenden.").build())); + settingPane.align(OutlinePane.Alignment.CENTER); + + chestGui.addPane(settingPane); + + OutlinePane background = new OutlinePane(0, 0, 9, 6, Pane.Priority.LOWEST); + background.addItem(new GuiItem(new ItemBuilder(Material.GRAY_STAINED_GLASS_PANE).setDisplayname(" ").build())); + background.setRepeat(true); + + chestGui.addPane(background); + + chestGui.show(player); + } +} diff --git a/src/main/java/de/softwarerat/bansystemspigot/Gui/ReportGUI.java b/src/main/java/de/softwarerat/bansystemspigot/Gui/ReportGUI.java new file mode 100644 index 0000000..3487366 --- /dev/null +++ b/src/main/java/de/softwarerat/bansystemspigot/Gui/ReportGUI.java @@ -0,0 +1,46 @@ +package de.softwarerat.bansystemspigot.Gui; + +import com.github.stefvanschie.inventoryframework.adventuresupport.ComponentHolder; +import com.github.stefvanschie.inventoryframework.gui.GuiItem; +import com.github.stefvanschie.inventoryframework.gui.type.ChestGui; +import com.github.stefvanschie.inventoryframework.pane.OutlinePane; +import com.github.stefvanschie.inventoryframework.pane.Pane; +import de.softwarerat.bansystemspigot.Api.ItemBuilder; +import net.kyori.adventure.text.Component; +import org.bukkit.Material; +import org.bukkit.entity.Player; + +public class ReportGUI { + p + public void showMainGUI(Player player, String playerName) { + ChestGui chestGui = new ChestGui(6, ComponentHolder.of(Component.text("Ban"))); + + chestGui.setOnGlobalClick(clickEvent -> clickEvent.setCancelled(true)); + + OutlinePane settingPane = new OutlinePane(1, 1, 1, 1, Pane.Priority.HIGH); + + ItemBuilder builder = new ItemBuilder(Material.PLAYER_HEAD); + builder.setDisplayname(playerName); + + settingPane.addItem(new GuiItem(new ItemBuilder(Material.CLOCK).setDisplayname("Banzeit wählen").build(), inventoryClickEvent -> { + + + })); + settingPane.addItem(new GuiItem(new ItemBuilder(Material.NETHERITE_AXE).setDisplayname("Bangrund wählen").build(), inventoryClickEvent -> { + })); + settingPane.addItem(new GuiItem(new ItemBuilder(Material.PLAYER_HEAD).setDisplayname(playerName).build())); + + + settingPane.align(OutlinePane.Alignment.CENTER); + + chestGui.addPane(settingPane); + + OutlinePane background = new OutlinePane(0, 0, 9, 6, Pane.Priority.LOWEST); + background.addItem(new GuiItem(new ItemBuilder(Material.GRAY_STAINED_GLASS_PANE).setDisplayname(" ").build())); + background.setRepeat(true); + + chestGui.addPane(background); + + chestGui.show(player); + } +} diff --git a/src/main/java/de/softwarerat/bansystemspigot/Gui/TimeGui.java b/src/main/java/de/softwarerat/bansystemspigot/Gui/TimeGui.java new file mode 100644 index 0000000..01a137c --- /dev/null +++ b/src/main/java/de/softwarerat/bansystemspigot/Gui/TimeGui.java @@ -0,0 +1,61 @@ +package de.softwarerat.bansystemspigot.Gui; + +import com.github.stefvanschie.inventoryframework.adventuresupport.ComponentHolder; +import com.github.stefvanschie.inventoryframework.gui.GuiItem; +import com.github.stefvanschie.inventoryframework.gui.type.ChestGui; +import com.github.stefvanschie.inventoryframework.pane.OutlinePane; +import com.github.stefvanschie.inventoryframework.pane.Pane; +import de.softwarerat.bansystemspigot.Api.ItemBuilder; +import de.softwarerat.bansystemspigot.Api.MiliCalc; +import net.kyori.adventure.text.Component; +import org.bukkit.Material; +import org.bukkit.entity.Player; + +public class TimeGui { + GuiData guiData; + MiliCalc miliCalc; + MainGUI mainGUI; + + public TimeGui(GuiData guiData, MiliCalc miliCalc, MainGUI mainGUI) { + this.guiData = guiData; + this.miliCalc = miliCalc; + this.mainGUI = mainGUI; + } + + public void showTimeGUI(Player player, String playerName) { + ChestGui chestGui = new ChestGui(6, ComponentHolder.of(Component.text("Ban"))); + + chestGui.setOnGlobalClick(clickEvent -> clickEvent.setCancelled(true)); + + OutlinePane settingPane = new OutlinePane(1, 1, 1, 1, Pane.Priority.HIGH); + + + settingPane.addItem(new GuiItem(new ItemBuilder(Material.CLOCK).setDisplayname("Banzeit: 30 Tage").build(), inventoryClickEvent -> { + guiData.setTime(miliCalc.addDays(System.currentTimeMillis(), 30)); + inventoryClickEvent.getInventory().close(); + mainGUI.showMainGUI(player, playerName); + })); + settingPane.addItem(new GuiItem(new ItemBuilder(Material.CLOCK).setDisplayname("Banzeit: 90 Tage").build(), inventoryClickEvent -> { + guiData.setTime(miliCalc.addDays(System.currentTimeMillis(), 30)); + inventoryClickEvent.getInventory().close(); + mainGUI.showMainGUI(player, playerName); + })); + settingPane.addItem(new GuiItem(new ItemBuilder(Material.CLOCK).setDisplayname("Banzeit: 365 Tage").build(), inventoryClickEvent -> { + guiData.setTime(miliCalc.addDays(System.currentTimeMillis(), 30)); + inventoryClickEvent.getInventory().close(); + mainGUI.showMainGUI(player, playerName); + })); + settingPane.addItem(new GuiItem(new ItemBuilder(Material.PLAYER_HEAD).setDisplayname(playerName).build())); + settingPane.align(OutlinePane.Alignment.CENTER); + + chestGui.addPane(settingPane); + + OutlinePane background = new OutlinePane(0, 0, 9, 6, Pane.Priority.LOWEST); + background.addItem(new GuiItem(new ItemBuilder(Material.GRAY_STAINED_GLASS_PANE).setDisplayname(" ").build())); + background.setRepeat(true); + + chestGui.addPane(background); + + chestGui.show(player); + } +} diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml new file mode 100644 index 0000000..71ee018 --- /dev/null +++ b/src/main/resources/plugin.yml @@ -0,0 +1,4 @@ +name: BansystemSpigot +version: '${project.version}' +main: de.softwarerat.bansystemspigot.BansystemSpigot +api-version: '1.20'