mirror of
https://github.com/TotalFreedomMC/TF-ProjectKorra.git
synced 2024-12-23 00:15:05 +00:00
Merge pull request #466 from OmniCypher-/master
Adds BendingPlayerCreationEvent and moves login
This commit is contained in:
commit
392ea3c152
5 changed files with 89 additions and 69 deletions
Binary file not shown.
|
@ -86,7 +86,7 @@ public class BendingPlayer {
|
||||||
}
|
}
|
||||||
|
|
||||||
PLAYERS.put(uuid, this);
|
PLAYERS.put(uuid, this);
|
||||||
PKListener.login(this);
|
GeneralMethods.loadBendingPlayer(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addCooldown(Ability ability, long cooldown) {
|
public void addCooldown(Ability ability, long cooldown) {
|
||||||
|
|
|
@ -47,6 +47,7 @@ import com.projectkorra.projectkorra.airbending.AirSwipe;
|
||||||
import com.projectkorra.projectkorra.configuration.ConfigManager;
|
import com.projectkorra.projectkorra.configuration.ConfigManager;
|
||||||
import com.projectkorra.projectkorra.earthbending.EarthBlast;
|
import com.projectkorra.projectkorra.earthbending.EarthBlast;
|
||||||
import com.projectkorra.projectkorra.earthbending.EarthPassive;
|
import com.projectkorra.projectkorra.earthbending.EarthPassive;
|
||||||
|
import com.projectkorra.projectkorra.event.BendingPlayerCreationEvent;
|
||||||
import com.projectkorra.projectkorra.event.BendingReloadEvent;
|
import com.projectkorra.projectkorra.event.BendingReloadEvent;
|
||||||
import com.projectkorra.projectkorra.event.BindChangeEvent;
|
import com.projectkorra.projectkorra.event.BindChangeEvent;
|
||||||
import com.projectkorra.projectkorra.firebending.Combustion;
|
import com.projectkorra.projectkorra.firebending.Combustion;
|
||||||
|
@ -1274,6 +1275,58 @@ public class GeneralMethods {
|
||||||
public static boolean isWeapon(Material mat) {
|
public static boolean isWeapon(Material mat) {
|
||||||
return mat != null && (mat == Material.WOOD_AXE || mat == Material.WOOD_PICKAXE || mat == Material.WOOD_SPADE || mat == Material.WOOD_SWORD || mat == Material.STONE_AXE || mat == Material.STONE_PICKAXE || mat == Material.STONE_SPADE || mat == Material.STONE_SWORD || mat == Material.IRON_AXE || mat == Material.IRON_PICKAXE || mat == Material.IRON_SWORD || mat == Material.IRON_SPADE || mat == Material.DIAMOND_AXE || mat == Material.DIAMOND_PICKAXE || mat == Material.DIAMOND_SWORD || mat == Material.DIAMOND_SPADE);
|
return mat != null && (mat == Material.WOOD_AXE || mat == Material.WOOD_PICKAXE || mat == Material.WOOD_SPADE || mat == Material.WOOD_SWORD || mat == Material.STONE_AXE || mat == Material.STONE_PICKAXE || mat == Material.STONE_SPADE || mat == Material.STONE_SWORD || mat == Material.IRON_AXE || mat == Material.IRON_PICKAXE || mat == Material.IRON_SWORD || mat == Material.IRON_SPADE || mat == Material.DIAMOND_AXE || mat == Material.DIAMOND_PICKAXE || mat == Material.DIAMOND_SWORD || mat == Material.DIAMOND_SPADE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void loadBendingPlayer(BendingPlayer pl) {
|
||||||
|
Player player = Bukkit.getPlayer(pl.getUUID());
|
||||||
|
BendingPlayer bPlayer = BendingPlayer.getBendingPlayer(player);
|
||||||
|
|
||||||
|
if (bPlayer == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (PKListener.getToggledOut().contains(player.getUniqueId())) {
|
||||||
|
bPlayer.toggleBending();
|
||||||
|
player.sendMessage(ChatColor.YELLOW + "Reminder, you toggled your bending before signing off. Enable it again with /bending toggle.");
|
||||||
|
}
|
||||||
|
|
||||||
|
Preset.loadPresets(player);
|
||||||
|
Element element = null;
|
||||||
|
String prefix = "";
|
||||||
|
|
||||||
|
boolean chatEnabled = ConfigManager.languageConfig.get().getBoolean("Chat.Enable");
|
||||||
|
if (bPlayer.getElements().size() > 1) {
|
||||||
|
prefix = Element.AVATAR.getPrefix();
|
||||||
|
} else if (bPlayer.getElements().size() == 1){
|
||||||
|
element = bPlayer.getElements().get(0);
|
||||||
|
prefix = element.getPrefix();
|
||||||
|
} else {
|
||||||
|
prefix = ChatColor.WHITE + "[Nonbender] ";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (chatEnabled) {
|
||||||
|
player.setDisplayName(player.getName());
|
||||||
|
player.setDisplayName(prefix + ChatColor.RESET + player.getDisplayName());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle the AirSpout/WaterSpout login glitches
|
||||||
|
if (player.getGameMode() != GameMode.CREATIVE) {
|
||||||
|
HashMap<Integer, String> bound = bPlayer.getAbilities();
|
||||||
|
for (String str : bound.values()) {
|
||||||
|
if (str.equalsIgnoreCase("AirSpout") || str.equalsIgnoreCase("WaterSpout") || str.equalsIgnoreCase("SandSpout")) {
|
||||||
|
final Player fplayer = player;
|
||||||
|
new BukkitRunnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
fplayer.setFlying(false);
|
||||||
|
fplayer.setAllowFlight(false);
|
||||||
|
}
|
||||||
|
}.runTaskLater(ProjectKorra.plugin, 2);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Bukkit.getServer().getPluginManager().callEvent(new BendingPlayerCreationEvent(bPlayer));
|
||||||
|
}
|
||||||
|
|
||||||
public static void reloadPlugin(CommandSender sender) {
|
public static void reloadPlugin(CommandSender sender) {
|
||||||
ProjectKorra.log.info("Reloading ProjectKorra and configuration");
|
ProjectKorra.log.info("Reloading ProjectKorra and configuration");
|
||||||
|
|
|
@ -97,7 +97,6 @@ import com.projectkorra.projectkorra.waterbending.WaterPassive;
|
||||||
import com.projectkorra.projectkorra.waterbending.WaterSpout;
|
import com.projectkorra.projectkorra.waterbending.WaterSpout;
|
||||||
import com.projectkorra.projectkorra.waterbending.WaterSpoutWave;
|
import com.projectkorra.projectkorra.waterbending.WaterSpoutWave;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
|
@ -172,73 +171,6 @@ public class PKListener implements Listener {
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void login(BendingPlayer pl) {
|
|
||||||
ProjectKorra plugin = ProjectKorra.plugin;
|
|
||||||
Player player = Bukkit.getPlayer(pl.getUUID());
|
|
||||||
BendingPlayer bPlayer = BendingPlayer.getBendingPlayer(player);
|
|
||||||
|
|
||||||
if (bPlayer == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (TOGGLED_OUT.contains(player.getUniqueId())) {
|
|
||||||
bPlayer.toggleBending();
|
|
||||||
player.sendMessage(ChatColor.YELLOW + "Reminder, you toggled your bending before signing off. Enable it again with /bending toggle.");
|
|
||||||
}
|
|
||||||
|
|
||||||
Preset.loadPresets(player);
|
|
||||||
String append = "";
|
|
||||||
ChatColor color = null;
|
|
||||||
boolean chatEnabled = ProjectKorra.plugin.getConfig().getBoolean("Properties.Chat.Enable");
|
|
||||||
if (bPlayer.getElements().size() > 1 && chatEnabled) {
|
|
||||||
append = plugin.getConfig().getString("Properties.Chat.Prefixes.Avatar");
|
|
||||||
color = ChatColor.valueOf(plugin.getConfig().getString("Properties.Chat.Colors.Avatar"));
|
|
||||||
} else if (bPlayer.hasElement(Element.AIR) && chatEnabled) {
|
|
||||||
append = plugin.getConfig().getString("Properties.Chat.Prefixes.Air");
|
|
||||||
color = Element.AIR.getColor();
|
|
||||||
} else if (bPlayer.hasElement(Element.WATER) && chatEnabled) {
|
|
||||||
append = plugin.getConfig().getString("Properties.Chat.Prefixes.Water");
|
|
||||||
color = Element.WATER.getColor();
|
|
||||||
} else if (bPlayer.hasElement(Element.EARTH) && chatEnabled) {
|
|
||||||
append = plugin.getConfig().getString("Properties.Chat.Prefixes.Earth");
|
|
||||||
color = Element.EARTH.getColor();
|
|
||||||
} else if (bPlayer.hasElement(Element.FIRE) && chatEnabled) {
|
|
||||||
append = plugin.getConfig().getString("Properties.Chat.Prefixes.Fire");
|
|
||||||
color = Element.FIRE.getColor();
|
|
||||||
} else if (bPlayer.hasElement(Element.CHI) && chatEnabled) {
|
|
||||||
append = plugin.getConfig().getString("Properties.Chat.Prefixes.Chi");
|
|
||||||
color = Element.CHI.getColor();
|
|
||||||
} else {
|
|
||||||
append = "[Nonbender]";
|
|
||||||
color = ChatColor.WHITE;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (chatEnabled) {
|
|
||||||
player.setDisplayName(player.getName());
|
|
||||||
if(color != null) {
|
|
||||||
player.setDisplayName(color + append + ChatColor.RESET + player.getDisplayName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Handle the AirSpout/WaterSpout login glitches
|
|
||||||
if (player.getGameMode() != GameMode.CREATIVE) {
|
|
||||||
HashMap<Integer, String> bound = bPlayer.getAbilities();
|
|
||||||
for (String str : bound.values()) {
|
|
||||||
if (str.equalsIgnoreCase("AirSpout") || str.equalsIgnoreCase("WaterSpout") || str.equalsIgnoreCase("SandSpout")) {
|
|
||||||
final Player fplayer = player;
|
|
||||||
new BukkitRunnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
fplayer.setFlying(false);
|
|
||||||
fplayer.setAllowFlight(false);
|
|
||||||
}
|
|
||||||
}.runTaskLater(ProjectKorra.plugin, 2);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
|
||||||
public void onBlockBreak(BlockBreakEvent event) {
|
public void onBlockBreak(BlockBreakEvent event) {
|
||||||
if (event.isCancelled()) {
|
if (event.isCancelled()) {
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
package com.projectkorra.projectkorra.event;
|
||||||
|
|
||||||
|
import org.bukkit.event.Event;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
|
import com.projectkorra.projectkorra.BendingPlayer;
|
||||||
|
/**
|
||||||
|
* Called when a new BendingPlayer is created
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class BendingPlayerCreationEvent extends Event {
|
||||||
|
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
private BendingPlayer bPlayer;
|
||||||
|
|
||||||
|
public BendingPlayerCreationEvent(BendingPlayer bPlayer) {
|
||||||
|
this.bPlayer = bPlayer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HandlerList getHandlers() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return BendingPlayer created
|
||||||
|
*/
|
||||||
|
public BendingPlayer getBendingPlayer() {
|
||||||
|
return bPlayer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue