mirror of
https://github.com/Multiverse/Multiverse-Core.git
synced 2024-09-27 14:52:49 +02:00
Hopefully fixed Ghasts & PigZombies spawning regardless of setting.
Implemented PVP Setting & EnableHealth setting. World Compressiong = 0 forces you to Spawn now.
This commit is contained in:
parent
e4718d38d4
commit
4053937019
@ -2,13 +2,19 @@ package com.onarandombox.MultiVerseCore;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.entity.Animals;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Fireball;
|
||||
import org.bukkit.entity.Ghast;
|
||||
import org.bukkit.entity.Monster;
|
||||
import org.bukkit.entity.PigZombie;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.entity.CreatureSpawnEvent;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.entity.EntityDamageByProjectileEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.bukkit.event.entity.EntityExplodeEvent;
|
||||
import org.bukkit.event.entity.EntityListener;
|
||||
import org.bukkit.event.entity.ExplosionPrimedEvent;
|
||||
@ -34,6 +40,37 @@ public class MVEntityListener extends EntityListener {
|
||||
}
|
||||
}
|
||||
|
||||
public void onEntityDamage(EntityDamageEvent event){
|
||||
if (event.isCancelled()) return;
|
||||
|
||||
Entity attacker = null;
|
||||
Entity defender = event.getEntity();
|
||||
World w = defender.getWorld();
|
||||
|
||||
if(!(MultiVerseCore.configWorlds.getBoolean("worlds." + w.getName() + ".enablehealth", true))){
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
|
||||
if(event instanceof EntityDamageByEntityEvent){
|
||||
attacker = ((EntityDamageByEntityEvent) event).getDamager();
|
||||
} else if(event instanceof EntityDamageByProjectileEvent){
|
||||
attacker = ((EntityDamageByProjectileEvent) event).getDamager();
|
||||
}
|
||||
|
||||
if(attacker==null || defender==null){
|
||||
return;
|
||||
}
|
||||
|
||||
if (defender instanceof Player){
|
||||
if (!(this.plugin.worlds.get(w.getName()).pvp)) {
|
||||
this.plugin.playerSessions.get(((Player) attacker)).message(ChatColor.RED + "PVP is disabled in this World.");
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle Animal/Monster Spawn settings, seems like a more concrete method than using CraftBukkit.
|
||||
*/
|
||||
@ -72,7 +109,7 @@ public class MVEntityListener extends EntityListener {
|
||||
/**
|
||||
* Monster Handling
|
||||
*/
|
||||
if(event.getEntity() instanceof Monster){
|
||||
if(event.getEntity() instanceof Monster || event.getEntity() instanceof Ghast || event.getEntity() instanceof PigZombie){
|
||||
// If we have no exceptions for Monsters then we just follow the Spawn setting.
|
||||
if(mvworld.monsterList.size()<=0){
|
||||
if(mvworld.monsters){
|
||||
|
@ -37,10 +37,18 @@ public class MVTeleport {
|
||||
double trgComp = plugin.worlds.get(world.getName()).compression;
|
||||
|
||||
MultiVerseCore.log.info(player.getWorld().getName() + "(" + srcComp + ") -> " + world.getName() + "(" + trgComp + ")");
|
||||
|
||||
x = location.getX() / (srcComp != 0 ? srcComp : 1) * trgComp + 0.5;
|
||||
y = location.getY();
|
||||
z = location.getZ() / (srcComp != 0 ? srcComp : 1) * trgComp + 0.5;
|
||||
|
||||
// If the Targets Compression is 0 then we teleport them to the Spawn of the World.
|
||||
if(trgComp==0.0){
|
||||
x = world.getSpawnLocation().getX();
|
||||
y = world.getSpawnLocation().getY();
|
||||
z = world.getSpawnLocation().getZ();
|
||||
} else {
|
||||
x = location.getX() / (srcComp != 0 ? srcComp : 1) * trgComp + 0.5;
|
||||
y = location.getY();
|
||||
z = location.getZ() / (srcComp != 0 ? srcComp : 1) * trgComp + 0.5;
|
||||
}
|
||||
|
||||
} else {
|
||||
x = location.getX();
|
||||
y = location.getY();
|
||||
@ -214,9 +222,13 @@ public class MVTeleport {
|
||||
if (target != null) {
|
||||
this.target = target;
|
||||
p.teleportTo(target);
|
||||
} else return false;
|
||||
return true;
|
||||
} else return false;
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -225,5 +237,4 @@ public class MVTeleport {
|
||||
public boolean teleport(World w, Player p) {
|
||||
return teleport(w, p, null);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -266,4 +266,8 @@ public class MultiVerseCore extends JavaPlugin {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void debugMsg(String msg){
|
||||
debugMsg(msg,null);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user