Did more work, but its not going to be done soon. So doing a release with it disabled

This commit is contained in:
Andrew 2013-10-08 05:56:47 +13:00
parent 8869354b46
commit 58f39401d2
3 changed files with 32 additions and 9 deletions

View file

@ -45,7 +45,6 @@ public class DisguiseAPI {
private static boolean hearSelfDisguise;
private static boolean hidingArmor;
private static boolean hidingHeldItem;
private static LibsDisguises libsDisguises;
// A internal storage of fake entity ID's I can use.
// Realistically I could probably use a ID like "4" for everyone seeing as no one shares the ID
@ -144,10 +143,6 @@ public class DisguiseAPI {
return -1;
}
protected static void init(LibsDisguises mainPlugin) {
libsDisguises = mainPlugin;
}
/**
* Is this entity disguised
*/

View file

@ -70,13 +70,12 @@ public class LibsDisguises extends JavaPlugin {
e.printStackTrace();
}
PacketsManager.init(this);
DisguiseAPI.init(this);
DisguiseAPI.setSoundsEnabled(getConfig().getBoolean("DisguiseSounds"));
DisguiseAPI.setVelocitySent(getConfig().getBoolean("SendVelocity"));
DisguiseAPI.setViewDisguises(getConfig().getBoolean("ViewDisguises"));
DisguiseAPI.setHearSelfDisguise(getConfig().getBoolean("HearSelfDisguise"));
DisguiseAPI.setHideArmorFromSelf(getConfig().getBoolean("RemoveArmor"));
DisguiseAPI.setHideHeldItemFromSelf(getConfig().getBoolean("RemoveHeldItem"));
// DisguiseAPI.setHideArmorFromSelf(getConfig().getBoolean("RemoveArmor"));
// DisguiseAPI.setHideHeldItemFromSelf(getConfig().getBoolean("RemoveHeldItem"));
if (DisguiseAPI.isHidingArmorFromSelf() || DisguiseAPI.isHidingHeldItemFromSelf()) {
DisguiseAPI.setInventoryListenerEnabled(true);
}

View file

@ -683,7 +683,7 @@ public class PacketsManager {
};
// TODO Potentionally combine both listeners.
inventoryListenerServer = new PacketAdapter(libsDisguises, ConnectionSide.SERVER_SIDE, ListenerPriority.HIGHEST,
Packets.Server.SET_SLOT) {
Packets.Server.SET_SLOT, Packets.Server.WINDOW_ITEMS) {
@Override
public void onPacketSending(PacketEvent event) {
// If the inventory is the players inventory
@ -735,6 +735,33 @@ public class PacketsManager {
case Packets.Server.WINDOW_ITEMS: {
// TODO Find out how this works
// It seems to 'update' the inventory.. Screw you..
event.setPacket(event.getPacket().deepClone());
StructureModifier<Object> mods = event.getPacket().getModifier();
ItemStack[] items = (ItemStack[]) mods.read(1);
for (int slot = 0; slot < items.length; slot++) {
if (slot >= 5 && slot <= 8) {
if (disguise.isHidingArmorFromSelf()) {
// Get the bukkit armor slot!
int armorSlot = Math.abs((slot - 5) - 3);
org.bukkit.inventory.ItemStack item = event.getPlayer().getInventory().getArmorContents()[armorSlot];
if (item != null && item.getType() != Material.AIR) {
items[slot] = CraftItemStack.asNMSCopy(new org.bukkit.inventory.ItemStack(0));
}
}
// Else if its a hotbar slot
} else if (slot >= 36 && slot <= 44) {
if (disguise.isHidingHeldItemFromSelf()) {
int currentSlot = event.getPlayer().getInventory().getHeldItemSlot();
// Check if the player is on the same slot as the slot that its setting
if (slot == currentSlot + 36) {
org.bukkit.inventory.ItemStack item = event.getPlayer().getItemInHand();
if (item != null && item.getType() != Material.AIR) {
items[slot] = CraftItemStack.asNMSCopy(new org.bukkit.inventory.ItemStack(0));
}
}
}
}
}
break;
}
default:
@ -850,6 +877,8 @@ public class PacketsManager {
org.bukkit.inventory.ItemStack clickedItem;
if (event.getPacket().getIntegers().read(3) == 1) {
// Its a shift click
// TODO Make the item appear in the right place
// Also set the armor/item in hand to air cos the client is stupid.
clickedItem = event.getPacket().getItemModifier().read(0);
if (clickedItem != null && clickedItem.getType() != Material.AIR) {
org.bukkit.inventory.ItemStack armorItem = null;