Fixed isInvulnerable for real this time
This commit is contained in:
parent
15c0141c3d
commit
1ea2a3f94f
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -4,7 +4,6 @@ import java.util.ArrayList;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
import me.libraryaddict.disguise.DisguiseConfig;
|
import me.libraryaddict.disguise.DisguiseConfig;
|
||||||
import me.libraryaddict.disguise.DisguiseListener;
|
|
||||||
import me.libraryaddict.disguise.LibsDisguises;
|
import me.libraryaddict.disguise.LibsDisguises;
|
||||||
import me.libraryaddict.disguise.disguisetypes.Disguise;
|
import me.libraryaddict.disguise.disguisetypes.Disguise;
|
||||||
import me.libraryaddict.disguise.disguisetypes.DisguiseType;
|
import me.libraryaddict.disguise.disguisetypes.DisguiseType;
|
||||||
@ -42,7 +41,10 @@ public class DisguiseEntityCommand extends BaseDisguiseCommand {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Send the player the information
|
* Send the player the information
|
||||||
|
* @param sender
|
||||||
|
* @param map
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
protected void sendCommandUsage(CommandSender sender, HashMap<DisguiseType, HashMap<ArrayList<String>, Boolean>> map) {
|
protected void sendCommandUsage(CommandSender sender, HashMap<DisguiseType, HashMap<ArrayList<String>, Boolean>> map) {
|
||||||
ArrayList<String> allowedDisguises = getAllowedDisguises(map);
|
ArrayList<String> allowedDisguises = getAllowedDisguises(map);
|
||||||
sender.sendMessage(ChatColor.DARK_GREEN + "Choose a disguise then right click a entity to disguise it!");
|
sender.sendMessage(ChatColor.DARK_GREEN + "Choose a disguise then right click a entity to disguise it!");
|
||||||
|
@ -19,7 +19,6 @@ import me.libraryaddict.disguise.utilities.DisguiseUtilities;
|
|||||||
import me.libraryaddict.disguise.utilities.PacketsManager;
|
import me.libraryaddict.disguise.utilities.PacketsManager;
|
||||||
import me.libraryaddict.disguise.utilities.ReflectionManager;
|
import me.libraryaddict.disguise.utilities.ReflectionManager;
|
||||||
import me.libraryaddict.disguise.utilities.DisguiseValues;
|
import me.libraryaddict.disguise.utilities.DisguiseValues;
|
||||||
import me.libraryaddict.disguise.utilities.ReflectionManager.LibVersion;
|
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
@ -27,7 +26,6 @@ import org.bukkit.entity.Entity;
|
|||||||
import org.bukkit.entity.LivingEntity;
|
import org.bukkit.entity.LivingEntity;
|
||||||
import org.bukkit.entity.Horse.Variant;
|
import org.bukkit.entity.Horse.Variant;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
|
||||||
import org.bukkit.scheduler.BukkitTask;
|
import org.bukkit.scheduler.BukkitTask;
|
||||||
import org.bukkit.util.Vector;
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
@ -54,6 +52,7 @@ public abstract class Disguise {
|
|||||||
private boolean velocitySent = DisguiseConfig.isVelocitySent();
|
private boolean velocitySent = DisguiseConfig.isVelocitySent();
|
||||||
private boolean viewSelfDisguise = DisguiseConfig.isViewDisguises();
|
private boolean viewSelfDisguise = DisguiseConfig.isViewDisguises();
|
||||||
private FlagWatcher watcher;
|
private FlagWatcher watcher;
|
||||||
|
private boolean showName = false;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public abstract Disguise clone();
|
public abstract Disguise clone();
|
||||||
@ -322,6 +321,7 @@ public abstract class Disguise {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the disguised entity
|
* Get the disguised entity
|
||||||
|
* @return
|
||||||
*/
|
*/
|
||||||
public Entity getEntity() {
|
public Entity getEntity() {
|
||||||
return entity;
|
return entity;
|
||||||
@ -329,6 +329,7 @@ public abstract class Disguise {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the disguise type
|
* Get the disguise type
|
||||||
|
* @return
|
||||||
*/
|
*/
|
||||||
public DisguiseType getType() {
|
public DisguiseType getType() {
|
||||||
return disguiseType;
|
return disguiseType;
|
||||||
@ -336,6 +337,7 @@ public abstract class Disguise {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the flag watcher
|
* Get the flag watcher
|
||||||
|
* @return
|
||||||
*/
|
*/
|
||||||
public FlagWatcher getWatcher() {
|
public FlagWatcher getWatcher() {
|
||||||
return watcher;
|
return watcher;
|
||||||
@ -344,6 +346,7 @@ public abstract class Disguise {
|
|||||||
/**
|
/**
|
||||||
* In use doesn't mean that this disguise is active. It means that Lib's Disguises still stores a reference to the disguise.
|
* In use doesn't mean that this disguise is active. It means that Lib's Disguises still stores a reference to the disguise.
|
||||||
* getEntity() can still return null if this disguise is active after despawn, logout, etc.
|
* getEntity() can still return null if this disguise is active after despawn, logout, etc.
|
||||||
|
* @return
|
||||||
*/
|
*/
|
||||||
public boolean isDisguiseInUse() {
|
public boolean isDisguiseInUse() {
|
||||||
return disguiseInUse;
|
return disguiseInUse;
|
||||||
@ -417,6 +420,14 @@ public abstract class Disguise {
|
|||||||
return velocitySent;
|
return velocitySent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns true if the entity's name is showing through the disguise
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public boolean isShowName() {
|
||||||
|
return showName;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Removes the disguise and undisguises the entity if its using this disguise.
|
* Removes the disguise and undisguises the entity if its using this disguise.
|
||||||
*
|
*
|
||||||
@ -482,6 +493,8 @@ public abstract class Disguise {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the entity of the disguise. Only used for internal things.
|
* Set the entity of the disguise. Only used for internal things.
|
||||||
|
* @param entity
|
||||||
|
* @return
|
||||||
*/
|
*/
|
||||||
public Disguise setEntity(Entity entity) {
|
public Disguise setEntity(Entity entity) {
|
||||||
if (this.getEntity() != null) {
|
if (this.getEntity() != null) {
|
||||||
@ -498,6 +511,11 @@ public abstract class Disguise {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Disguise setShowName(boolean showName) {
|
||||||
|
this.showName = showName;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public Disguise setHearSelfDisguise(boolean hearSelfDisguise) {
|
public Disguise setHearSelfDisguise(boolean hearSelfDisguise) {
|
||||||
this.hearSelfDisguise = hearSelfDisguise;
|
this.hearSelfDisguise = hearSelfDisguise;
|
||||||
return this;
|
return this;
|
||||||
|
@ -583,7 +583,7 @@ public class PacketsManager {
|
|||||||
nmsEntity) == ReflectionManager.getNmsField("EntityLiving",
|
nmsEntity) == ReflectionManager.getNmsField("EntityLiving",
|
||||||
"maxNoDamageTicks").getInt(nmsEntity);
|
"maxNoDamageTicks").getInt(nmsEntity);
|
||||||
} else {
|
} else {
|
||||||
hasInvun = (Boolean) ReflectionManager.getNmsMethod("Entity", "isInvulnerable")
|
hasInvun = (Boolean) ReflectionManager.getNmsMethod("Entity", "isInvulnerable", DamageSource.class)
|
||||||
.invoke(nmsEntity, DamageSource.GENERIC);
|
.invoke(nmsEntity, DamageSource.GENERIC);
|
||||||
}
|
}
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
@ -819,7 +819,7 @@ public class PacketsManager {
|
|||||||
PacketContainer packet = new PacketContainer(PacketType.Play.Server.ENTITY_METADATA);
|
PacketContainer packet = new PacketContainer(PacketType.Play.Server.ENTITY_METADATA);
|
||||||
StructureModifier<Object> mods = packet.getModifier();
|
StructureModifier<Object> mods = packet.getModifier();
|
||||||
mods.write(0, observer.getEntityId());
|
mods.write(0, observer.getEntityId());
|
||||||
List<WrappedWatchableObject> watchableList = new ArrayList<WrappedWatchableObject>();
|
List<WrappedWatchableObject> watchableList = new ArrayList<>();
|
||||||
byte b = (byte) 1 << 5;
|
byte b = (byte) 1 << 5;
|
||||||
if (observer.isSprinting())
|
if (observer.isSprinting())
|
||||||
b = (byte) (b | 1 << 3);
|
b = (byte) (b | 1 << 3);
|
||||||
|
Loading…
Reference in New Issue
Block a user