commit 56205de5f6adfb89376189120adaff6626120349 Author: Laura Date: Sun Jan 18 15:04:56 2026 +0100 initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4788b4b --- /dev/null +++ b/.gitignore @@ -0,0 +1,113 @@ +# User-specific stuff +.idea/ + +*.iml +*.ipr +*.iws + +# IntelliJ +out/ + +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + +*~ + +# temporary files which can be created if a process still has a handle open of a deleted file +.fuse_hidden* + +# KDE directory preferences +.directory + +# Linux trash folder which might appear on any partition or disk +.Trash-* + +# .nfs files are created when an open file is removed but is still being accessed +.nfs* + +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +# Windows thumbnail cache files +Thumbs.db +Thumbs.db:encryptable +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk + +target/ + +pom.xml.tag +pom.xml.releaseBackup +pom.xml.versionsBackup +pom.xml.next + +release.properties +dependency-reduced-pom.xml +buildNumber.properties +.mvn/timing.properties +.mvn/wrapper/maven-wrapper.jar +.flattened-pom.xml + +# Common working directory +run/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..ba9755d --- /dev/null +++ b/README.md @@ -0,0 +1,4 @@ +# SMPCore +## Diese Repo wird als Copyrepo benutzt und an die jeweiligen Projekte angepasst! + + diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..a5d0774 --- /dev/null +++ b/pom.xml @@ -0,0 +1,100 @@ + + + 4.0.0 + + de.softwarerat + SMPCore + 1.0-SNAPSHOT + jar + + SMPCore + + + 1.8 + UTF-8 + + + + gitlab-maven + https://Gitlab.Softwarerat.com/api/v4/projects/14/packages/maven + + + + gitlab-maven + https://Gitlab.Softwarerat.com/api/v4/projects/14/packages/maven + + + + + + 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 + + + + + + + gitlab-maven + https://Gitlab.Softwarerat.com/api/v4/projects/14/packages/maven + + + papermc-repo + https://repo.papermc.io/repository/maven-public/ + + + sonatype + https://oss.sonatype.org/content/groups/public/ + + + + + + + com.softwarerat + HomesAPI + 1.1-SNAPSHOT + + + io.papermc.paper + paper-api + 1.20.2-R0.1-SNAPSHOT + provided + + + com.softwarerat + BansystemAPI + 1.6.1-BETA + + + + diff --git a/src/main/java/de/softwarerat/smpcore/Bansystem/BanPlayer.java b/src/main/java/de/softwarerat/smpcore/Bansystem/BanPlayer.java new file mode 100644 index 0000000..fccd9fb --- /dev/null +++ b/src/main/java/de/softwarerat/smpcore/Bansystem/BanPlayer.java @@ -0,0 +1,25 @@ +package de.softwarerat.smpcore.Bansystem; + +import com.softwarerat.MySQL.Ban; + +public class BanPlayer { + Ban ban; + public BanPlayer(Ban ban) { + this.ban = ban; + } + public void addPunishment(String UUID,String Reason, String Punisher, Long Time){ + ban.addPunishment(UUID,Reason ,Punisher ,Time); + + } + public void removePunishment(String UUID){ + ban.deletePunishment(UUID); + + } + public boolean isPunished(String UUID){ + + if (ban.getBanTime(UUID)==0 || ban.getBanTime(UUID) < 0){ + return true; + } else return false; + + } +} diff --git a/src/main/java/de/softwarerat/smpcore/Bansystem/Commands/BanPlayerCmd.java b/src/main/java/de/softwarerat/smpcore/Bansystem/Commands/BanPlayerCmd.java new file mode 100644 index 0000000..78541d6 --- /dev/null +++ b/src/main/java/de/softwarerat/smpcore/Bansystem/Commands/BanPlayerCmd.java @@ -0,0 +1,22 @@ +package de.softwarerat.smpcore.Bansystem.Commands; + +import de.softwarerat.smpcore.Bansystem.BanPlayer; +import de.softwarerat.smpcore.Bansystem.MiliCalc; +import org.bukkit.Bukkit; +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 BanPlayerCmd implements CommandExecutor { + BanPlayer banPlayer; + MiliCalc miliCalc; + @Override + public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s, @NotNull String[] strings) { + Player p = Bukkit.getPlayer(commandSender.getName()); + banPlayer.addPunishment(strings[0], strings[1],p.getName(),miliCalc.addDays(System.currentTimeMillis(), Integer.parseInt(strings[2]))); + p.sendMessage("erfolgreich gebannt"); + return false; + } +} diff --git a/src/main/java/de/softwarerat/smpcore/Bansystem/Commands/UnBanPlayerCmd.java b/src/main/java/de/softwarerat/smpcore/Bansystem/Commands/UnBanPlayerCmd.java new file mode 100644 index 0000000..0ee1da5 --- /dev/null +++ b/src/main/java/de/softwarerat/smpcore/Bansystem/Commands/UnBanPlayerCmd.java @@ -0,0 +1,17 @@ +package de.softwarerat.smpcore.Bansystem.Commands; + +import de.softwarerat.smpcore.Bansystem.BanPlayer; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.jetbrains.annotations.NotNull; + +public class UnBanPlayerCmd implements CommandExecutor { + BanPlayer banPlayer; + @Override + public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s, @NotNull String[] strings) { +banPlayer.removePunishment(strings[1]); + commandSender.sendMessage("erfolgreich entbannt!"); + return false; + } +} diff --git a/src/main/java/de/softwarerat/smpcore/Bansystem/Listener/PlayerJoin.java b/src/main/java/de/softwarerat/smpcore/Bansystem/Listener/PlayerJoin.java new file mode 100644 index 0000000..ce2f256 --- /dev/null +++ b/src/main/java/de/softwarerat/smpcore/Bansystem/Listener/PlayerJoin.java @@ -0,0 +1,24 @@ +package de.softwarerat.smpcore.Bansystem.Listener; + +import de.softwarerat.smpcore.Bansystem.BanPlayer; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerJoinEvent; + +public class PlayerJoin implements Listener { + + BanPlayer banPlayer; + + public PlayerJoin(BanPlayer banPlayer) { + this.banPlayer = banPlayer; + } + + @EventHandler + public void onPlayerJoin(PlayerJoinEvent event) { + String UUID = event.getPlayer().getUniqueId().toString(); + if(banPlayer.isPunished(UUID)){ + event.getPlayer().kickPlayer("Du bist Aktuell gebannt. mehr Infos bekommst du im discord"); + } + event.setJoinMessage("SMP | Spieler "+event.getPlayer()+ " ist gejoined"); + } +} diff --git a/src/main/java/de/softwarerat/smpcore/Bansystem/Listener/PlayerLeave.java b/src/main/java/de/softwarerat/smpcore/Bansystem/Listener/PlayerLeave.java new file mode 100644 index 0000000..bb8b02b --- /dev/null +++ b/src/main/java/de/softwarerat/smpcore/Bansystem/Listener/PlayerLeave.java @@ -0,0 +1,15 @@ +package de.softwarerat.smpcore.Bansystem.Listener; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerQuitEvent; + +public class PlayerLeave implements Listener { + + + @EventHandler + public void onPlayerQuit(PlayerQuitEvent event) { + event.setQuitMessage("SMP | Spieler "+event.getPlayer()+ " ist gejoined"); + + } +} diff --git a/src/main/java/de/softwarerat/smpcore/Bansystem/MiliCalc.java b/src/main/java/de/softwarerat/smpcore/Bansystem/MiliCalc.java new file mode 100644 index 0000000..abcda30 --- /dev/null +++ b/src/main/java/de/softwarerat/smpcore/Bansystem/MiliCalc.java @@ -0,0 +1,12 @@ +package de.softwarerat.smpcore.Bansystem; + +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/smpcore/HomeSystem/HomeCmd.java b/src/main/java/de/softwarerat/smpcore/HomeSystem/HomeCmd.java new file mode 100644 index 0000000..8074e4b --- /dev/null +++ b/src/main/java/de/softwarerat/smpcore/HomeSystem/HomeCmd.java @@ -0,0 +1,46 @@ +package de.softwarerat.smpcore.HomeSystem; + +import com.softwarerat.SQL.Homes; +import com.softwarerat.SQL.PlayerHome; +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.jetbrains.annotations.NotNull; + +import java.util.Objects; + +public class HomeCmd implements CommandExecutor { + Homes homes; + + @Override + public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s, @NotNull String[] strings) { + PlayerHome playerHome; + + switch (strings[0]){ + + case"create": + Location l = Objects.requireNonNull(Bukkit.getPlayer(commandSender.getName())).getLocation(); + playerHome = new PlayerHome(strings[2], Objects.requireNonNull(Bukkit.getPlayer(commandSender.getName())).getUniqueId().toString(),l.getWorld().getName(),l.getX(),l.getY(),l.getZ()); + homes.createNewHome(playerHome); + commandSender.sendMessage("erfolgreich erstellt"); + break; + case "delete": + + break; + case "list": + commandSender.sendMessage("du hast folgende Homes"); + homes.getPlayerHomes(Objects.requireNonNull(Bukkit.getPlayer(commandSender.getName())).getUniqueId().toString()).forEach(e -> {commandSender.sendMessage(e.getName());}); + + break; + case "tp": + PlayerHome h = homes.getHomeByName(strings[1]); + Location ld = new Location(Bukkit.getWorld(h.getWorld()),h.getX(),h.getY(),h.getZ()); + Bukkit.getPlayer(commandSender.getName()).teleport(ld); + commandSender.sendMessage("erfolgreich teleportiert"); + break; + } + return false; + } +} diff --git a/src/main/java/de/softwarerat/smpcore/SMPCore.java b/src/main/java/de/softwarerat/smpcore/SMPCore.java new file mode 100644 index 0000000..a4c0de5 --- /dev/null +++ b/src/main/java/de/softwarerat/smpcore/SMPCore.java @@ -0,0 +1,25 @@ +package de.softwarerat.smpcore; + +import com.softwarerat.Bansystem; +import com.softwarerat.MySQL.Ban; +import org.bukkit.plugin.java.JavaPlugin; + +public final class SMPCore extends JavaPlugin { + Ban ban; + @Override + public void onEnable() { + // Plugin startup logic + Bansystem bansystem = new Bansystem(); + bansystem.enableAPI("Benutzer","Passwort","Host","Datenbank"); + ban = bansystem.getBan(); + + // Register Commands + + + } + + @Override + public void onDisable() { + // Plugin shutdown logic + } +} diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml new file mode 100644 index 0000000..7eec1b3 --- /dev/null +++ b/src/main/resources/plugin.yml @@ -0,0 +1,4 @@ +name: SMPCore +version: '${project.version}' +main: de.softwarerat.smpcore.SMPCore +api-version: '1.20'