Init commit

This commit is contained in:
befaci03 2026-01-11 15:20:11 +01:00
commit 3ab6602c9a
21 changed files with 502 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
target
out

10
.idea/.gitignore vendored Normal file
View File

@ -0,0 +1,10 @@
# Default ignored files
/shelf/
/workspace.xml
# Ignored default folder with query files
/queries/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
# Editor-based HTTP Client requests
/httpRequests/

View File

@ -0,0 +1,9 @@
<component name="ArtifactManager">
<artifact type="jar" name="creeperpit:jar">
<output-path>$PROJECT_DIR$/out/artifacts/creeperpit_jar</output-path>
<root id="archive" name="creeperpit.jar">
<element id="module-output" name="creeperpit" />
<element id="file-copy" path="$PROJECT_DIR$/src/main/resources/plugin.yml" />
</root>
</artifact>
</component>

View File

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="BetterCommentsSettings">
<option name="initialized" value="true" />
<option name="tags">
<list>
<CustomTag>
<option name="color" value="#FF2D00" />
<option name="type" value="!" />
</CustomTag>
<CustomTag>
<option name="color" value="#3498DB" />
<option name="type" value="?" />
</CustomTag>
<CustomTag>
<option name="color" value="#474747" />
<option name="hasStrikethrough" value="true" />
<option name="type" value="//" />
</CustomTag>
<CustomTag>
<option name="color" value="#FF8C00" />
<option name="type" value="todo" />
</CustomTag>
<CustomTag>
<option name="color" value="#98C379" />
<option name="type" value="*" />
</CustomTag>
</list>
</option>
</component>
</project>

13
.idea/compiler.xml Normal file
View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="creeperpit" />
</profile>
</annotationProcessing>
</component>
</project>

13
.idea/creeperpit.iml Normal file
View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<component name="FacetManager">
<facet type="minecraft" name="Minecraft">
<configuration>
<autoDetectTypes>
<platformType>SPIGOT</platformType>
</autoDetectTypes>
<projectReimportVersion>1</projectReimportVersion>
</configuration>
</facet>
</component>
</module>

7
.idea/encodings.xml Normal file
View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
</component>
</project>

30
.idea/jarRepositories.xml Normal file
View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Central Repository" />
<option name="url" value="https://repo.maven.apache.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="sonatype" />
<option name="name" value="sonatype" />
<option name="url" value="https://oss.sonatype.org/content/groups/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="spigotmc-repo" />
<option name="name" value="spigotmc-repo" />
<option name="url" value="https://hub.spigotmc.org/nexus/content/repositories/snapshots/" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
</component>
</project>

14
.idea/misc.xml Normal file
View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="21" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

8
.idea/modules.xml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/creeperpit.iml" filepath="$PROJECT_DIR$/.idea/creeperpit.iml" />
</modules>
</component>
</project>

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

13
creeperpit.iml Normal file
View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<component name="FacetManager">
<facet type="minecraft" name="Minecraft">
<configuration>
<autoDetectTypes>
<platformType>SPIGOT</platformType>
</autoDetectTypes>
<projectReimportVersion>1</projectReimportVersion>
</configuration>
</facet>
</component>
</module>

73
pom.xml Normal file
View File

@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>eu.creeper.mc</groupId>
<artifactId>creeperpit</artifactId>
<version>1.2-SNAPSHOT</version>
<packaging>jar</packaging>
<name>creeperpit</name>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
<repositories>
<repository>
<id>spigotmc-repo</id>
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.8.8-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jetbrains</groupId>
<artifactId>annotations</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,152 @@
package eu.creeper.mc.creeperPit;
import eu.creeper.mc.creeperPit.worldguard.WGManager;
import eu.creeper.mc.creeperPit.worldguard.Region;
import org.bukkit.*;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerDropItemEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.player.PlayerRespawnEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import java.util.Objects;
public class Main extends JavaPlugin implements Listener {
private Location spawnLocation;
public void onEnable() {
World world = getWorld();
spawnLocation = new Location(world, -643.5D, 36D, 444.5D, -180F, 0F);
Bukkit.getPluginManager().registerEvents(this, this);
Region spawnRegion = new Region("spawn", new Location(world, -659.0D, 36.0D, 402.0D), new Location(world, -629.0D, 55.0D, 448.0D), "Safe");
spawnRegion.setAllowBuild(false);
spawnRegion.setAllowBreak(false);
spawnRegion.setAllowDrop(false);
spawnRegion.setAllowPvp(false);
Region spawnRegRegion = new Region("spawnreg", new Location(world, -650.0D, 0.0D, 423.0D), new Location(world, -639.0D, 255.0D, 411.0D), "Safe");
spawnRegRegion.setAllowBuild(false);
spawnRegRegion.setAllowBreak(false);
spawnRegRegion.setAllowDrop(true);
spawnRegRegion.setAllowPvp(false);
WGManager.registerRegion(spawnRegion);
WGManager.registerRegion(spawnRegRegion);
}
private World getWorld() {
World world = Bukkit.getWorld("world");
if (world == null || !world.isChunkLoaded(0, 0)) {
world = Bukkit.getWorlds().get(0); //fallback
}
return world;
}
@EventHandler
public void onPlayerJoin(PlayerJoinEvent ev) {
ev.setJoinMessage(ChatColor.GREEN +""+ ChatColor.BOLD + "[+] " + ChatColor.RESET + ChatColor.YELLOW + ev.getPlayer().getName());
Player player = ev.getPlayer();
setupPlayer(player);
}
@EventHandler
public void onPlayerLeft(PlayerQuitEvent ev) {
ev.setQuitMessage(ChatColor.RED +""+ ChatColor.BOLD + "[-] " + ChatColor.RESET + ChatColor.YELLOW + ev.getPlayer().getName());
}
@EventHandler
public void onPlayerDropItem(PlayerDropItemEvent ev) {
ItemStack i = ev.getItemDrop().getItemStack();
ev.setCancelled(i.getType() == Material.IRON_BOOTS ||
i.getType() == Material.IRON_CHESTPLATE ||
i.getType() == Material.IRON_HELMET ||
i.getType() == Material.IRON_LEGGINGS ||
(i.getType() == Material.BLAZE_ROD && Objects.equals(i.getItemMeta().getDisplayName(), ChatColor.GOLD + "CreeperStaff Manager")));
}
@EventHandler
public void onPlayerDie(PlayerDeathEvent ev) {
ev.setDeathMessage(ChatColor.RED + ev.getEntity().getPlayer().getName() + " got stabbed by " + ev.getEntity().getKiller().getName());
}
@EventHandler
public void onPlayerRespawn(PlayerRespawnEvent event) {
Bukkit.getScheduler().runTaskLater(this, () -> setupPlayer(event.getPlayer()), 5L);
}
private void setupPlayer(Player player) {
player.teleport(this.spawnLocation);
player.setGameMode(GameMode.SURVIVAL);
PlayerInventory inventory = player.getInventory();
inventory.clear();
inventory.setHelmet(new ItemStack(Material.IRON_HELMET));
inventory.setChestplate(new ItemStack(Material.IRON_CHESTPLATE));
inventory.setLeggings(new ItemStack(Material.IRON_LEGGINGS));
inventory.setBoots(new ItemStack(Material.IRON_BOOTS));
inventory.addItem(new ItemStack(Material.IRON_SWORD));
inventory.addItem(new ItemStack(Material.FISHING_ROD));
inventory.addItem(new ItemStack(Material.BOW));
inventory.addItem(new ItemStack(Material.ARROW, 16));
inventory.addItem(new ItemStack(Material.GOLDEN_APPLE, 2));
PotionEffect nightVision = new PotionEffect(PotionEffectType.NIGHT_VISION, 1000000, 1, true, false);
player.addPotionEffect(nightVision);
player.setHealth(20D);
player.setFoodLevel(20);
}
//TODO: NEEDS TO BE MOVED TO worldguard.Handler
@EventHandler
public void onDrop(PlayerDropItemEvent event) {
Region region = WGManager.getRegionAt(event.getPlayer().getLocation());
if (region == null) return;
event.setCancelled(!region.canDrop());
}
@EventHandler
public void onBlockBreak(BlockBreakEvent ev) {
Player plr = ev.getPlayer();
Region region = WGManager.getRegionAt(ev.getBlock().getLocation());
if (region == null) return;
ev.setCancelled(!region.canBreak() && plr.getGameMode() != GameMode.CREATIVE);
}
@EventHandler
public void onBlockPlace(BlockPlaceEvent ev) {
Player plr = ev.getPlayer();
Region region = WGManager.getRegionAt(ev.getBlock().getLocation());
if (region == null) return;
ev.setCancelled(!region.canBuild() && plr.getGameMode() != GameMode.CREATIVE);
}
@EventHandler
public void onPvp(EntityDamageByEntityEvent event) {
if (!(event.getDamager() instanceof Player) || !(event.getEntity() instanceof Player)) return;
Player damager = (Player)event.getDamager(); //the player*
Player plr = ((Player)event.getEntity()).getPlayer(); //the victim*
Region pregion = WGManager.getRegionAt(plr.getLocation());
if (pregion == null) return;
Region dregion = WGManager.getRegionAt(damager.getLocation());
if (dregion == null) return;
if (!dregion.canPvp() || !pregion.canPvp()) {
event.setCancelled(true);
damager.sendMessage(ChatColor.RED + "You cannot PVP here!");
}
}
}

View File

@ -0,0 +1,4 @@
package eu.creeper.mc.creeperPit;
public class Scoreboard {
}

View File

@ -0,0 +1,4 @@
package eu.creeper.mc.creeperPit.mysql;
public class MariaDBManager {
}

View File

@ -0,0 +1,4 @@
package eu.creeper.mc.creeperPit.points;
public class PtManager {
}

View File

@ -0,0 +1,6 @@
package eu.creeper.mc.creeperPit.worldguard;
import org.bukkit.event.Listener;
public class Handler implements Listener {
}

View File

@ -0,0 +1,70 @@
package eu.creeper.mc.creeperPit.worldguard;
import org.bukkit.Location;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class Region {
private final String rname;
private final String label;
private final Location min;
private final Location max;
private boolean allowBuild;
private boolean allowBreak;
private boolean allowPvp;
private boolean allowDrop;
public Region(@NotNull String name, @NotNull Location min, @NotNull Location max, @Nullable String label) {
this.rname = name;
this.label = label;
this.min = min;
this.max = max;
this.allowBuild = false;
this.allowBreak = false;
this.allowPvp = false;
this.allowDrop = true;
}
public boolean contains(@NotNull Location loc) {
return loc.getWorld().equals(min.getWorld()) &&
loc.getX() >= min.getX() && loc.getX() <= max.getX() &&
loc.getY() >= min.getY() && loc.getY() <= max.getY() &&
loc.getZ() >= min.getZ() && loc.getZ() <= max.getZ();
}
public String getName() {
return rname;
}
public String getLabel() {
return label;
}
public boolean canBuild() {
return allowBuild;
}
public boolean canBreak() {
return allowBreak;
}
public boolean canPvp() {
return allowPvp;
}
public boolean canDrop() {
return allowDrop;
}
public void setAllowBuild(boolean allow) {
this.allowBuild = allow;
}
public void setAllowBreak(boolean allow) {
this.allowBreak = allow;
}
public void setAllowPvp(boolean allow) {
this.allowPvp = allow;
}
public void setAllowDrop(boolean allow) {
this.allowDrop = allow;
}
}

View File

@ -0,0 +1,22 @@
package eu.creeper.mc.creeperPit.worldguard;
import org.bukkit.Location;
import org.bukkit.event.Listener;
import java.util.ArrayList;
import java.util.List;
public class WGManager implements Listener {
private static final List<Region> regions = new ArrayList<>();
public static void registerRegion(Region region) {
regions.add(region);
}
public static Region getRegionAt(Location loc) {
for (Region region : regions) {
if (region.contains(loc)) return region;
}
return null;
}
}

View File

@ -0,0 +1,11 @@
name: CreeperPit
version: '1.2-SNAPSHOT'
main: eu.creeper.mc.creeperPit.Main
api-version: '1.8.8'
prefix: CPit
authors: [ Befaci, creepervmuser1000 ]
description: CreeperPit gameplay management
permissions:
creeperpit.worldguard:
default: "op"
description: "Can bypass the WorldGuard"