mirror of
https://github.com/TotalFreedomMC/TF-ProjectKorra.git
synced 2025-02-12 03:59:06 +00:00
Merge pull request #253 from StrangeOne101/master
OfflinePlayer Support Fix
This commit is contained in:
commit
17006d1049
4 changed files with 113 additions and 139 deletions
|
@ -798,7 +798,7 @@ public class GeneralMethods {
|
||||||
return BendingPlayer.getPlayers().get(uuid);
|
return BendingPlayer.getPlayers().get(uuid);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static BendingPlayer getBendingPlayer(Player player) {
|
public static BendingPlayer getBendingPlayer(OfflinePlayer player) {
|
||||||
return getBendingPlayer(player.getUniqueId());
|
return getBendingPlayer(player.getUniqueId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1002,7 +1002,7 @@ public class PKListener implements Listener {
|
||||||
Commands.invincible.remove(event.getPlayer().getName());
|
Commands.invincible.remove(event.getPlayer().getName());
|
||||||
}
|
}
|
||||||
Preset.unloadPreset(player);
|
Preset.unloadPreset(player);
|
||||||
BendingPlayer.getPlayers().remove(event.getPlayer().getUniqueId());
|
//BendingPlayer.getPlayers().remove(event.getPlayer().getUniqueId());
|
||||||
if (EarthArmor.instances.containsKey(event.getPlayer())) {
|
if (EarthArmor.instances.containsKey(event.getPlayer())) {
|
||||||
EarthArmor.removeEffect(event.getPlayer());
|
EarthArmor.removeEffect(event.getPlayer());
|
||||||
event.getPlayer().removePotionEffect(PotionEffectType.DAMAGE_RESISTANCE);
|
event.getPlayer().removePotionEffect(PotionEffectType.DAMAGE_RESISTANCE);
|
||||||
|
|
|
@ -8,18 +8,16 @@ import com.projectkorra.projectkorra.airbending.AirMethods;
|
||||||
import com.projectkorra.projectkorra.chiblocking.ChiMethods;
|
import com.projectkorra.projectkorra.chiblocking.ChiMethods;
|
||||||
import com.projectkorra.projectkorra.earthbending.EarthMethods;
|
import com.projectkorra.projectkorra.earthbending.EarthMethods;
|
||||||
import com.projectkorra.projectkorra.firebending.FireMethods;
|
import com.projectkorra.projectkorra.firebending.FireMethods;
|
||||||
import com.projectkorra.projectkorra.storage.DBConnection;
|
|
||||||
import com.projectkorra.projectkorra.waterbending.WaterMethods;
|
import com.projectkorra.projectkorra.waterbending.WaterMethods;
|
||||||
import com.projectkorra.rpg.RPGMethods;
|
import com.projectkorra.rpg.RPGMethods;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
import java.sql.ResultSet;
|
|
||||||
import java.sql.SQLException;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -123,144 +121,121 @@ public class WhoCommand extends PKCommand {
|
||||||
* @param playerName The Player to look up
|
* @param playerName The Player to look up
|
||||||
*/
|
*/
|
||||||
private void whoPlayer(final CommandSender sender, final String playerName) {
|
private void whoPlayer(final CommandSender sender, final String playerName) {
|
||||||
Player player = Bukkit.getPlayer(playerName);
|
//Player player = Bukkit.getPlayer(playerName);
|
||||||
if (player != null) {
|
@SuppressWarnings("deprecation")
|
||||||
sender.sendMessage(playerName + " - ");
|
final OfflinePlayer player = Bukkit.getOfflinePlayer(playerName);
|
||||||
if (GeneralMethods.isBender(playerName, Element.Air)) {
|
if (player == null || !player.hasPlayedBefore()) {
|
||||||
sender.sendMessage(AirMethods.getAirColor() + "- Airbender");
|
sender.sendMessage(ChatColor.RED + "Player not found!");
|
||||||
if (AirMethods.canAirFlight(player)) {
|
return;
|
||||||
sender.sendMessage(GeneralMethods.getSubBendingColor(Element.Air) + " Can Fly");
|
}
|
||||||
}
|
if (!player.isOnline() && !BendingPlayer.getPlayers().containsKey(player.getUniqueId())) {
|
||||||
if (AirMethods.canUseSpiritualProjection(player)) {
|
sender.sendMessage(player.getName() + ChatColor.GRAY + " is currently offline. A lookup is currently being done (this might take a few seconds).");
|
||||||
sender.sendMessage(GeneralMethods.getSubBendingColor(Element.Air) + " Can use Spiritual Projection");
|
}
|
||||||
}
|
Player player_ = (Player) (player.isOnline() ? player : null);
|
||||||
}
|
sender.sendMessage(player.getName() + (!player.isOnline() ? ChatColor.RESET + " (Offline)" : "") + " - ");
|
||||||
if (GeneralMethods.isBender(playerName, Element.Water)) {
|
if (!BendingPlayer.getPlayers().containsKey(player.getUniqueId())) {
|
||||||
sender.sendMessage(WaterMethods.getWaterColor() + "- Waterbender");
|
GeneralMethods.createBendingPlayer(player.getUniqueId(), playerName);
|
||||||
if (WaterMethods.canPlantbend(player)) {
|
BukkitRunnable runnable = new BukkitRunnable() {
|
||||||
sender.sendMessage(GeneralMethods.getSubBendingColor(Element.Water) + " Can Plantbend");
|
|
||||||
}
|
|
||||||
if (WaterMethods.canBloodbend(player)) {
|
|
||||||
if (WaterMethods.canBloodbendAtAnytime(player)) {
|
|
||||||
sender.sendMessage(GeneralMethods.getSubBendingColor(Element.Water) + " Can Bloodbend anytime, on any day");
|
|
||||||
} else {
|
|
||||||
sender.sendMessage(GeneralMethods.getSubBendingColor(Element.Water) + " Can Bloodbend");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (WaterMethods.canIcebend(player)) {
|
|
||||||
sender.sendMessage(GeneralMethods.getSubBendingColor(Element.Water) + " Can Icebend");
|
|
||||||
}
|
|
||||||
if (WaterMethods.canWaterHeal(player)) {
|
|
||||||
sender.sendMessage(GeneralMethods.getSubBendingColor(Element.Water) + " Can Heal");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (GeneralMethods.isBender(playerName, Element.Earth)) {
|
|
||||||
sender.sendMessage(EarthMethods.getEarthColor() + "- Earthbender");
|
|
||||||
if (EarthMethods.canMetalbend(player)) {
|
|
||||||
sender.sendMessage(GeneralMethods.getSubBendingColor(Element.Earth) + " Can Metalbend");
|
|
||||||
}
|
|
||||||
if (EarthMethods.canLavabend(player)) {
|
|
||||||
sender.sendMessage(GeneralMethods.getSubBendingColor(Element.Earth) + " Can Lavabend");
|
|
||||||
}
|
|
||||||
if (EarthMethods.canSandbend(player)) {
|
|
||||||
sender.sendMessage(GeneralMethods.getSubBendingColor(Element.Earth) + " Can Sandbend");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (GeneralMethods.isBender(playerName, Element.Fire)) {
|
|
||||||
sender.sendMessage(FireMethods.getFireColor() + "- Firebender");
|
|
||||||
if (FireMethods.canCombustionbend(player)) {
|
|
||||||
sender.sendMessage(GeneralMethods.getSubBendingColor(Element.Fire) + " Can Combustionbend");
|
|
||||||
}
|
|
||||||
if (FireMethods.canLightningbend(player)) {
|
|
||||||
sender.sendMessage(GeneralMethods.getSubBendingColor(Element.Fire) + " Can Lightningbend");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (GeneralMethods.isBender(playerName, Element.Chi)) {
|
|
||||||
sender.sendMessage(ChiMethods.getChiColor() + "- ChiBlocker");
|
|
||||||
}
|
|
||||||
BendingPlayer bPlayer = GeneralMethods.getBendingPlayer(playerName);
|
|
||||||
UUID uuid = player.getUniqueId();
|
|
||||||
if (bPlayer != null) {
|
|
||||||
sender.sendMessage("Abilities: ");
|
|
||||||
for (int i = 1; i <= 9; i++) {
|
|
||||||
String ability = bPlayer.getAbilities().get(i);
|
|
||||||
if (ability == null || ability.equalsIgnoreCase("null")) {
|
|
||||||
continue;
|
|
||||||
} else {
|
|
||||||
sender.sendMessage(i + " - " + GeneralMethods.getAbilityColor(ability) + ability);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (GeneralMethods.hasRPG()) {
|
|
||||||
if (RPGMethods.isCurrentAvatar(player.getUniqueId())) {
|
|
||||||
sender.sendMessage(GeneralMethods.getAvatarColor() + "Current Avatar");
|
|
||||||
} else if (RPGMethods.hasBeenAvatar(player.getUniqueId())) {
|
|
||||||
sender.sendMessage(GeneralMethods.getAvatarColor() + "Former Avatar");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (staff.containsKey(uuid.toString())) {
|
|
||||||
sender.sendMessage(staff.get(uuid.toString()));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
sender.sendMessage(ChatColor.GREEN + "You are running a lookup of an offline player, this may take a second.");
|
|
||||||
|
|
||||||
new BukkitRunnable() {
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
ResultSet rs2 = DBConnection.sql.readQuery("SELECT * FROM pk_players WHERE player = '" + playerName + "'");
|
int count = 0;
|
||||||
try {
|
final long delay = 200L;
|
||||||
final List<String> messages = new ArrayList<String>();
|
while (!BendingPlayer.getPlayers().containsKey(player.getUniqueId())) {
|
||||||
|
if (count > 5 * (1000 / delay)) { //After 5 seconds of waiting, tell the user the database is busy and to try again in a few seconds.
|
||||||
if (rs2.next()) {
|
sender.sendMessage(ChatColor.DARK_RED + "The database appears to busy at the moment. Please wait a few seconds and try again.");
|
||||||
UUID uuid = UUID.fromString(rs2.getString("uuid"));
|
break;
|
||||||
String element = rs2.getString("element");
|
}
|
||||||
|
count++;
|
||||||
messages.add(playerName + " - ");
|
try {
|
||||||
if (element == null) {
|
Thread.sleep(delay);
|
||||||
messages.add(" - Nonbender");
|
} catch (InterruptedException e) {
|
||||||
} else {
|
e.printStackTrace();
|
||||||
if (element.contains("a"))
|
sender.sendMessage(ChatColor.DARK_RED + "The database appears to busy at the moment. Please wait a few seconds and try again.");
|
||||||
messages.add(AirMethods.getAirColor() + "- Airbender");
|
break;
|
||||||
if (element.contains("w"))
|
|
||||||
messages.add(WaterMethods.getWaterColor() + "- Waterbender");
|
|
||||||
if (element.contains("e"))
|
|
||||||
messages.add(EarthMethods.getEarthColor() + "- Earthbender");
|
|
||||||
if (element.contains("f"))
|
|
||||||
messages.add(FireMethods.getFireColor() + "- Firebender");
|
|
||||||
if (element.contains("c"))
|
|
||||||
messages.add(ChiMethods.getChiColor() + "- Chiblocker");
|
|
||||||
}
|
|
||||||
if (GeneralMethods.hasRPG()) {
|
|
||||||
if (RPGMethods.isCurrentAvatar(uuid)) {
|
|
||||||
messages.add(GeneralMethods.getAvatarColor() + "Current Avatar");
|
|
||||||
} else if (RPGMethods.hasBeenAvatar(uuid)) {
|
|
||||||
messages.add(GeneralMethods.getAvatarColor() + "Former Avatar");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (staff.containsKey(uuid)) {
|
|
||||||
messages.add(staff.get(uuid));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
messages.add(ChatColor.RED + "We could not find any player in your database with that username. Are you sure it is typed correctly?");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
new BukkitRunnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
for (String message : messages) {
|
|
||||||
sender.sendMessage(message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}.runTask(ProjectKorra.plugin);
|
|
||||||
}
|
|
||||||
catch (SQLException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
}
|
||||||
|
whoPlayer(sender, playerName);
|
||||||
}
|
}
|
||||||
}.runTaskAsynchronously(ProjectKorra.plugin);
|
};
|
||||||
|
runnable.runTaskAsynchronously(ProjectKorra.plugin);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
if (GeneralMethods.isBender(playerName, Element.Air)) {
|
||||||
|
sender.sendMessage(AirMethods.getAirColor() + "- Airbender");
|
||||||
|
if (player_ != null && AirMethods.canAirFlight((Player) player)) {
|
||||||
|
sender.sendMessage(GeneralMethods.getSubBendingColor(Element.Air) + " Can Fly");
|
||||||
|
}
|
||||||
|
if (player_ != null && AirMethods.canUseSpiritualProjection((Player) player)) {
|
||||||
|
sender.sendMessage(GeneralMethods.getSubBendingColor(Element.Air) + " Can use Spiritual Projection");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (GeneralMethods.isBender(playerName, Element.Water)) {
|
||||||
|
sender.sendMessage(WaterMethods.getWaterColor() + "- Waterbender");
|
||||||
|
if (player_ != null && WaterMethods.canPlantbend((Player) player)) {
|
||||||
|
sender.sendMessage(GeneralMethods.getSubBendingColor(Element.Water) + " Can Plantbend");
|
||||||
|
}
|
||||||
|
if (player_ != null && WaterMethods.canBloodbend((Player) player)) {
|
||||||
|
if (WaterMethods.canBloodbendAtAnytime((Player) player)) {
|
||||||
|
sender.sendMessage(GeneralMethods.getSubBendingColor(Element.Water) + " Can Bloodbend anytime, on any day");
|
||||||
|
} else {
|
||||||
|
sender.sendMessage(GeneralMethods.getSubBendingColor(Element.Water) + " Can Bloodbend");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (player_ != null && WaterMethods.canIcebend((Player) player)) {
|
||||||
|
sender.sendMessage(GeneralMethods.getSubBendingColor(Element.Water) + " Can Icebend");
|
||||||
|
}
|
||||||
|
if (player_ != null && WaterMethods.canWaterHeal((Player) player)) {
|
||||||
|
sender.sendMessage(GeneralMethods.getSubBendingColor(Element.Water) + " Can Heal");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (GeneralMethods.isBender(playerName, Element.Earth)) {
|
||||||
|
sender.sendMessage(EarthMethods.getEarthColor() + "- Earthbender");
|
||||||
|
if (player_ != null && EarthMethods.canMetalbend((Player) player)) {
|
||||||
|
sender.sendMessage(GeneralMethods.getSubBendingColor(Element.Earth) + " Can Metalbend");
|
||||||
|
}
|
||||||
|
if (player_ != null && EarthMethods.canLavabend((Player) player)) {
|
||||||
|
sender.sendMessage(GeneralMethods.getSubBendingColor(Element.Earth) + " Can Lavabend");
|
||||||
|
}
|
||||||
|
if (player_ != null && EarthMethods.canSandbend((Player) player)) {
|
||||||
|
sender.sendMessage(GeneralMethods.getSubBendingColor(Element.Earth) + " Can Sandbend");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (GeneralMethods.isBender(playerName, Element.Fire)) {
|
||||||
|
sender.sendMessage(FireMethods.getFireColor() + "- Firebender");
|
||||||
|
if (player_ != null && FireMethods.canCombustionbend((Player) player)) {
|
||||||
|
sender.sendMessage(GeneralMethods.getSubBendingColor(Element.Fire) + " Can Combustionbend");
|
||||||
|
}
|
||||||
|
if (player_ != null && FireMethods.canLightningbend((Player) player)) {
|
||||||
|
sender.sendMessage(GeneralMethods.getSubBendingColor(Element.Fire) + " Can Lightningbend");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (GeneralMethods.isBender(playerName, Element.Chi)) {
|
||||||
|
sender.sendMessage(ChiMethods.getChiColor() + "- ChiBlocker");
|
||||||
|
}
|
||||||
|
BendingPlayer bPlayer = GeneralMethods.getBendingPlayer(playerName);
|
||||||
|
UUID uuid = player.getUniqueId();
|
||||||
|
if (bPlayer != null) {
|
||||||
|
sender.sendMessage("Abilities: ");
|
||||||
|
for (int i = 1; i <= 9; i++) {
|
||||||
|
String ability = bPlayer.getAbilities().get(i);
|
||||||
|
if (ability == null || ability.equalsIgnoreCase("null")) {
|
||||||
|
continue;
|
||||||
|
} else {
|
||||||
|
sender.sendMessage(i + " - " + GeneralMethods.getAbilityColor(ability) + ability);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GeneralMethods.hasRPG()) {
|
||||||
|
if (RPGMethods.isCurrentAvatar(player.getUniqueId())) {
|
||||||
|
sender.sendMessage(GeneralMethods.getAvatarColor() + "Current Avatar");
|
||||||
|
} else if (RPGMethods.hasBeenAvatar(player.getUniqueId())) {
|
||||||
|
sender.sendMessage(GeneralMethods.getAvatarColor() + "Former Avatar");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (staff.containsKey(uuid.toString())) {
|
||||||
|
sender.sendMessage(staff.get(uuid.toString()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,7 +60,6 @@ public class FireMethods {
|
||||||
}
|
}
|
||||||
Information info = new Information();
|
Information info = new Information();
|
||||||
long time = config.getLong("Properties.Fire.RevertTicks") + (long)(GeneralMethods.rand.nextDouble() * config.getLong("Properties.Fire.RevertTicks")); //Generate a long between the config time and config time x 2. Just so it appears random
|
long time = config.getLong("Properties.Fire.RevertTicks") + (long)(GeneralMethods.rand.nextDouble() * config.getLong("Properties.Fire.RevertTicks")); //Generate a long between the config time and config time x 2. Just so it appears random
|
||||||
System.out.println(time);
|
|
||||||
if (tempFire.containsKey(loc)) {
|
if (tempFire.containsKey(loc)) {
|
||||||
info = tempFire.get(loc);
|
info = tempFire.get(loc);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue