mirror of
https://github.com/StarWishsama/Slimefun4.git
synced 2024-09-20 03:35:51 +00:00
Merge pull request #850 from SoSeDiK/tests
Updated methods for skull rotation & better water handling
This commit is contained in:
commit
e67f19b552
@ -20,9 +20,10 @@ import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.block.data.Ageable;
|
||||
import org.bukkit.block.data.Rotatable;
|
||||
import org.bukkit.block.Dispenser;
|
||||
import org.bukkit.block.Skull;
|
||||
import org.bukkit.entity.Ageable;
|
||||
import org.bukkit.entity.Animals;
|
||||
import org.bukkit.entity.ArmorStand;
|
||||
import org.bukkit.entity.Entity;
|
||||
@ -100,7 +101,6 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
public abstract float getFuelEfficiency();
|
||||
public abstract int getTier();
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public ProgrammableAndroid(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe) {
|
||||
super(category, item, name, recipeType, recipe);
|
||||
|
||||
@ -218,12 +218,12 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
BlockStorage.addBlockInfo(b, "script", "START-TURN_LEFT-REPEAT");
|
||||
BlockStorage.addBlockInfo(b, "index", "0");
|
||||
BlockStorage.addBlockInfo(b, "fuel", "0");
|
||||
BlockStorage.addBlockInfo(b, "rotation", "NORTH");
|
||||
BlockStorage.addBlockInfo(b, "rotation", p.getFacing().toString());
|
||||
BlockStorage.addBlockInfo(b, "paused", "true");
|
||||
b.setType(Material.PLAYER_HEAD);
|
||||
Skull skull = (Skull) b.getState();
|
||||
skull.setRotation(BlockFace.NORTH);
|
||||
skull.update(true, false);
|
||||
Rotatable blockData = (Rotatable) b.getBlockData();
|
||||
blockData.setRotation(p.getFacing());
|
||||
b.setBlockData(blockData);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -252,7 +252,6 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
});
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
protected void tick(Block b) {
|
||||
try {
|
||||
if (!(b.getState() instanceof Skull)) {
|
||||
@ -327,9 +326,9 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
int rotIndex = directions.indexOf(BlockFace.valueOf(BlockStorage.getLocationInfo(b.getLocation(), "rotation"))) - 1;
|
||||
if (rotIndex < 0) rotIndex = directions.size() - 1;
|
||||
BlockFace dir = directions.get(rotIndex);
|
||||
Skull skull = (Skull) b.getState();
|
||||
skull.setRotation(dir);
|
||||
skull.update(true, false);
|
||||
Rotatable blockData = (Rotatable) b.getBlockData();
|
||||
blockData.setRotation(dir);
|
||||
b.setBlockData(blockData);
|
||||
BlockStorage.addBlockInfo(b, "rotation", dir.toString());
|
||||
break;
|
||||
}
|
||||
@ -337,9 +336,9 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
int rotIndex = directions.indexOf(BlockFace.valueOf(BlockStorage.getLocationInfo(b.getLocation(), "rotation"))) + 1;
|
||||
if (rotIndex == directions.size()) rotIndex = 0;
|
||||
BlockFace dir = directions.get(rotIndex);
|
||||
Skull skull = (Skull) b.getState();
|
||||
skull.setRotation(dir);
|
||||
skull.update(true, false);
|
||||
Rotatable blockData = (Rotatable) b.getBlockData();
|
||||
blockData.setRotation(dir);
|
||||
b.setBlockData(blockData);
|
||||
BlockStorage.addBlockInfo(b, "rotation", dir.toString());
|
||||
break;
|
||||
}
|
||||
@ -652,7 +651,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
entities:
|
||||
for (Entity n: AndroidStatusHologram.getNearbyEntities(b, 4D + getTier())) {
|
||||
if (n instanceof Monster) continue;
|
||||
if (n instanceof Ageable && !((Ageable) n).isAdult()) continue;
|
||||
if (n instanceof org.bukkit.entity.Ageable && !((org.bukkit.entity.Ageable) n).isAdult()) continue;
|
||||
switch (BlockFace.valueOf(BlockStorage.getLocationInfo(b.getLocation(), "rotation"))) {
|
||||
case NORTH: {
|
||||
if (n instanceof LivingEntity && !(n instanceof ArmorStand) && !(n instanceof Player) && n.getLocation().getZ() < b.getZ()) {
|
||||
@ -709,16 +708,14 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
private void move(Block b, BlockFace face, Block block) throws Exception {
|
||||
if (block.getY() < 0 || block.getY() > block.getWorld().getMaxHeight()) return;
|
||||
|
||||
if (block.getType() == Material.AIR) {
|
||||
block.setType(Material.PLAYER_HEAD);
|
||||
|
||||
Skull skull = (Skull) block.getState();
|
||||
skull.setRotation(face);
|
||||
skull.update(true, false);
|
||||
Rotatable blockData = (Rotatable) block.getBlockData();
|
||||
blockData.setRotation(face);
|
||||
block.setBlockData(blockData);
|
||||
CustomSkull.setSkull(block, CustomSkull.getTexture(getItem()));
|
||||
b.setType(Material.AIR);
|
||||
BlockStorage.moveBlockInfo(b.getLocation(), block.getLocation());
|
||||
@ -752,7 +749,6 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
private void movedig(Block b, BlockFace face, Block block) {
|
||||
Collection<ItemStack> drops = block.getDrops();
|
||||
if (!blockblacklist.contains(block.getType()) && !drops.isEmpty() && CSCoreLib.getLib().getProtectionManager().canBuild(UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), block)) {
|
||||
@ -763,14 +759,11 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
if (SlimefunItem.blockhandler.containsKey(item.getID())) {
|
||||
if (SlimefunItem.blockhandler.get(item.getID()).onBreak(null, block, item, UnregisterReason.ANDROID_DIG)) {
|
||||
pushItems(b, BlockStorage.retrieve(block));
|
||||
|
||||
block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType());
|
||||
|
||||
block.setType(Material.PLAYER_HEAD);
|
||||
|
||||
Skull skull = (Skull) block.getState();
|
||||
skull.setRotation(face);
|
||||
skull.update(true, false);
|
||||
Rotatable blockData = (Rotatable) block.getBlockData();
|
||||
blockData.setRotation(face);
|
||||
block.setBlockData(blockData);
|
||||
CustomSkull.setSkull(block, CustomSkull.getTexture(getItem()));
|
||||
b.setType(Material.AIR);
|
||||
BlockStorage.moveBlockInfo(b.getLocation(), block.getLocation());
|
||||
@ -784,10 +777,9 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
pushItems(b, items);
|
||||
block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType());
|
||||
block.setType(Material.PLAYER_HEAD);
|
||||
|
||||
Skull skull = (Skull) block.getState();
|
||||
skull.setRotation(face);
|
||||
skull.update(true, false);
|
||||
Rotatable blockData = (Rotatable) block.getBlockData();
|
||||
blockData.setRotation(face);
|
||||
block.setBlockData(blockData);
|
||||
CustomSkull.setSkull(block, CustomSkull.getTexture(getItem()));
|
||||
b.setType(Material.AIR);
|
||||
BlockStorage.moveBlockInfo(b.getLocation(), block.getLocation());
|
||||
@ -807,7 +799,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
}
|
||||
|
||||
private boolean isFullGrown(Block block){
|
||||
org.bukkit.block.data.Ageable ageable = ((org.bukkit.block.data.Ageable)block.getBlockData());
|
||||
Ageable ageable = ((Ageable) block.getBlockData());
|
||||
return ageable.getAge() >= ageable.getMaximumAge();
|
||||
}
|
||||
|
||||
@ -819,7 +811,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
ItemStack drop = new ItemStack(Material.WHEAT, CSCoreLib.randomizer().nextInt(3) + 1);
|
||||
if (fits(b, drop)) {
|
||||
pushItems(b, drop);
|
||||
org.bukkit.block.data.Ageable ageable = (org.bukkit.block.data.Ageable)block.getBlockData();
|
||||
Ageable ageable = (Ageable) block.getBlockData();
|
||||
ageable.setAge(0);
|
||||
block.setBlockData(ageable);
|
||||
block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType());
|
||||
@ -832,7 +824,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
ItemStack drop = new ItemStack(Material.POTATO, CSCoreLib.randomizer().nextInt(3) + 1);
|
||||
if (fits(b, drop)) {
|
||||
pushItems(b, drop);
|
||||
org.bukkit.block.data.Ageable ageable = (org.bukkit.block.data.Ageable)block.getBlockData();
|
||||
Ageable ageable = (Ageable) block.getBlockData();
|
||||
ageable.setAge(0);
|
||||
block.setBlockData(ageable);
|
||||
block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType());
|
||||
@ -845,7 +837,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
ItemStack drop = new ItemStack(Material.CARROT, CSCoreLib.randomizer().nextInt(3) + 1);
|
||||
if (fits(b, drop)) {
|
||||
pushItems(b, drop);
|
||||
org.bukkit.block.data.Ageable ageable = (org.bukkit.block.data.Ageable)block.getBlockData();
|
||||
Ageable ageable = (Ageable) block.getBlockData();
|
||||
ageable.setAge(0);
|
||||
block.setBlockData(ageable);
|
||||
block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType());
|
||||
@ -858,7 +850,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
ItemStack drop = new ItemStack(Material.BEETROOT, CSCoreLib.randomizer().nextInt(3) + 1);
|
||||
if (fits(b, drop)) {
|
||||
pushItems(b, drop);
|
||||
org.bukkit.block.data.Ageable ageable = (org.bukkit.block.data.Ageable)block.getBlockData();
|
||||
Ageable ageable = (Ageable) block.getBlockData();
|
||||
ageable.setAge(0);
|
||||
block.setBlockData(ageable);
|
||||
block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType());
|
||||
@ -871,7 +863,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
ItemStack drop = new ItemStack(Material.COCOA_BEANS, CSCoreLib.randomizer().nextInt(3) + 1);
|
||||
if (fits(b, drop)) {
|
||||
pushItems(b, drop);
|
||||
org.bukkit.block.data.Ageable ageable = (org.bukkit.block.data.Ageable)block.getBlockData();
|
||||
Ageable ageable = (Ageable) block.getBlockData();
|
||||
ageable.setAge(0);
|
||||
block.setBlockData(ageable);
|
||||
block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType());
|
||||
@ -884,7 +876,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem {
|
||||
ItemStack drop = new ItemStack(Material.NETHER_WART, CSCoreLib.randomizer().nextInt(3) + 1);
|
||||
if (fits(b, drop)) {
|
||||
pushItems(b, drop);
|
||||
org.bukkit.block.data.Ageable ageable = (org.bukkit.block.data.Ageable)block.getBlockData();
|
||||
Ageable ageable = (Ageable) block.getBlockData();
|
||||
ageable.setAge(0);
|
||||
block.setBlockData(ageable);
|
||||
block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType());
|
||||
|
@ -327,7 +327,7 @@ public class SlimefunItems {
|
||||
/* Gems */
|
||||
public static ItemStack SYNTHETIC_DIAMOND = new CustomItem(Material.DIAMOND, "&bSynthetic Diamond", 0);
|
||||
public static ItemStack SYNTHETIC_EMERALD = new CustomItem(Material.EMERALD, "&bSynthetic Emerald", 0);
|
||||
public static ItemStack SYNTHETIC_SAPPHIRE;
|
||||
public static ItemStack SYNTHETIC_SAPPHIRE = null;
|
||||
public static ItemStack CARBONADO = null;
|
||||
public static ItemStack RAW_CARBONADO = null;
|
||||
public static ItemStack URANIUM = null;
|
||||
|
@ -6,7 +6,6 @@ import me.mrCookieSlime.Slimefun.Lists.Categories;
|
||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.handlers.BlockTicker;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.Furnace;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
@ -6,6 +6,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.handlers.BlockTicker;
|
||||
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.data.Waterlogged;
|
||||
|
||||
public class RainbowTicker extends BlockTicker {
|
||||
|
||||
@ -25,13 +26,19 @@ public class RainbowTicker extends BlockTicker {
|
||||
|
||||
@Override
|
||||
public void tick(Block b, SlimefunItem item, Config data) {
|
||||
if (MaterialHelper.isWool(b.getType())){
|
||||
if (MaterialHelper.isWool(b.getType())) {
|
||||
b.setType(MaterialHelper.WoolColours[meta], false);
|
||||
}else if (MaterialHelper.isStainedGlass(b.getType())) {
|
||||
} else if (MaterialHelper.isStainedGlass(b.getType())) {
|
||||
b.setType(MaterialHelper.StainedGlassColours[meta], false);
|
||||
}else if (MaterialHelper.isStainedGlassPane(b.getType())){
|
||||
} else if (MaterialHelper.isStainedGlassPane(b.getType())){
|
||||
boolean waterlogged = ((Waterlogged) b.getBlockData()).isWaterlogged();
|
||||
b.setType(MaterialHelper.StainedGlassPaneColours[meta], true);
|
||||
}else if (MaterialHelper.isTerracotta(b.getType())){
|
||||
if (waterlogged) {
|
||||
Waterlogged block = (Waterlogged) b.getBlockData();
|
||||
block.setWaterlogged(true);
|
||||
b.setBlockData(block);
|
||||
}
|
||||
} else if (MaterialHelper.isTerracotta(b.getType())){
|
||||
b.setType(MaterialHelper.TerracottaColours[meta], false);
|
||||
}
|
||||
}
|
||||
|
@ -1,12 +1,10 @@
|
||||
package me.mrCookieSlime.Slimefun.Setup;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
|
@ -8,7 +8,6 @@ import java.util.ArrayDeque;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Color;
|
||||
|
||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Particles.MC_1_13.ParticleEffect;
|
||||
import me.mrCookieSlime.Slimefun.SlimefunStartup;
|
||||
|
@ -1,4 +1,3 @@
|
||||
|
||||
package me.mrCookieSlime.Slimefun.listeners;
|
||||
|
||||
import java.util.List;
|
||||
@ -8,10 +7,10 @@ import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.block.BrewingStand;
|
||||
import org.bukkit.block.Hopper;
|
||||
import org.bukkit.block.Skull;
|
||||
import org.bukkit.block.data.Rotatable;
|
||||
import org.bukkit.entity.FallingBlock;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.Wither;
|
||||
@ -66,11 +65,6 @@ public class ItemListener implements Listener {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
/**
|
||||
* Listens to InventoryMoveItemEvent to handle IGNITION_CHAMBER.
|
||||
* @param e InventoryMoveItemEvent
|
||||
* @since 4.1.11
|
||||
*/
|
||||
@EventHandler
|
||||
public void onIgnitionChamberItemMove(InventoryMoveItemEvent e) {
|
||||
if (e.getInitiator().getHolder() instanceof Hopper) {
|
||||
@ -80,7 +74,6 @@ public class ItemListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@EventHandler
|
||||
public void debug(PlayerInteractEvent e) {
|
||||
if (e.getAction().equals(Action.PHYSICAL) || !e.getHand().equals(EquipmentSlot.HAND)) return;
|
||||
@ -110,11 +103,11 @@ public class ItemListener implements Listener {
|
||||
}
|
||||
else if (BlockStorage.hasBlockInfo(e.getClickedBlock())) {
|
||||
p.sendMessage(" ");
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&d" + e.getClickedBlock().getType() + ":" + e.getClickedBlock().getData() + " &e@ X: " + e.getClickedBlock().getX() + " Y: " + e.getClickedBlock().getY() + " Z: " + e.getClickedBlock().getZ()));
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&d" + e.getClickedBlock().getType() + " &e@ X: " + e.getClickedBlock().getX() + " Y: " + e.getClickedBlock().getY() + " Z: " + e.getClickedBlock().getZ()));
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&dID: " + "&e" + BlockStorage.checkID(e.getClickedBlock())));
|
||||
if (e.getClickedBlock().getState() instanceof Skull) {
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&dSkull: " + "&2\u2714"));
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', " &dRotation: &e" + ((Skull) e.getClickedBlock().getState()).getRotation().toString()));
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', " &dRotation: &e" + ((Rotatable) e.getClickedBlock().getBlockData()).getRotation().toString()));
|
||||
}
|
||||
if (BlockStorage.getStorage(e.getClickedBlock().getWorld()).hasInventory(e.getClickedBlock().getLocation())) {
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&dInventory: " + "&2\u2714"));
|
||||
@ -124,7 +117,7 @@ public class ItemListener implements Listener {
|
||||
}
|
||||
if (BlockStorage.check(e.getClickedBlock()).isTicking()) {
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&dTicking: " + "&2\u2714"));
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', " &dAsync: &e" + (BlockStorage.check(e.getClickedBlock()).getTicker().isSynchronized() ? "&4\u2718": "&2\u2714")));
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', " &dAsync: &e" + (BlockStorage.check(e.getClickedBlock()).getBlockTicker().isSynchronized() ? "&4\u2718": "&2\u2714")));
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', " &dTimings: &e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock()) + "ms"));
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', " &dTotal Timings: &e" + SlimefunStartup.ticker.getTimings(BlockStorage.checkID(e.getClickedBlock())) + "ms"));
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', " &dChunk Timings: &e" + SlimefunStartup.ticker.getTimings(e.getClickedBlock().getChunk()) + "ms"));
|
||||
@ -158,8 +151,7 @@ public class ItemListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@EventHandler(priority=EventPriority.NORMAL)
|
||||
@EventHandler(priority = EventPriority.NORMAL)
|
||||
public void onRightClick(ItemUseEvent e) {
|
||||
if (e.getParentEvent() != null && !e.getParentEvent().getHand().equals(EquipmentSlot.HAND)) {
|
||||
return;
|
||||
@ -168,13 +160,12 @@ public class ItemListener implements Listener {
|
||||
final Player p = e.getPlayer();
|
||||
ItemStack item = e.getItem();
|
||||
|
||||
// water place under head bug fix
|
||||
if (e != null && e.getPlayer() != null && e.getParentEvent().getAction() != null && e.getParentEvent().getAction() == Action.RIGHT_CLICK_BLOCK && e.getParentEvent().getBlockFace() != null && e.getPlayer().getInventory() != null && e.getPlayer().getInventory().getItemInMainHand() != null && e.getPlayer().getInventory().getItemInMainHand().getType() == Material.WATER_BUCKET) {
|
||||
Location clicked = e.getClickedBlock().getLocation();
|
||||
BlockFace f = e.getParentEvent().getBlockFace();
|
||||
Location water = new Location(clicked.getWorld(), clicked.getX() + f.getModX(), clicked.getY() + f.getModY(), clicked.getZ() + f.getModZ());
|
||||
if (e.getPlayer().getLocation().getWorld().getBlockAt(water) != null && e.getPlayer().getLocation().getWorld().getBlockAt(water).getType() == Material.PLAYER_HEAD) {
|
||||
// Fix for placing water on player heads
|
||||
if (e.getParentEvent().getAction() == Action.RIGHT_CLICK_BLOCK && item != null && item.getType() == Material.WATER_BUCKET) {
|
||||
Location water = e.getClickedBlock().getRelative(e.getParentEvent().getBlockFace()).getLocation();
|
||||
if ((p.getWorld().getBlockAt(water).getType() == Material.PLAYER_HEAD || p.getWorld().getBlockAt(water).getType() == Material.PLAYER_WALL_HEAD) && BlockStorage.hasBlockInfo(water)) {
|
||||
e.setCancelled(true);
|
||||
p.getWorld().getBlockAt(water).getState().update(true, false);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -192,7 +183,7 @@ public class ItemListener implements Listener {
|
||||
else p.chat("/sf cheat");
|
||||
}
|
||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunGuide.getDeprecatedItem(true), true)) {
|
||||
item = SlimefunGuide.getItem(true);
|
||||
item = SlimefunGuide.getItem(BookDesign.BOOK);
|
||||
p.getInventory().setItemInMainHand(item);
|
||||
PlayerInventory.update(p);
|
||||
|
||||
@ -200,7 +191,7 @@ public class ItemListener implements Listener {
|
||||
else SlimefunGuide.openGuide(p, true);
|
||||
}
|
||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunGuide.getDeprecatedItem(false), true)) {
|
||||
item = SlimefunGuide.getItem(false);
|
||||
item = SlimefunGuide.getItem(BookDesign.CHEST);
|
||||
p.getInventory().setItemInMainHand(item);
|
||||
PlayerInventory.update(p);
|
||||
|
||||
@ -210,13 +201,13 @@ public class ItemListener implements Listener {
|
||||
else if (SlimefunManager.isItemSimiliar(e.getPlayer().getInventory().getItemInMainHand(), SlimefunItems.DEBUG_FISH, true) || SlimefunManager.isItemSimiliar(e.getPlayer().getInventory().getItemInOffHand(), SlimefunItems.DEBUG_FISH, true)) {
|
||||
}
|
||||
else if (Slimefun.hasUnlocked(p, item, true)) {
|
||||
for (ItemHandler handler: SlimefunItem.getHandlers("ItemInteractionHandler")) {
|
||||
for (ItemHandler handler : SlimefunItem.getHandlers("ItemInteractionHandler")) {
|
||||
if (((ItemInteractionHandler) handler).onRightClick(e, p, item)) return;
|
||||
}
|
||||
if (SlimefunManager.isItemSimiliar(item, SlimefunItems.DURALUMIN_MULTI_TOOL, false) || SlimefunManager.isItemSimiliar(item, SlimefunItems.SOLDER_MULTI_TOOL, false) || SlimefunManager.isItemSimiliar(item, SlimefunItems.BILLON_MULTI_TOOL, false) || SlimefunManager.isItemSimiliar(item, SlimefunItems.STEEL_MULTI_TOOL, false) || SlimefunManager.isItemSimiliar(item, SlimefunItems.DAMASCUS_STEEL_MULTI_TOOL, false) || SlimefunManager.isItemSimiliar(item, SlimefunItems.REINFORCED_ALLOY_MULTI_TOOL, false) || SlimefunManager.isItemSimiliar(item, SlimefunItems.CARBONADO_MULTI_TOOL, false)) {
|
||||
e.setCancelled(true);
|
||||
ItemStack tool = null;
|
||||
for (ItemStack mTool: new ItemStack[] {SlimefunItems.DURALUMIN_MULTI_TOOL, SlimefunItems.SOLDER_MULTI_TOOL, SlimefunItems.BILLON_MULTI_TOOL, SlimefunItems.STEEL_MULTI_TOOL, SlimefunItems.DAMASCUS_STEEL_MULTI_TOOL, SlimefunItems.REINFORCED_ALLOY_MULTI_TOOL, SlimefunItems.CARBONADO_MULTI_TOOL}) {
|
||||
for (ItemStack mTool : new ItemStack[] {SlimefunItems.DURALUMIN_MULTI_TOOL, SlimefunItems.SOLDER_MULTI_TOOL, SlimefunItems.BILLON_MULTI_TOOL, SlimefunItems.STEEL_MULTI_TOOL, SlimefunItems.DAMASCUS_STEEL_MULTI_TOOL, SlimefunItems.REINFORCED_ALLOY_MULTI_TOOL, SlimefunItems.CARBONADO_MULTI_TOOL}) {
|
||||
if (mTool.getItemMeta().getLore().get(0).equalsIgnoreCase(item.getItemMeta().getLore().get(0))) {
|
||||
tool = mTool;
|
||||
break;
|
||||
@ -231,14 +222,14 @@ public class ItemListener implements Listener {
|
||||
float charge = ItemEnergy.getStoredEnergy(item);
|
||||
float cost = 0.3F;
|
||||
if (charge >= cost) {
|
||||
p.setItemInHand(ItemEnergy.chargeItem(item, -cost));
|
||||
p.getEquipment().setItemInMainHand(ItemEnergy.chargeItem(item, -cost));
|
||||
Bukkit.getPluginManager().callEvent(new ItemUseEvent(e.getParentEvent(), SlimefunItem.getByID((String) Slimefun.getItemValue(SlimefunItem.getByItem(tool).getID(), "mode." + modes.get(index) + ".item")).getItem(), e.getClickedBlock()));
|
||||
}
|
||||
}
|
||||
else {
|
||||
index++;
|
||||
if (index == modes.size()) index = 0;
|
||||
Messages.local.sendTranslation(p, "messages.mode-change", true, new Variable("%device%", "Multi Tool"), new Variable("%mode%", (String) Slimefun.getItemValue(SlimefunItem.getByItem(tool).getName(), "mode." + modes.get(index) + ".name")));
|
||||
Messages.local.sendTranslation(p, "messages.mode-change", true, new Variable("%device%", "Multi Tool"), new Variable("%mode%", (String) Slimefun.getItemValue(SlimefunItem.getByItem(tool).getID(), "mode." + modes.get(index) + ".name")));
|
||||
Variables.mode.put(p.getUniqueId(), index);
|
||||
}
|
||||
}
|
||||
@ -308,8 +299,7 @@ public class ItemListener implements Listener {
|
||||
else if (item.getType() == Material.POTION) {
|
||||
SlimefunItem sfItem = SlimefunItem.getByItem(item);
|
||||
if (sfItem != null && sfItem instanceof Juice) {
|
||||
// Fix for 1.11 and 1.12 where Saturation potions are no longer working
|
||||
|
||||
// Fix for Saturation on potions is no longer working
|
||||
for (PotionEffect effect : ((PotionMeta) item.getItemMeta()).getCustomEffects()) {
|
||||
if (effect.getType().equals(PotionEffectType.SATURATION)) {
|
||||
p.addPotionEffect(new PotionEffect(PotionEffectType.SATURATION, effect.getDuration(), effect.getAmplifier()));
|
||||
@ -343,15 +333,9 @@ public class ItemListener implements Listener {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
if (m == 0) {
|
||||
p.getInventory().setItemInMainHand(null);
|
||||
}
|
||||
else if (m == 1) {
|
||||
p.getInventory().setItemInOffHand(null);
|
||||
}
|
||||
else if (m == 2) {
|
||||
p.getInventory().removeItem(new ItemStack(Material.GLASS_BOTTLE, 1));
|
||||
}
|
||||
if (m == 0) p.getEquipment().setItemInMainHand(null);
|
||||
else if (m == 1) p.getEquipment().setItemInOffHand(null);
|
||||
else if (m == 2) p.getInventory().removeItem(new ItemStack(Material.GLASS_BOTTLE, 1));
|
||||
}
|
||||
|
||||
}, 1L);
|
||||
@ -364,7 +348,7 @@ public class ItemListener implements Listener {
|
||||
|
||||
@EventHandler
|
||||
public void onCraft(CraftItemEvent e) {
|
||||
for (ItemStack item: e.getInventory().getContents()) {
|
||||
for (ItemStack item : e.getInventory().getContents()) {
|
||||
if (SlimefunItem.getByItem(item) != null && !(SlimefunItem.getByItem(item).isReplacing())) {
|
||||
e.setCancelled(true);
|
||||
Messages.local.sendTranslation((Player) e.getWhoClicked(), "workbench.not-enhanced", true);
|
||||
@ -373,7 +357,7 @@ public class ItemListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority=EventPriority.LOWEST)
|
||||
@EventHandler(priority = EventPriority.LOWEST)
|
||||
public void onEntityChangeBlock(EntityChangeBlockEvent e) {
|
||||
if (e.getEntity() instanceof FallingBlock) {
|
||||
if (Variables.blocks.contains(e.getEntity().getUniqueId())) {
|
||||
@ -385,7 +369,7 @@ public class ItemListener implements Listener {
|
||||
SlimefunItem item = BlockStorage.check(e.getBlock());
|
||||
if (item != null) {
|
||||
if (item.getID().equals("WITHER_PROOF_OBSIDIAN")) e.setCancelled(true);
|
||||
if (item.getID().equals("WITHER_PROOF_GLASS")) e.setCancelled(true);
|
||||
else if (item.getID().equals("WITHER_PROOF_GLASS")) e.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -394,7 +378,6 @@ public class ItemListener implements Listener {
|
||||
public void onAnvil(InventoryClickEvent e) {
|
||||
if (e.getRawSlot() == 2 && e.getWhoClicked() instanceof Player && e.getInventory().getType() == InventoryType.ANVIL) {
|
||||
if (SlimefunManager.isItemSimiliar(e.getInventory().getContents()[0], SlimefunItems.ELYTRA, true)) return;
|
||||
|
||||
if (SlimefunItem.getByItem(e.getInventory().getContents()[0]) != null && !SlimefunItem.isDisabled(e.getInventory().getContents()[0])) {
|
||||
e.setCancelled(true);
|
||||
Messages.local.sendTranslation((Player) e.getWhoClicked(), "anvil.not-working", true);
|
||||
@ -406,7 +389,8 @@ public class ItemListener implements Listener {
|
||||
public void onPreBrew(InventoryClickEvent e) {
|
||||
Inventory inventory = e.getInventory();
|
||||
if (inventory instanceof BrewerInventory && inventory.getHolder() instanceof BrewingStand) {
|
||||
if(e.getRawSlot() < inventory.getSize()) e.setCancelled(SlimefunItem.getByItem(e.getCursor()) != null);
|
||||
if (e.getRawSlot() < inventory.getSize()) e.setCancelled(SlimefunItem.getByItem(e.getCursor()) != null);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user