use of net.minecraft.server.v1_15_R1 in project SimplePets by brainsynder-Dev.
the class EntityControllerPet method repeatTask.
@Override
public void repeatTask() {
super.repeatTask();
if (!this.isInvisible())
this.setInvisible(true);
if (!isSilent())
this.setSilent(true);
if (getPet() != null)
if (isBaby())
setBaby((getPet().getPetType() instanceof ShulkerDefault));
Player p = getPet().getOwner();
if (this.displayEntity != null) {
if (this.displayEntity.isValid()) {
net.minecraft.server.v1_15_R1.Entity entity = ((CraftEntity) displayEntity).getHandle();
if (!displayEntity.getPassengers().isEmpty()) {
if (displayRider == null)
displayRider = displayEntity.getPassengers().get(0);
entity = ((CraftEntity) displayRider).getHandle();
}
updateName(entity);
reloadLocation();
if (!canIgnoreVanish()) {
if (((CraftPlayer) p).getHandle().isInvisible() != entity.isInvisible())
entity.setInvisible(!entity.isInvisible());
}
}
}
PetDefault type = getVisibleEntity().getPet().getPetType();
double current = getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue();
double rideSpeed = type.getRideSpeed();
double walkSpeed = type.getSpeed();
if (isOwnerRiding()) {
if (current != rideSpeed)
getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).setValue(rideSpeed);
} else {
if (current != walkSpeed)
getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).setValue(walkSpeed);
}
}
use of net.minecraft.server.v1_15_R1 in project TheAPI by TheDevTec.
the class v1_15_R1 method getBlock.
@Override
public Object getBlock(Object chunk, int x, int y, int z) {
net.minecraft.server.v1_15_R1.Chunk c = (net.minecraft.server.v1_15_R1.Chunk) chunk;
ChunkSection sc = c.getSections()[y >> 4];
if (sc == null)
return Blocks.AIR.getBlockData();
return sc.getBlocks().a(x & 15, y & 15, z & 15);
}
use of net.minecraft.server.v1_15_R1 in project TheAPI by TheDevTec.
the class v1_15_R1 method processInvClickPacket.
@Override
public boolean processInvClickPacket(Player player, HolderGUI gui, Object provPacket) {
PacketPlayInWindowClick packet = (PacketPlayInWindowClick) provPacket;
int slot = packet.c();
if (slot == -999)
return false;
int id = packet.b();
int mouseClick = packet.d();
net.minecraft.server.v1_15_R1.InventoryClickType nmsType = packet.g();
InventoryClickType type = InventoryClickType.valueOf(nmsType.name());
Object container = gui.getContainer(player);
ItemStack item = asBukkitItem(packet.f());
if ((type == InventoryClickType.QUICK_MOVE || type == InventoryClickType.CLONE || type == InventoryClickType.THROW || item.getType().isAir()) && item.getType().isAir())
item = asBukkitItem(getSlotItem(container, slot));
boolean cancel = false;
if (InventoryClickType.SWAP == type) {
item = player.getInventory().getItem(mouseClick);
mouseClick = 0;
cancel = true;
}
if (item == null)
item = new ItemStack(Material.AIR);
ItemStack before = player.getItemOnCursor();
ClickType clickType = BukkitLoader.buildClick(item, type, slot, mouseClick);
if (!cancel)
cancel = BukkitLoader.useItem(player, item, gui, slot, clickType);
if (!gui.isInsertable())
cancel = true;
int gameSlot = slot > gui.size() - 1 ? InventoryUtils.convertToPlayerInvSlot(slot - gui.size()) : slot;
if (!cancel)
cancel = gui.onIteractItem(player, item, clickType, gameSlot, slot < gui.size());
else
gui.onIteractItem(player, item, clickType, gameSlot, slot < gui.size());
int position = 0;
if (!cancel && type == InventoryClickType.QUICK_MOVE) {
ItemStack[] contents = slot < gui.size() ? player.getInventory().getStorageContents() : gui.getInventory().getStorageContents();
List<Integer> modified = slot < gui.size() ? InventoryUtils.shift(slot, player, gui, clickType, gui instanceof AnvilGUI ? DestinationType.PLAYER_INV_ANVIL : DestinationType.PLAYER_INV_CUSTOM_INV, null, contents, item) : InventoryUtils.shift(slot, player, gui, clickType, DestinationType.CUSTOM_INV, gui.getNotInterableSlots(player), contents, item);
if (!modified.isEmpty()) {
if (slot < gui.size()) {
boolean canRemove = !modified.contains(-1);
player.getInventory().setStorageContents(contents);
if (canRemove) {
gui.remove(gameSlot);
} else {
gui.getInventory().setItem(gameSlot, item);
}
} else {
boolean canRemove = !modified.contains(-1);
gui.getInventory().setStorageContents(contents);
if (canRemove) {
player.getInventory().setItem(gameSlot, null);
} else {
player.getInventory().setItem(gameSlot, item);
}
}
}
return true;
}
if (cancel) {
// MOUSE
BukkitLoader.getPacketHandler().send(player, packetSetSlot(-1, -1, asNMSItem(before)));
switch(type) {
case CLONE:
return true;
case SWAP:
case QUICK_MOVE:
case PICKUP_ALL:
// TOP
for (ItemStack cItem : gui.getInventory().getContents()) {
BukkitLoader.getPacketHandler().send(player, packetSetSlot(id, position++, asNMSItem(cItem)));
}
// BUTTON
player.updateInventory();
return true;
default:
BukkitLoader.getPacketHandler().send(player, packetSetSlot(id, slot, getSlotItem(container, slot)));
if (gui instanceof AnvilGUI) {
// TOP
for (ItemStack cItem : gui.getInventory().getContents()) {
if (position != slot)
BukkitLoader.getPacketHandler().send(player, packetSetSlot(id, position++, asNMSItem(cItem)));
}
// BUTTON
player.updateInventory();
}
return true;
}
} else {
if (gui instanceof AnvilGUI && slot == 2)
postToMainThread(() -> ((ContainerAnvil) container).shiftClick((EntityPlayer) getPlayer(player), slot));
}
return false;
}
use of net.minecraft.server.v1_15_R1 in project TheAPI by TheDevTec.
the class v1_15_R1 method updateLightAt.
@Override
public void updateLightAt(Object chunk, int x, int y, int z) {
net.minecraft.server.v1_15_R1.Chunk c = (net.minecraft.server.v1_15_R1.Chunk) chunk;
c.world.getChunkProvider().getLightEngine().a(new BlockPosition(x, y, z));
}
use of net.minecraft.server.v1_15_R1 in project TheAPI by TheDevTec.
the class v1_15_R1 method setGUITitle.
@Override
public void setGUITitle(Player player, Object container, String legacy, int size, String title) {
EntityPlayer nmsPlayer = ((CraftPlayer) player).getHandle();
int id = ((Container) container).windowId;
NonNullList<net.minecraft.server.v1_15_R1.ItemStack> nmsItems = ((Container) container).items;
BukkitLoader.getPacketHandler().send(player, packetOpenWindow(id, legacy, size, title));
int i = 0;
for (net.minecraft.server.v1_15_R1.ItemStack o : nmsItems) BukkitLoader.getPacketHandler().send(player, packetSetSlot(id, i++, o));
nmsPlayer.activeContainer = (Container) container;
((Container) container).addSlotListener(nmsPlayer);
((Container) container).checkReachable = false;
}
Aggregations