Update time!

This commit is contained in:
Sam 2017-07-06 00:35:05 +01:00
parent 8c4fa7bdb2
commit c5818b1bb5
11 changed files with 131 additions and 60 deletions

View File

@ -31,7 +31,7 @@ import mineplex.core.stats.StatsManager;
public class AchievementPage extends ShopPageBase<AchievementManager, AchievementShop> public class AchievementPage extends ShopPageBase<AchievementManager, AchievementShop>
{ {
private static int ACHIEVEMENT_MIDDLE_INDEX = 31; private static final int ACHIEVEMENT_MIDDLE_INDEX = 31;
private AchievementCategory _category; private AchievementCategory _category;
private StatsManager _statsManager; private StatsManager _statsManager;

View File

@ -423,10 +423,26 @@ public class PlayerDisguiseManager extends MiniPlugin implements IPacketHandler
DisguisePlayer disguise = _disguises.remove(caller.getUniqueId()); DisguisePlayer disguise = _disguises.remove(caller.getUniqueId());
undisguise(caller, disguise);
_mapping.remove(disguise.getName().toLowerCase());
UtilPlayer.message(caller, F.main("Disguise", "You are no longer disguised!"));
getPluginManager().callEvent(new PlayerUndisguisedEvent(caller));
removeDisguiseData(caller);
}
public void undisguise(Player caller, DisguisePlayer disguise)
{
GameProfile originalProfile = disguise.getOriginalProfile(); GameProfile originalProfile = disguise.getOriginalProfile();
GameProfile currentProfile = ((CraftPlayer) caller).getProfile(); GameProfile currentProfile = ((CraftPlayer) caller).getProfile();
boolean sameName = caller.getName().equals(currentProfile.getName());
if (!sameName)
{
require(ScoreboardManager.class).handlePlayerQuit(disguise.getName());
}
require(ScoreboardManager.class).handlePlayerQuit(disguise.getName());
try try
{ {
UtilGameProfile.changeName(currentProfile, originalProfile.getName()); UtilGameProfile.changeName(currentProfile, originalProfile.getName());
@ -447,7 +463,7 @@ public class PlayerDisguiseManager extends MiniPlugin implements IPacketHandler
return; return;
} }
getDisguiseManager().undisguise(caller); getDisguiseManager().undisguise(disguise);
GameProfile disguisedProfile = disguise.getProfile(); GameProfile disguisedProfile = disguise.getProfile();
@ -458,14 +474,10 @@ public class PlayerDisguiseManager extends MiniPlugin implements IPacketHandler
require(FriendManager.class).updatePlayerStatus(originalProfile.getId(), new PlayerStatus(originalProfile.getId(), originalProfile.getName(), _serverName)); require(FriendManager.class).updatePlayerStatus(originalProfile.getId(), new PlayerStatus(originalProfile.getId(), originalProfile.getName(), _serverName));
getPreferencesManager().handlePlayerJoin(caller, true); getPreferencesManager().handlePlayerJoin(caller, true);
require(ScoreboardManager.class).handlePlayerJoin(disguise.getOriginalProfile().getName()); if (!sameName)
{
require(ScoreboardManager.class).handlePlayerJoin(disguise.getOriginalProfile().getName());
_mapping.remove(disguise.getName().toLowerCase()); }
UtilPlayer.message(caller, F.main("Disguise", "You are no longer disguised!"));
getPluginManager().callEvent(new PlayerUndisguisedEvent(caller));
removeDisguiseData(caller);
} }
public void disguise(Player caller, GameProfile requestedProfile) public void disguise(Player caller, GameProfile requestedProfile)

View File

@ -126,7 +126,7 @@ public class ServerGameMenu extends ShopPageBase<ServerManager, QuickShop>
add(13, Material.FEATHER, (byte) 0, C.cYellowB + "Skywars " + C.cGray + "Solo/Team Survival", new String[] add(13, Material.FEATHER, (byte) 0, C.cYellowB + "Skywars " + C.cGray + "Solo/Team Survival", new String[]
{ {
C.Reset + "", C.Reset + "",
C.Reset + "16 contenders fight to rule the skies!", C.Reset + "12 contenders fight to rule the skies!",
C.Reset + "Spawn on a sky island and build your path!", C.Reset + "Spawn on a sky island and build your path!",
C.Reset + "Find weapons to take your enemies down!", C.Reset + "Find weapons to take your enemies down!",
C.Reset + "Up in the skies, death looming if you fall..", C.Reset + "Up in the skies, death looming if you fall..",

View File

@ -9,6 +9,7 @@ import mineplex.core.common.util.UtilAlg;
import mineplex.core.common.util.UtilServer; import mineplex.core.common.util.UtilServer;
import mineplex.core.disguise.disguises.DisguiseBase; import mineplex.core.disguise.disguises.DisguiseBase;
import mineplex.core.disguise.disguises.DisguisePlayer; import mineplex.core.disguise.disguises.DisguisePlayer;
import mineplex.core.disguise.playerdisguise.PlayerDisguiseManager;
import mineplex.core.leaderboard.Leaderboard; import mineplex.core.leaderboard.Leaderboard;
import mineplex.core.leaderboard.LeaderboardManager; import mineplex.core.leaderboard.LeaderboardManager;
import mineplex.core.leaderboard.LeaderboardRepository.LeaderboardSQLType; import mineplex.core.leaderboard.LeaderboardRepository.LeaderboardSQLType;
@ -283,6 +284,8 @@ public class Moba extends TeamGame
_listeners.clear(); _listeners.clear();
_betaWhitelist.deregisterSelf(); _betaWhitelist.deregisterSelf();
PlayerDisguiseManager playerDisguiseManager = Managers.require(PlayerDisguiseManager.class);
// Undisguise all players // Undisguise all players
for (Player player : Bukkit.getOnlinePlayers()) for (Player player : Bukkit.getOnlinePlayers())
{ {
@ -290,7 +293,7 @@ public class Moba extends TeamGame
if (disguise != null && disguise instanceof DisguisePlayer) if (disguise != null && disguise instanceof DisguisePlayer)
{ {
Manager.GetDisguise().undisguise(disguise); playerDisguiseManager.undisguise(player, (DisguisePlayer) disguise);
} }
} }
} }

View File

@ -13,6 +13,8 @@ import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
import org.bukkit.potion.PotionEffectType;
public class MobaDamageManager implements Listener public class MobaDamageManager implements Listener
{ {
@ -97,4 +99,30 @@ public class MobaDamageManager implements Listener
event.setKilledWord(word); event.setKilledWord(word);
} }
} }
@EventHandler
public void mageStrength(CustomDamageEvent event)
{
if (event.GetCause() != DamageCause.CUSTOM)
{
return;
}
Player damager = event.GetDamagerPlayer(true);
if (damager == null)
{
return;
}
damager.getActivePotionEffects().forEach(effect ->
{
if (effect.getType() == PotionEffectType.INCREASE_DAMAGE)
{
event.AddMod("Strength", effect.getAmplifier() * 2 + 1);
}
});
}
} }

View File

@ -29,7 +29,7 @@ public class SkillAquaCannon extends HeroSkill
"Fires a beam of water that deals damage", "Fires a beam of water that deals damage",
"to the first enemy it comes in contact with." "to the first enemy it comes in contact with."
}; };
private static final int DAMAGE = 6; private static final int DAMAGE = 4;
private static final ItemStack SKILL_ITEM = new ItemStack(Material.DIAMOND_HOE); private static final ItemStack SKILL_ITEM = new ItemStack(Material.DIAMOND_HOE);
public SkillAquaCannon(int slot) public SkillAquaCannon(int slot)
@ -66,7 +66,7 @@ public class SkillAquaCannon extends HeroSkill
continue; continue;
} }
Manager.GetDamage().NewDamageEvent(entity, player, null, DamageCause.CUSTOM, DAMAGE, true, false, false, player.getName(), MobaConstants.BASIC_ATTACK); Manager.GetDamage().NewDamageEvent(entity, player, null, DamageCause.CUSTOM, DAMAGE, false, false, false, player.getName(), MobaConstants.BASIC_ATTACK);
break; break;
} }
} }

View File

@ -4,7 +4,6 @@ import mineplex.core.common.util.C;
import mineplex.core.common.util.F; import mineplex.core.common.util.F;
import mineplex.core.common.util.UtilAlg; import mineplex.core.common.util.UtilAlg;
import mineplex.core.common.util.UtilEnt; import mineplex.core.common.util.UtilEnt;
import mineplex.core.common.util.UtilInv;
import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilPlayer;
import mineplex.core.updater.UpdateType; import mineplex.core.updater.UpdateType;
import mineplex.core.updater.event.UpdateEvent; import mineplex.core.updater.event.UpdateEvent;
@ -42,8 +41,6 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerInteractAtEntityEvent; import org.bukkit.event.player.PlayerInteractAtEntityEvent;
import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerItemConsumeEvent;
import org.bukkit.inventory.ItemStack;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
@ -95,6 +92,7 @@ public class MobaShop implements Listener
villager.setCustomNameVisible(true); villager.setCustomNameVisible(true);
UtilEnt.vegetate(villager); UtilEnt.vegetate(villager);
UtilEnt.silence(villager, true); UtilEnt.silence(villager, true);
UtilEnt.ghost(villager, true, false);
UtilEnt.CreatureForceLook(villager, 0, UtilAlg.GetYaw(UtilAlg.getTrajectory(villager.getLocation(), _host.GetSpectatorLocation()))); UtilEnt.CreatureForceLook(villager, 0, UtilAlg.GetYaw(UtilAlg.getTrajectory(villager.getLocation(), _host.GetSpectatorLocation())));
((CraftLivingEntity) villager).getHandle().k = false; ((CraftLivingEntity) villager).getHandle().k = false;
@ -226,6 +224,12 @@ public class MobaShop implements Listener
} }
_host.GetKit(player).GiveItems(player); _host.GetKit(player).GiveItems(player);
// If we aren't tracking purchases then after we give the item remove it.
if (!category.isTrackingPurchases())
{
owned.remove(item);
}
} }
public boolean ownsItem(Player player, MobaItem item) public boolean ownsItem(Player player, MobaItem item)

View File

@ -44,21 +44,21 @@ public class MobaWarriorShop extends MobaShopMenu
new MobaItem(new ItemBuilder(Material.IRON_HELMET) new MobaItem(new ItemBuilder(Material.IRON_HELMET)
.setTitle(C.cGreenB + "Archer's Bane") .setTitle(C.cGreenB + "Archer's Bane")
.addEnchantment(Enchantment.PROTECTION_PROJECTILE, 1) .addEnchantment(Enchantment.PROTECTION_PROJECTILE, 1)
.build(), 400) .build(), 100)
.addEffects( .addEffects(
new MobaHPRegenEffect(0.03) new MobaHPRegenEffect(0.03)
), ),
// new MobaItem(new ItemBuilder(Material.IRON_HELMET) new MobaItem(new ItemBuilder(Material.IRON_HELMET)
// .setTitle(C.cYellowB + "Superior Archer's Bane") .setTitle(C.cYellowB + "Superior Archer's Bane")
// .addEnchantment(Enchantment.PROTECTION_PROJECTILE, 2) .addEnchantment(Enchantment.PROTECTION_PROJECTILE, 2)
// .build(), 750) .build(), 300)
// .addEffects( .addEffects(
// new MobaHPRegenEffect(0.05) new MobaHPRegenEffect(0.05)
// ), ),
new MobaItem(new ItemBuilder(Material.IRON_HELMET) new MobaItem(new ItemBuilder(Material.IRON_HELMET)
.setTitle(C.cGreenB + "Brawler's Plate") .setTitle(C.cGreenB + "Brawler's Plate")
.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1) .addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1)
.build(), 400) .build(), 300)
.addEffects( .addEffects(
new MobaHPRegenEffect(0.03) new MobaHPRegenEffect(0.03)
), ),
@ -71,7 +71,7 @@ public class MobaWarriorShop extends MobaShopMenu
// ), // ),
new MobaItem(new ItemBuilder(Material.DIAMOND_HELMET) new MobaItem(new ItemBuilder(Material.DIAMOND_HELMET)
.setTitle(C.cDRedB + "Prince's Plate") .setTitle(C.cDRedB + "Prince's Plate")
.build(), 2000) .build(), 1200)
.addEffects( .addEffects(
new MobaHPRegenEffect(0.15) new MobaHPRegenEffect(0.15)
) )
@ -81,21 +81,21 @@ public class MobaWarriorShop extends MobaShopMenu
new MobaItem(new ItemBuilder(Material.IRON_CHESTPLATE) new MobaItem(new ItemBuilder(Material.IRON_CHESTPLATE)
.setTitle(C.cGreenB + "Archer's Bane") .setTitle(C.cGreenB + "Archer's Bane")
.addEnchantment(Enchantment.PROTECTION_PROJECTILE, 1) .addEnchantment(Enchantment.PROTECTION_PROJECTILE, 1)
.build(), 600) .build(), 150)
.addEffects( .addEffects(
new MobaTotalHealthEffect(2) new MobaTotalHealthEffect(2)
), ),
// new MobaItem(new ItemBuilder(Material.IRON_CHESTPLATE) new MobaItem(new ItemBuilder(Material.IRON_CHESTPLATE)
// .setTitle(C.cYellowB + "Superior Archer's Bane") .setTitle(C.cYellowB + "Superior Archer's Bane")
// .addEnchantment(Enchantment.PROTECTION_PROJECTILE, 2) .addEnchantment(Enchantment.PROTECTION_PROJECTILE, 2)
// .build(), 1000) .build(), 400)
// .addEffects( .addEffects(
// new MobaTotalHealthEffect(4) new MobaTotalHealthEffect(4)
// ), ),
new MobaItem(new ItemBuilder(Material.IRON_CHESTPLATE) new MobaItem(new ItemBuilder(Material.IRON_CHESTPLATE)
.setTitle(C.cGreenB + "Brawler's Plate") .setTitle(C.cGreenB + "Brawler's Plate")
.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1) .addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1)
.build(), 600) .build(), 400)
.addEffects( .addEffects(
new MobaTotalHealthEffect(2) new MobaTotalHealthEffect(2)
), ),
@ -108,7 +108,7 @@ public class MobaWarriorShop extends MobaShopMenu
// ), // ),
new MobaItem(new ItemBuilder(Material.DIAMOND_CHESTPLATE) new MobaItem(new ItemBuilder(Material.DIAMOND_CHESTPLATE)
.setTitle(C.cDRedB + "Prince's Plate") .setTitle(C.cDRedB + "Prince's Plate")
.build(), 2500) .build(), 1500)
.addEffects( .addEffects(
new MobaTotalHealthEffect(4) new MobaTotalHealthEffect(4)
) )
@ -118,21 +118,21 @@ public class MobaWarriorShop extends MobaShopMenu
new MobaItem(new ItemBuilder(Material.IRON_LEGGINGS) new MobaItem(new ItemBuilder(Material.IRON_LEGGINGS)
.setTitle(C.cGreenB + "Archer's Bane") .setTitle(C.cGreenB + "Archer's Bane")
.addEnchantment(Enchantment.PROTECTION_PROJECTILE, 1) .addEnchantment(Enchantment.PROTECTION_PROJECTILE, 1)
.build(), 600) .build(), 150)
.addEffects( .addEffects(
new MobaCDREffect(0.05) new MobaCDREffect(0.05)
), ),
// new MobaItem(new ItemBuilder(Material.IRON_LEGGINGS) new MobaItem(new ItemBuilder(Material.IRON_LEGGINGS)
// .setTitle(C.cYellowB + "Superior Archer's Bane") .setTitle(C.cYellowB + "Superior Archer's Bane")
// .addEnchantment(Enchantment.PROTECTION_PROJECTILE, 2) .addEnchantment(Enchantment.PROTECTION_PROJECTILE, 2)
// .build(), 1000) .build(), 400)
// .addEffects( .addEffects(
// new MobaCDREffect(0.07) new MobaCDREffect(0.07)
// ), ),
new MobaItem(new ItemBuilder(Material.IRON_LEGGINGS) new MobaItem(new ItemBuilder(Material.IRON_LEGGINGS)
.setTitle(C.cGreenB + "Brawler's Plate") .setTitle(C.cGreenB + "Brawler's Plate")
.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1) .addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1)
.build(), 600) .build(), 400)
.addEffects( .addEffects(
new MobaCDREffect(0.05) new MobaCDREffect(0.05)
), ),
@ -145,7 +145,7 @@ public class MobaWarriorShop extends MobaShopMenu
// ), // ),
new MobaItem(new ItemBuilder(Material.DIAMOND_LEGGINGS) new MobaItem(new ItemBuilder(Material.DIAMOND_LEGGINGS)
.setTitle(C.cDRedB + "Prince's Plate") .setTitle(C.cDRedB + "Prince's Plate")
.build(), 2500) .build(), 1500)
.addEffects( .addEffects(
new MobaCDREffect(0.1) new MobaCDREffect(0.1)
) )
@ -155,21 +155,21 @@ public class MobaWarriorShop extends MobaShopMenu
new MobaItem(new ItemBuilder(Material.IRON_BOOTS) new MobaItem(new ItemBuilder(Material.IRON_BOOTS)
.setTitle(C.cGreenB + "Archer's Bane") .setTitle(C.cGreenB + "Archer's Bane")
.addEnchantment(Enchantment.PROTECTION_PROJECTILE, 1) .addEnchantment(Enchantment.PROTECTION_PROJECTILE, 1)
.build(), 400) .build(), 100)
.addEffects( .addEffects(
new MobaSpeedEffect(0.04) new MobaSpeedEffect(0.04)
), ),
// new MobaItem(new ItemBuilder(Material.IRON_BOOTS) new MobaItem(new ItemBuilder(Material.IRON_BOOTS)
// .setTitle(C.cYellowB + "Superior Archer's Bane") .setTitle(C.cYellowB + "Superior Archer's Bane")
// .addEnchantment(Enchantment.PROTECTION_PROJECTILE, 2) .addEnchantment(Enchantment.PROTECTION_PROJECTILE, 2)
// .build(), 750) .build(), 300)
// .addEffects( .addEffects(
// new MobaSpeedEffect(0.06) new MobaSpeedEffect(0.06)
// ), ),
new MobaItem(new ItemBuilder(Material.IRON_BOOTS) new MobaItem(new ItemBuilder(Material.IRON_BOOTS)
.setTitle(C.cGreenB + "Brawler's Plate") .setTitle(C.cGreenB + "Brawler's Plate")
.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1) .addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1)
.build(), 400) .build(), 300)
.addEffects( .addEffects(
new MobaSpeedEffect(0.04) new MobaSpeedEffect(0.04)
), ),
@ -182,7 +182,7 @@ public class MobaWarriorShop extends MobaShopMenu
// ), // ),
new MobaItem(new ItemBuilder(Material.DIAMOND_BOOTS) new MobaItem(new ItemBuilder(Material.DIAMOND_BOOTS)
.setTitle(C.cDRedB + "Prince's Plate") .setTitle(C.cDRedB + "Prince's Plate")
.build(), 2000) .build(), 1200)
.addEffects( .addEffects(
new MobaSpeedEffect(0.1) new MobaSpeedEffect(0.1)
) )

View File

@ -135,6 +135,24 @@ public class Tower
_host.getArcadeManager().GetDamage().NewDamageEvent(_target, null, null, DamageCause.CUSTOM, _damage++, false, true, false, "Tower", "Tower"); _host.getArcadeManager().GetDamage().NewDamageEvent(_target, null, null, DamageCause.CUSTOM, _damage++, false, true, false, "Tower", "Tower");
} }
public void updateHealing()
{
if (_dead)
{
return;
}
for (Player player : _team.GetPlayers(true))
{
if (UtilPlayer.isSpectator(player) || UtilMath.offsetSquared(player, _crystal) > TARGET_RANGE_SQUARED)
{
continue;
}
MobaUtil.heal(player, null, 2);
}
}
private void setLaserTarget(LivingEntity target) private void setLaserTarget(LivingEntity target)
{ {
if (target == null) if (target == null)

View File

@ -144,6 +144,13 @@ public class TowerManager implements Listener
tower.updateDamage(); tower.updateDamage();
} }
} }
else if (event.getType() != UpdateType.SLOW)
{
for (Tower tower : _towers)
{
tower.updateHealing();
}
}
} }
@EventHandler @EventHandler

View File

@ -364,6 +364,7 @@ public class MobaTraining extends Moba
UtilEnt.vegetate(entity); UtilEnt.vegetate(entity);
UtilEnt.setFakeHead(entity, true); UtilEnt.setFakeHead(entity, true);
UtilEnt.silence(entity, true); UtilEnt.silence(entity, true);
UtilEnt.ghost(entity, true, false);
} }
CreatureAllowOverride = false; CreatureAllowOverride = false;
@ -452,8 +453,6 @@ public class MobaTraining extends Moba
// Reducing the wither's health to 10% gives a shield like effect. // Reducing the wither's health to 10% gives a shield like effect.
stand.setGravity(false); stand.setGravity(false);
UtilEnt.setBoundingBox(stand, 3, 5);
DisguiseWither disguise = new DisguiseWither(stand); DisguiseWither disguise = new DisguiseWither(stand);
disguise.setName(C.cAqua + "Blue's Wither"); disguise.setName(C.cAqua + "Blue's Wither");
disguise.setCustomNameVisible(true); disguise.setCustomNameVisible(true);