forked from CreeperMC/creeperpit
revert 33c2905639
(from 1.8.8 to 1.18.2) - Moved worldguard things to worldguard.Handler
This commit is contained in:
parent
b6a930bdf7
commit
b72c6de321
|
|
@ -16,6 +16,11 @@
|
|||
<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="papermc-repo" />
|
||||
<option name="name" value="papermc-repo" />
|
||||
<option name="url" value="https://repo.papermc.io/repository/maven-public/" />
|
||||
</remote-repository>
|
||||
<remote-repository>
|
||||
<option name="id" value="central" />
|
||||
<option name="name" value="Maven Central repository" />
|
||||
|
|
|
|||
14
pom.xml
14
pom.xml
|
|
@ -6,13 +6,13 @@
|
|||
|
||||
<groupId>eu.creeper.mc</groupId>
|
||||
<artifactId>creeperpit</artifactId>
|
||||
<version>1.2-SNAPSHOT</version>
|
||||
<version>2.0-SNAPSHOT</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>creeperpit</name>
|
||||
|
||||
<properties>
|
||||
<java.version>1.8</java.version>
|
||||
<java.version>17</java.version>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
|
|
@ -51,16 +51,16 @@
|
|||
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>spigotmc-repo</id>
|
||||
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
|
||||
<id>papermc-repo</id>
|
||||
<url>https://repo.papermc.io/repository/maven-public/</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.spigotmc</groupId>
|
||||
<artifactId>spigot-api</artifactId>
|
||||
<version>1.8.8-R0.1-SNAPSHOT</version>
|
||||
<groupId>io.papermc.paper</groupId>
|
||||
<artifactId>paper-api</artifactId>
|
||||
<version>1.18.2-R0.1-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
|
|
|
|||
|
|
@ -1,19 +1,14 @@
|
|||
package eu.creeper.mc.creeperPit;
|
||||
|
||||
import eu.creeper.mc.creeperPit.worldguard.WGManager;
|
||||
import eu.creeper.mc.creeperPit.worldguard.Handler;
|
||||
import eu.creeper.mc.creeperPit.worldguard.Region;
|
||||
import eu.creeper.mc.creeperPit.worldguard.WGManager;
|
||||
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.event.player.*;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.PlayerInventory;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
|
@ -22,131 +17,115 @@ import org.bukkit.potion.PotionEffectType;
|
|||
|
||||
import java.util.Objects;
|
||||
|
||||
public class Main extends JavaPlugin implements Listener {
|
||||
public final class Main extends JavaPlugin implements Listener {
|
||||
private Location spawnLocation;
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
World world = getWorld();
|
||||
spawnLocation = new Location(world, -643.5D, 36D, 444.5D, -180F, 0F);
|
||||
|
||||
World world = getMainWorld();
|
||||
this.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);
|
||||
Bukkit.getPluginManager().registerEvents(new Handler(), this);
|
||||
registerRegions(world);
|
||||
}
|
||||
|
||||
private World getWorld() {
|
||||
private World getMainWorld() {
|
||||
World world = Bukkit.getWorld("world");
|
||||
if (world == null || !world.isChunkLoaded(0, 0)) {
|
||||
world = Bukkit.getWorlds().get(0); //fallback
|
||||
if (world == null) {
|
||||
world = Bukkit.getWorlds().get(0);//fallback
|
||||
}
|
||||
return world;
|
||||
}
|
||||
|
||||
private void registerRegions(World world) {
|
||||
Region spawn = new Region("spawn", new Location(world, -659.0D, 36.0D, 402.0D), new Location(world, -629.0D, 55.0D, 448.0D), "Safe");
|
||||
spawn.setAllowBuild(false);
|
||||
spawn.setAllowBreak(false);
|
||||
spawn.setAllowDrop(false);
|
||||
spawn.setAllowPvp(false);
|
||||
|
||||
Region spawnReg = new Region("spawnreg", new Location(world, -650.0D, 0.0D, 423.0D), new Location(world, -639.0D, 255.0D, 411.0D), "Safe");
|
||||
spawnReg.setAllowBuild(false);
|
||||
spawnReg.setAllowBreak(false);
|
||||
spawnReg.setAllowDrop(true);
|
||||
spawnReg.setAllowPvp(false);
|
||||
|
||||
WGManager.registerRegion(spawn);
|
||||
WGManager.registerRegion(spawnReg);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerJoin(PlayerJoinEvent ev) {
|
||||
ev.setJoinMessage(ChatColor.GREEN +""+ ChatColor.BOLD + "[+] " + ChatColor.RESET + ChatColor.YELLOW + ev.getPlayer().getName());
|
||||
Player player = ev.getPlayer();
|
||||
public void onJoin(PlayerJoinEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
|
||||
event.setJoinMessage(ChatColor.GREEN + "" + ChatColor.BOLD + "[+] " + ChatColor.RESET + ChatColor.YELLOW + player.getName());
|
||||
|
||||
setupPlayer(player);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerLeft(PlayerQuitEvent ev) {
|
||||
ev.setQuitMessage(ChatColor.RED +""+ ChatColor.BOLD + "[-] " + ChatColor.RESET + ChatColor.YELLOW + ev.getPlayer().getName());
|
||||
public void onQuit(PlayerQuitEvent event) {
|
||||
event.setQuitMessage(ChatColor.RED + "" + ChatColor.BOLD + "[-] " + ChatColor.RESET + ChatColor.YELLOW + event.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")));
|
||||
}
|
||||
public void onItemDrop(PlayerDropItemEvent event) {
|
||||
Region reg = WGManager.getRegionAt(event.getPlayer().getLocation());
|
||||
if (reg == null || !reg.canDrop()) event.setCancelled(true);
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerDie(PlayerDeathEvent ev) {
|
||||
ev.setDeathMessage(ChatColor.RED + ev.getEntity().getPlayer().getName() + " got stabbed by " + ev.getEntity().getKiller().getName());
|
||||
}
|
||||
ItemStack item = event.getItemDrop().getItemStack();
|
||||
Material type = item.getType();
|
||||
|
||||
boolean forbiddenArmor =
|
||||
type == Material.IRON_HELMET ||
|
||||
type == Material.IRON_CHESTPLATE ||
|
||||
type == Material.IRON_LEGGINGS ||
|
||||
type == Material.IRON_BOOTS;
|
||||
boolean forbiddenStaff =
|
||||
type == Material.BLAZE_ROD &&
|
||||
item.hasItemMeta() &&
|
||||
Objects.equals(item.getItemMeta().getDisplayName(), ChatColor.GOLD + "CreeperStaff Manager");
|
||||
|
||||
event.setCancelled(forbiddenArmor || forbiddenStaff);
|
||||
}
|
||||
@EventHandler
|
||||
public void onPlayerRespawn(PlayerRespawnEvent event) {
|
||||
public void onDeath(PlayerDeathEvent event) {
|
||||
Player victim = event.getEntity();
|
||||
Player killer = victim.getKiller();
|
||||
event.setDeathMessage(killer != null ? ChatColor.RED + victim.getName() + " got stabbed by " + killer.getName() : ChatColor.RED + victim.getName() + " magically respawned");
|
||||
|
||||
event.getDrops().removeIf(item -> {
|
||||
Material type = item.getType();
|
||||
|
||||
if (type.name().startsWith("IRON_")) return true;
|
||||
|
||||
return type == Material.BLAZE_ROD &&
|
||||
item.hasItemMeta() &&
|
||||
item.getItemMeta().hasDisplayName() &&
|
||||
item.getItemMeta().getDisplayName().equals(ChatColor.GOLD + "CreeperStaff Manager");
|
||||
});
|
||||
}
|
||||
@EventHandler
|
||||
public void onRespawn(PlayerRespawnEvent event) {
|
||||
Bukkit.getScheduler().runTaskLater(this, () -> setupPlayer(event.getPlayer()), 5L);
|
||||
}
|
||||
|
||||
private void setupPlayer(Player player) {
|
||||
player.teleport(this.spawnLocation);
|
||||
player.teleport(spawnLocation);
|
||||
player.setGameMode(GameMode.SURVIVAL);
|
||||
|
||||
PlayerInventory inventory = player.getInventory();
|
||||
inventory.clear();
|
||||
PlayerInventory inv = player.getInventory();
|
||||
inv.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));
|
||||
inv.setHelmet(new ItemStack(Material.IRON_HELMET));
|
||||
inv.setChestplate(new ItemStack(Material.IRON_CHESTPLATE));
|
||||
inv.setLeggings(new ItemStack(Material.IRON_LEGGINGS));
|
||||
inv.setBoots(new ItemStack(Material.IRON_BOOTS));
|
||||
inv.addItem(new ItemStack(Material.IRON_SWORD), new ItemStack(Material.FISHING_ROD), new ItemStack(Material.BOW), new ItemStack(Material.ARROW, 16), new ItemStack(Material.GOLDEN_APPLE, 2));
|
||||
|
||||
PotionEffect nightVision = new PotionEffect(PotionEffectType.NIGHT_VISION, 1000000, 1, true, false);
|
||||
player.addPotionEffect(nightVision);
|
||||
player.addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION, Integer.MAX_VALUE, 0, true, false));
|
||||
|
||||
player.setHealth(20D);
|
||||
player.setHealth(20.0);
|
||||
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!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,53 @@
|
|||
package eu.creeper.mc.creeperPit.worldguard;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.entity.Entity;
|
||||
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;
|
||||
|
||||
public class Handler implements Listener {
|
||||
@EventHandler
|
||||
public void onBlockBreak(BlockBreakEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
Region region = WGManager.getRegionAt(event.getBlock().getLocation());
|
||||
|
||||
if (region == null) return;
|
||||
|
||||
event.setCancelled(!region.canBreak() && player.getGameMode() != GameMode.CREATIVE);
|
||||
}
|
||||
@EventHandler
|
||||
public void onBlockPlace(BlockPlaceEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
Region region = WGManager.getRegionAt(event.getBlock().getLocation());
|
||||
|
||||
if (region == null) return;
|
||||
|
||||
event.setCancelled(!region.canBuild() && player.getGameMode() != GameMode.CREATIVE);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPvp(EntityDamageByEntityEvent event) {
|
||||
Entity damager = event.getDamager();
|
||||
Entity victim = event.getEntity();
|
||||
|
||||
if (!(damager instanceof Player) || !(victim instanceof Player)) return;
|
||||
|
||||
Player attacker = (Player)damager;
|
||||
Player target = (Player)victim;
|
||||
|
||||
Region dRegion = WGManager.getRegionAt(attacker.getLocation());
|
||||
Region tRegion = WGManager.getRegionAt(target.getLocation());
|
||||
|
||||
if (dRegion == null || tRegion == null) return;
|
||||
|
||||
if (!dRegion.canPvp() || !tRegion.canPvp()) {
|
||||
event.setCancelled(true);
|
||||
attacker.sendMessage(ChatColor.RED + "You cannot PVP here!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,13 @@
|
|||
name: CreeperPit
|
||||
version: '1.2-SNAPSHOT'
|
||||
version: 2.0-SNAPSHOT
|
||||
main: eu.creeper.mc.creeperPit.Main
|
||||
api-version: '1.8.8'
|
||||
api-version: 1.18
|
||||
prefix: CPit
|
||||
authors: [ Befaci, creeper ]
|
||||
authors:
|
||||
- Befaci
|
||||
- creeper
|
||||
description: CreeperPit gameplay management
|
||||
permissions:
|
||||
creeperpit.worldguard:
|
||||
creeperpit.worldguard.*:
|
||||
default: "op"
|
||||
description: "Can bypass the WorldGuard"
|
||||
description: "Can bypass every WorldGuard security"
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user