mirror of
https://github.com/TotalFreedomMC/TF-ProjectKorra.git
synced 2025-02-12 03:59:06 +00:00
Changes
This commit is contained in:
parent
2624f24d5e
commit
cf985e2501
10 changed files with 92 additions and 93 deletions
|
@ -133,6 +133,7 @@ import fr.neatmonster.nocheatplus.hooks.NCPExemptionManager;
|
|||
|
||||
@SuppressWarnings("deprecation")
|
||||
public class GeneralMethods {
|
||||
|
||||
public static List<Ability> invincible = new ArrayList<>();
|
||||
|
||||
static ProjectKorra plugin;
|
||||
|
@ -147,6 +148,7 @@ public class GeneralMethods {
|
|||
public static ConcurrentHashMap<String, ConcurrentHashMap<Block, BlockCacheElement>> blockProtectionCache = new ConcurrentHashMap<String, ConcurrentHashMap<Block, BlockCacheElement>>();
|
||||
|
||||
public static Integer[] nonOpaque = { 0, 6, 8, 9, 10, 11, 27, 28, 30, 31, 32, 37, 38, 39, 40, 50, 51, 55, 59, 66, 68, 69, 70, 72, 75, 76, 77, 78, 83, 90, 93, 94, 104, 105, 106, 111, 115, 119, 127, 131, 132, 175 };
|
||||
public static Material[] interactable = { Material.ACACIA_DOOR, Material.ACACIA_FENCE_GATE, Material.ANVIL, Material.ARMOR_STAND, Material.BEACON, Material.BED, Material.BED_BLOCK, Material.BIRCH_DOOR, Material.BIRCH_FENCE_GATE, Material.BOAT, Material.BREWING_STAND, Material.BURNING_FURNACE, Material.CAKE_BLOCK, Material.CHEST, Material.COMMAND, Material.DARK_OAK_DOOR, Material.DARK_OAK_FENCE_GATE, Material.DISPENSER, Material.DRAGON_EGG, Material.DROPPER, Material.ENCHANTMENT_TABLE, Material.ENDER_CHEST, Material.ENDER_PORTAL_FRAME, Material.FENCE_GATE, Material.FURNACE, Material.HOPPER, Material.HOPPER_MINECART, Material.COMMAND_MINECART, Material.ITEM_FRAME, Material.JUKEBOX, Material.JUNGLE_DOOR, Material.JUNGLE_FENCE_GATE, Material.LEVER, Material.MINECART, Material.NOTE_BLOCK, Material.PAINTING, Material.SPRUCE_DOOR, Material.SPRUCE_FENCE_GATE, Material.STONE_BUTTON, Material.TRAPPED_CHEST, Material.TRAP_DOOR, Material.WOOD_BUTTON, Material.WOOD_DOOR, Material.WORKBENCH };
|
||||
|
||||
// Stands for toggled = false while logging out
|
||||
public static List<UUID> toggedOut = new ArrayList<UUID>();
|
||||
|
@ -1433,6 +1435,10 @@ public class GeneralMethods {
|
|||
return plugin.getConfig().getBoolean("Properties.ImportEnabled");
|
||||
}
|
||||
|
||||
public static boolean isInteractable(Block block) {
|
||||
return Arrays.asList(interactable).contains(block.getType());
|
||||
}
|
||||
|
||||
public static boolean isObstructed(Location location1, Location location2) {
|
||||
Vector loc1 = location1.toVector();
|
||||
Vector loc2 = location2.toVector();
|
||||
|
|
|
@ -1,5 +1,65 @@
|
|||
package com.projectkorra.projectkorra;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.Action;
|
||||
import org.bukkit.event.block.BlockBreakEvent;
|
||||
import org.bukkit.event.block.BlockFadeEvent;
|
||||
import org.bukkit.event.block.BlockFormEvent;
|
||||
import org.bukkit.event.block.BlockFromToEvent;
|
||||
import org.bukkit.event.block.BlockIgniteEvent;
|
||||
import org.bukkit.event.block.BlockPhysicsEvent;
|
||||
import org.bukkit.event.block.BlockPlaceEvent;
|
||||
import org.bukkit.event.entity.EntityChangeBlockEvent;
|
||||
import org.bukkit.event.entity.EntityCombustEvent;
|
||||
import org.bukkit.event.entity.EntityDamageByBlockEvent;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
||||
import org.bukkit.event.entity.EntityDeathEvent;
|
||||
import org.bukkit.event.entity.EntityExplodeEvent;
|
||||
import org.bukkit.event.entity.EntityInteractEvent;
|
||||
import org.bukkit.event.entity.EntityShootBowEvent;
|
||||
import org.bukkit.event.entity.EntityTargetEvent;
|
||||
import org.bukkit.event.entity.EntityTargetLivingEntityEvent;
|
||||
import org.bukkit.event.entity.EntityTeleportEvent;
|
||||
import org.bukkit.event.entity.PlayerDeathEvent;
|
||||
import org.bukkit.event.entity.ProjectileHitEvent;
|
||||
import org.bukkit.event.entity.ProjectileLaunchEvent;
|
||||
import org.bukkit.event.entity.SlimeSplitEvent;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.event.inventory.InventoryType.SlotType;
|
||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||
import org.bukkit.event.player.PlayerAnimationEvent;
|
||||
import org.bukkit.event.player.PlayerGameModeChangeEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.event.player.PlayerKickEvent;
|
||||
import org.bukkit.event.player.PlayerMoveEvent;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
import org.bukkit.event.player.PlayerToggleFlightEvent;
|
||||
import org.bukkit.event.player.PlayerToggleSneakEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
import com.projectkorra.projectkorra.ability.AvatarState;
|
||||
import com.projectkorra.projectkorra.ability.api.CoreAbility;
|
||||
import com.projectkorra.projectkorra.ability.combo.ComboManager;
|
||||
|
@ -91,65 +151,6 @@ import com.projectkorra.projectkorra.waterbending.WaterWall;
|
|||
import com.projectkorra.projectkorra.waterbending.WaterWave;
|
||||
import com.projectkorra.projectkorra.waterbending.Wave;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.Action;
|
||||
import org.bukkit.event.block.BlockBreakEvent;
|
||||
import org.bukkit.event.block.BlockFadeEvent;
|
||||
import org.bukkit.event.block.BlockFormEvent;
|
||||
import org.bukkit.event.block.BlockFromToEvent;
|
||||
import org.bukkit.event.block.BlockIgniteEvent;
|
||||
import org.bukkit.event.block.BlockPhysicsEvent;
|
||||
import org.bukkit.event.block.BlockPlaceEvent;
|
||||
import org.bukkit.event.entity.EntityChangeBlockEvent;
|
||||
import org.bukkit.event.entity.EntityCombustEvent;
|
||||
import org.bukkit.event.entity.EntityDamageByBlockEvent;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
||||
import org.bukkit.event.entity.EntityDeathEvent;
|
||||
import org.bukkit.event.entity.EntityExplodeEvent;
|
||||
import org.bukkit.event.entity.EntityInteractEvent;
|
||||
import org.bukkit.event.entity.EntityShootBowEvent;
|
||||
import org.bukkit.event.entity.EntityTargetEvent;
|
||||
import org.bukkit.event.entity.EntityTargetLivingEntityEvent;
|
||||
import org.bukkit.event.entity.EntityTeleportEvent;
|
||||
import org.bukkit.event.entity.PlayerDeathEvent;
|
||||
import org.bukkit.event.entity.ProjectileHitEvent;
|
||||
import org.bukkit.event.entity.ProjectileLaunchEvent;
|
||||
import org.bukkit.event.entity.SlimeSplitEvent;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.event.inventory.InventoryType.SlotType;
|
||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||
import org.bukkit.event.player.PlayerAnimationEvent;
|
||||
import org.bukkit.event.player.PlayerGameModeChangeEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.event.player.PlayerKickEvent;
|
||||
import org.bukkit.event.player.PlayerMoveEvent;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
import org.bukkit.event.player.PlayerToggleFlightEvent;
|
||||
import org.bukkit.event.player.PlayerToggleSneakEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
public class PKListener implements Listener {
|
||||
|
||||
ProjectKorra plugin;
|
||||
|
@ -1302,6 +1303,11 @@ public class PKListener implements Listener {
|
|||
return;
|
||||
}
|
||||
|
||||
if (GeneralMethods.isInteractable(player.getTargetBlock((Set<Material>)null, 5))) {
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
|
||||
BlockSource.update(player, ClickType.LEFT_CLICK);
|
||||
|
||||
AirScooter.check(player);
|
||||
|
|
|
@ -76,6 +76,7 @@ public class AirBlast extends CoreAbility {
|
|||
if (location.getBlock().isLiquid()) {
|
||||
return;
|
||||
}
|
||||
|
||||
//reloadVariables();
|
||||
source = burst;
|
||||
|
||||
|
@ -146,7 +147,7 @@ public class AirBlast extends CoreAbility {
|
|||
return;
|
||||
}
|
||||
|
||||
AirMethods.playAirbendingParticles(origin, 6);
|
||||
AirMethods.playAirbendingParticles(origin, 4);
|
||||
// origin.getWorld().playEffect(origin, Effect.SMOKE, 4,
|
||||
// (int) originselectrange);
|
||||
}
|
||||
|
@ -175,7 +176,7 @@ public class AirBlast extends CoreAbility {
|
|||
|
||||
private void advanceLocation() {
|
||||
if (showParticles)
|
||||
AirMethods.playAirbendingParticles(location, 6);
|
||||
AirMethods.playAirbendingParticles(location, 6, 0.275F, 0.275F, 0.275F);
|
||||
if (GeneralMethods.rand.nextInt(4) == 0) {
|
||||
AirMethods.playAirbendingSound(location);
|
||||
}
|
||||
|
|
|
@ -116,6 +116,8 @@ public class AirMethods {
|
|||
return ParticleEffect.SMOKE;
|
||||
else if (particle.equalsIgnoreCase("smoke"))
|
||||
return ParticleEffect.CLOUD;
|
||||
else if (particle.equalsIgnoreCase("smallsmoke"))
|
||||
return ParticleEffect.SNOW_SHOVEL;
|
||||
else
|
||||
return ParticleEffect.CLOUD;
|
||||
}
|
||||
|
@ -141,23 +143,7 @@ public class AirMethods {
|
|||
* @param zOffset The zOffset to use
|
||||
*/
|
||||
public static void playAirbendingParticles(Location loc, int amount, float xOffset, float yOffset, float zOffset) {
|
||||
switch (getAirbendingParticles()) {
|
||||
case SPELL:
|
||||
for (int i = 0; i < amount; i++) {
|
||||
ParticleEffect.SPELL.display(loc, xOffset, yOffset, zOffset, 0, 1);
|
||||
}
|
||||
break;
|
||||
case SMOKE:
|
||||
for (int i = 0; i < amount; i++) {
|
||||
ParticleEffect.SMOKE.display(loc, xOffset, yOffset, zOffset, 0, 1);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
for (int i = 0; i < amount; i++) {
|
||||
ParticleEffect.CLOUD.display(loc, xOffset, yOffset, zOffset, 0, 1);
|
||||
}
|
||||
break;
|
||||
}
|
||||
getAirbendingParticles().display(loc, xOffset, yOffset, zOffset, 0, amount);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -147,6 +147,8 @@ public class AirSpout extends CoreAbility {
|
|||
}
|
||||
|
||||
private void rotateAirColumn(Block block) {
|
||||
if (player.getWorld() != block.getWorld())
|
||||
return;
|
||||
|
||||
if (System.currentTimeMillis() >= time + interval) {
|
||||
time = System.currentTimeMillis();
|
||||
|
@ -172,7 +174,7 @@ public class AirSpout extends CoreAbility {
|
|||
|
||||
Location effectloc2 = new Location(location.getWorld(), location.getX(), block.getY() + i, location.getZ());
|
||||
|
||||
AirMethods.playAirbendingParticles(effectloc2, 6);
|
||||
AirMethods.playAirbendingParticles(effectloc2, 3, 0.4F, 0.4F, 0.4F);
|
||||
// location.getWorld().playEffect(effectloc2, Effect.SMOKE,
|
||||
// (int) directions[index], (int) height + 5);
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@ import com.projectkorra.projectkorra.ability.StockAbility;
|
|||
import com.projectkorra.projectkorra.ability.api.CoreAbility;
|
||||
import com.projectkorra.projectkorra.command.Commands;
|
||||
import com.projectkorra.projectkorra.earthbending.EarthMethods;
|
||||
import com.projectkorra.projectkorra.object.HorizontalVelocityTracker;
|
||||
import com.projectkorra.projectkorra.util.Flight;
|
||||
import com.projectkorra.projectkorra.waterbending.WaterSpout;
|
||||
|
||||
|
@ -59,7 +60,7 @@ public class AirSuction extends CoreAbility {
|
|||
if (player.getEyeLocation().getBlock().isLiquid()) {
|
||||
return;
|
||||
}
|
||||
if (AirSpout.getPlayers().contains(player.getUniqueId()) || WaterSpout.getPlayers().contains(player)) //TODO: UPDATE THIS LINE
|
||||
if (AirSpout.getPlayers().contains(player) || WaterSpout.getPlayers().contains(player))
|
||||
return;
|
||||
/* End Initial Check */
|
||||
//reloadVariables();
|
||||
|
@ -146,7 +147,7 @@ public class AirSuction extends CoreAbility {
|
|||
}
|
||||
|
||||
private void advanceLocation() {
|
||||
AirMethods.playAirbendingParticles(location, 6);
|
||||
AirMethods.playAirbendingParticles(location, 6, 0.275F, 0.275F, 0.275F);
|
||||
if (GeneralMethods.rand.nextInt(4) == 0) {
|
||||
AirMethods.playAirbendingSound(location);
|
||||
}
|
||||
|
@ -257,6 +258,7 @@ public class AirSuction extends CoreAbility {
|
|||
continue;
|
||||
}
|
||||
GeneralMethods.setVelocity(entity, velocity);
|
||||
new HorizontalVelocityTracker(entity, player, 200l);
|
||||
entity.setFallDistance(0);
|
||||
if (entity.getEntityId() != player.getEntityId() && entity instanceof Player) {
|
||||
new Flight((Player) entity, player);
|
||||
|
|
|
@ -162,7 +162,7 @@ public class AirSwipe extends CoreAbility {
|
|||
}
|
||||
}
|
||||
} else {
|
||||
AirMethods.playAirbendingParticles(location, 3);
|
||||
AirMethods.playAirbendingParticles(location, 3, 0.2F, 0.2F, 0);
|
||||
if (GeneralMethods.rand.nextInt(4) == 0) {
|
||||
AirMethods.playAirbendingSound(location);
|
||||
}
|
||||
|
|
|
@ -155,8 +155,8 @@ public class FireBlast extends CoreAbility {
|
|||
private void advanceLocation() {
|
||||
if (showParticles) {
|
||||
//ParticleEffect.RED_DUST.display((float) 16, (float) 111, (float) 227, 0.01F, 0, location, 256D);
|
||||
ParticleEffect.FLAME.display(location, 0.4F, 0.4F, 0.4F, 0, 8);
|
||||
ParticleEffect.SMOKE.display(location, 0.4F, 0.4F, 0.4F, 0, 3);
|
||||
ParticleEffect.FLAME.display(location, 0.275F, 0.275F, 0.275F, 0, 6);
|
||||
ParticleEffect.SMOKE.display(location, 0.3F, 0.3F, 0.3F, 0, 3);
|
||||
}
|
||||
location = location.add(direction.clone().multiply(speedfactor));
|
||||
if (rand.nextInt(4) == 0) {
|
||||
|
|
|
@ -5,11 +5,11 @@ import com.projectkorra.projectkorra.GeneralMethods;
|
|||
import com.projectkorra.projectkorra.ProjectKorra;
|
||||
import com.projectkorra.projectkorra.ability.AbilityModuleManager;
|
||||
import com.projectkorra.projectkorra.util.Information;
|
||||
import com.projectkorra.projectkorra.util.ParticleEffect;
|
||||
import com.projectkorra.rpg.RPGMethods;
|
||||
import com.projectkorra.rpg.WorldEvents;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Effect;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Sound;
|
||||
|
@ -152,8 +152,8 @@ public class FireMethods {
|
|||
GeneralMethods.displayColoredParticle(loc, "#01E1FF");
|
||||
}
|
||||
|
||||
public static void playFirebendingParticles(Location loc) {
|
||||
loc.getWorld().playEffect(loc, Effect.MOBSPAWNER_FLAMES, 0, 15);
|
||||
public static void playFirebendingParticles(Location loc, int amount, float xOffset, float yOffset, float zOffset) {
|
||||
ParticleEffect.FLAME.display(loc, xOffset, yOffset, zOffset, 0, amount);
|
||||
}
|
||||
|
||||
public static void playFirebendingSound(Location loc) {
|
||||
|
|
|
@ -57,17 +57,13 @@ public class HorizontalVelocityTracker {
|
|||
|
||||
List<Block> blocks = GeneralMethods.getBlocksAroundPoint(entity.getLocation(), 1.5);
|
||||
|
||||
if (entity.isOnGround()) {
|
||||
remove();
|
||||
return;
|
||||
}
|
||||
|
||||
for (Block b : blocks) {
|
||||
if (WaterMethods.isWater(b)) {
|
||||
remove();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (thisVelocity.length() < lastVelocity.length()) {
|
||||
if ((diff.getX() > 1 || diff.getX() < -1) || (diff.getZ() > 1 || diff.getZ() < -1)) {
|
||||
impactLocation = entity.getLocation();
|
||||
|
|
Loading…
Reference in a new issue