Make code less null-happy
A lot of the code is filled with acceptance of null, even when null could mean something went wrong. We no longer want to fail-safe but want to fail fast, so this approach to null is changing. This will surely cause some bugs in the beginning, but will also make them less frequent in the long run.
This commit is contained in:
parent
5302f808d7
commit
b0086ba0f7
@ -184,7 +184,7 @@ public class Progressbar
|
|||||||
|
|
||||||
public static String colorParse(String string, String colorTag, String color)
|
public static String colorParse(String string, String colorTag, String color)
|
||||||
{
|
{
|
||||||
if (string == null) return null;
|
if (string == null) throw new NullPointerException("string");
|
||||||
string = string.replace(colorTag, color);
|
string = string.replace(colorTag, color);
|
||||||
string = Txt.parse(string);
|
string = Txt.parse(string);
|
||||||
return string;
|
return string;
|
||||||
|
@ -81,12 +81,13 @@ public final class SoundEffect implements Serializable
|
|||||||
|
|
||||||
public void run(Location location)
|
public void run(Location location)
|
||||||
{
|
{
|
||||||
if (location == null) return;
|
if (location == null) throw new NullPointerException("location");
|
||||||
location.getWorld().playSound(location, this.getSound(), this.getVolume(), this.getPitch());
|
location.getWorld().playSound(location, this.getSound(), this.getVolume(), this.getPitch());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void run(HumanEntity human, Location location)
|
public void run(HumanEntity human, Location location)
|
||||||
{
|
{
|
||||||
|
if (human == null) throw new NullPointerException("human");
|
||||||
if (MUtil.isntPlayer(human)) return;
|
if (MUtil.isntPlayer(human)) return;
|
||||||
Player player = (Player)human;
|
Player player = (Player)human;
|
||||||
player.playSound(location, this.getSound(), this.getVolume(), this.getPitch());
|
player.playSound(location, this.getSound(), this.getVolume(), this.getPitch());
|
||||||
@ -94,6 +95,7 @@ public final class SoundEffect implements Serializable
|
|||||||
|
|
||||||
public void run(HumanEntity human)
|
public void run(HumanEntity human)
|
||||||
{
|
{
|
||||||
|
if (human == null) throw new NullPointerException("human");
|
||||||
if (MUtil.isntPlayer(human)) return;
|
if (MUtil.isntPlayer(human)) return;
|
||||||
this.run(human, human.getEyeLocation());
|
this.run(human, human.getEyeLocation());
|
||||||
}
|
}
|
||||||
@ -144,8 +146,6 @@ public final class SoundEffect implements Serializable
|
|||||||
@Override
|
@Override
|
||||||
public boolean equals(Object obj)
|
public boolean equals(Object obj)
|
||||||
{
|
{
|
||||||
if (this == obj) return true;
|
|
||||||
if (obj == null) return false;
|
|
||||||
if (!(obj instanceof SoundEffect)) return false;
|
if (!(obj instanceof SoundEffect)) return false;
|
||||||
SoundEffect other = (SoundEffect) obj;
|
SoundEffect other = (SoundEffect) obj;
|
||||||
if (Float.floatToIntBits(pitch) != Float.floatToIntBits(other.pitch)) return false;
|
if (Float.floatToIntBits(pitch) != Float.floatToIntBits(other.pitch)) return false;
|
||||||
|
@ -1650,28 +1650,5 @@ public class MassiveCommand implements Active, PluginIdentifiableCommand
|
|||||||
// Increment is done in this method
|
// Increment is done in this method
|
||||||
return readArgAt(idx);
|
return readArgAt(idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Some of these are still used by external plugins.
|
|
||||||
// TODO: Fix those plugins.
|
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
public <T> T readArgFrom(Type<T> type) throws MassiveException
|
|
||||||
{
|
|
||||||
return this.readArgFrom(null, type);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
public <T> T readArgFrom(String str, Type<T> type) throws MassiveException
|
|
||||||
{
|
|
||||||
if (type == null) throw new IllegalArgumentException("type is null");
|
|
||||||
return type.read(str, this.sender);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
public <T> T readArgFrom(String str, Type<T> type, T defaultNotSet) throws MassiveException
|
|
||||||
{
|
|
||||||
if (str == null) return defaultNotSet;
|
|
||||||
return this.readArgFrom(str, type);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -35,7 +35,7 @@ public class EngineMassiveCorePlayerState extends Engine
|
|||||||
if ( ! active) return;
|
if ( ! active) return;
|
||||||
|
|
||||||
this.idToState.clear();
|
this.idToState.clear();
|
||||||
for (Player player : MUtil.getOnlinePlayers())
|
for (Player player : Bukkit.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
this.idToState.put(player.getUniqueId(), PlayerState.JOINED);
|
this.idToState.put(player.getUniqueId(), PlayerState.JOINED);
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package com.massivecraft.massivecore.mixin;
|
package com.massivecraft.massivecore.mixin;
|
||||||
|
|
||||||
import com.massivecraft.massivecore.util.IdUtil;
|
import com.massivecraft.massivecore.util.IdUtil;
|
||||||
import com.massivecraft.massivecore.util.MUtil;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
public class MixinVisibility extends Mixin
|
public class MixinVisibility extends Mixin
|
||||||
@ -29,7 +29,7 @@ public class MixinVisibility extends Mixin
|
|||||||
Player pwatchee = IdUtil.getPlayer(watcheeObject);
|
Player pwatchee = IdUtil.getPlayer(watcheeObject);
|
||||||
if (pwatchee == null) return true;
|
if (pwatchee == null) return true;
|
||||||
|
|
||||||
for (Player pwatcher : MUtil.getOnlinePlayers())
|
for (Player pwatcher : Bukkit.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
if (pwatchee.equals(pwatcher)) continue;
|
if (pwatchee.equals(pwatcher)) continue;
|
||||||
if (pwatcher.canSee(pwatchee)) continue;
|
if (pwatcher.canSee(pwatchee)) continue;
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package com.massivecraft.massivecore.particleeffect;
|
package com.massivecraft.massivecore.particleeffect;
|
||||||
|
|
||||||
import com.massivecraft.massivecore.particleeffect.ReflectionUtils.PackageType;
|
import com.massivecraft.massivecore.particleeffect.ReflectionUtils.PackageType;
|
||||||
import com.massivecraft.massivecore.util.MUtil;
|
|
||||||
import com.massivecraft.massivecore.util.ReflectionUtil;
|
import com.massivecraft.massivecore.util.ReflectionUtil;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -1512,7 +1512,7 @@ public enum ParticleEffect {
|
|||||||
}
|
}
|
||||||
String worldName = center.getWorld().getName();
|
String worldName = center.getWorld().getName();
|
||||||
double squared = range * range;
|
double squared = range * range;
|
||||||
for (Player player : MUtil.getOnlinePlayers()) {
|
for (Player player : Bukkit.getOnlinePlayers()) {
|
||||||
if (!player.getWorld().getName().equals(worldName) || player.getLocation().distanceSquared(center) > squared) {
|
if (!player.getWorld().getName().equals(worldName) || player.getLocation().distanceSquared(center) > squared) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -145,7 +145,7 @@ public class BoardUtil extends Engine
|
|||||||
Map<String, Player> players = new MassiveMap<>();
|
Map<String, Player> players = new MassiveMap<>();
|
||||||
|
|
||||||
// Fill
|
// Fill
|
||||||
for (Player player : MUtil.getOnlinePlayers())
|
for (Player player : Bukkit.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
players.put(player.getName(), player);
|
players.put(player.getName(), player);
|
||||||
}
|
}
|
||||||
|
@ -181,7 +181,7 @@ public class IdUtil implements Listener, Runnable
|
|||||||
Set<CommandSender> ret = new MassiveSet<>();
|
Set<CommandSender> ret = new MassiveSet<>();
|
||||||
|
|
||||||
// Add Online Players
|
// Add Online Players
|
||||||
ret.addAll(MUtil.getOnlinePlayers());
|
ret.addAll(Bukkit.getOnlinePlayers());
|
||||||
|
|
||||||
// Add Console
|
// Add Console
|
||||||
ret.add(getConsole());
|
ret.add(getConsole());
|
||||||
@ -461,7 +461,7 @@ public class IdUtil implements Listener, Runnable
|
|||||||
public static IdData getData(Object senderObject)
|
public static IdData getData(Object senderObject)
|
||||||
{
|
{
|
||||||
// Null Return
|
// Null Return
|
||||||
if (senderObject == null) return null;
|
if (senderObject == null) throw new NullPointerException("senderObject");
|
||||||
|
|
||||||
// Already Done
|
// Already Done
|
||||||
if (senderObject instanceof IdData) return (IdData) senderObject;
|
if (senderObject instanceof IdData) return (IdData) senderObject;
|
||||||
@ -525,7 +525,7 @@ public class IdUtil implements Listener, Runnable
|
|||||||
public static CommandSender getSender(Object senderObject)
|
public static CommandSender getSender(Object senderObject)
|
||||||
{
|
{
|
||||||
// Null Return
|
// Null Return
|
||||||
if (senderObject == null) return null;
|
if (senderObject == null) throw new NullPointerException("senderObject");
|
||||||
|
|
||||||
// Already Done
|
// Already Done
|
||||||
if (senderObject instanceof CommandSender) return (CommandSender) senderObject;
|
if (senderObject instanceof CommandSender) return (CommandSender) senderObject;
|
||||||
@ -590,7 +590,7 @@ public class IdUtil implements Listener, Runnable
|
|||||||
public static UUID getUuid(Object senderObject)
|
public static UUID getUuid(Object senderObject)
|
||||||
{
|
{
|
||||||
// Null Return
|
// Null Return
|
||||||
if (senderObject == null) return null;
|
if (senderObject == null) throw new NullPointerException("senderObject");
|
||||||
|
|
||||||
// Already Done
|
// Already Done
|
||||||
if (senderObject instanceof UUID) return (UUID)senderObject;
|
if (senderObject instanceof UUID) return (UUID)senderObject;
|
||||||
@ -655,7 +655,7 @@ public class IdUtil implements Listener, Runnable
|
|||||||
public static String getId(Object senderObject)
|
public static String getId(Object senderObject)
|
||||||
{
|
{
|
||||||
// Null Return
|
// Null Return
|
||||||
if (senderObject == null) return null;
|
if (senderObject == null) throw new NullPointerException("senderObject");
|
||||||
|
|
||||||
// Already Done
|
// Already Done
|
||||||
if (senderObject instanceof String && MUtil.isUuid((String)senderObject)) return (String)senderObject;
|
if (senderObject instanceof String && MUtil.isUuid((String)senderObject)) return (String)senderObject;
|
||||||
@ -731,7 +731,7 @@ public class IdUtil implements Listener, Runnable
|
|||||||
public static String getName(Object senderObject)
|
public static String getName(Object senderObject)
|
||||||
{
|
{
|
||||||
// Null Return
|
// Null Return
|
||||||
if (senderObject == null) return null;
|
if (senderObject == null) throw new NullPointerException("senderObject");
|
||||||
|
|
||||||
// Already Done
|
// Already Done
|
||||||
// Handled at "Data" (not applicable - names can look differently)
|
// Handled at "Data" (not applicable - names can look differently)
|
||||||
@ -780,7 +780,7 @@ public class IdUtil implements Listener, Runnable
|
|||||||
public static OfflinePlayer getOfflinePlayer(Object senderObject)
|
public static OfflinePlayer getOfflinePlayer(Object senderObject)
|
||||||
{
|
{
|
||||||
// Null Return
|
// Null Return
|
||||||
if (senderObject == null) return null;
|
if (senderObject == null) throw new NullPointerException("senderObject");
|
||||||
|
|
||||||
// Already done
|
// Already done
|
||||||
if (senderObject instanceof OfflinePlayer) return (OfflinePlayer) senderObject;
|
if (senderObject instanceof OfflinePlayer) return (OfflinePlayer) senderObject;
|
||||||
@ -965,7 +965,7 @@ public class IdUtil implements Listener, Runnable
|
|||||||
|
|
||||||
long millis = System.currentTimeMillis();
|
long millis = System.currentTimeMillis();
|
||||||
|
|
||||||
for (Player player : MUtil.getOnlinePlayers())
|
for (Player player : Bukkit.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
String id = getId(player);
|
String id = getId(player);
|
||||||
if (id == null) throw new NullPointerException("id");
|
if (id == null) throw new NullPointerException("id");
|
||||||
|
@ -56,7 +56,6 @@ import org.bukkit.potion.PotionEffect;
|
|||||||
import org.bukkit.potion.PotionEffectType;
|
import org.bukkit.potion.PotionEffectType;
|
||||||
import org.bukkit.projectiles.ProjectileSource;
|
import org.bukkit.projectiles.ProjectileSource;
|
||||||
|
|
||||||
import java.lang.reflect.Method;
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
@ -81,99 +80,17 @@ import java.util.regex.Pattern;
|
|||||||
|
|
||||||
public class MUtil
|
public class MUtil
|
||||||
{
|
{
|
||||||
// -------------------------------------------- //
|
|
||||||
// CONSTANTS
|
|
||||||
// -------------------------------------------- //
|
|
||||||
|
|
||||||
private static Method methodGetOnlinePlayers;
|
|
||||||
|
|
||||||
static
|
|
||||||
{
|
|
||||||
methodGetOnlinePlayers = getMethodGetOnlinePlayers();
|
|
||||||
}
|
|
||||||
|
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
// GET ONLINE PLAYERS
|
// GET ONLINE PLAYERS
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
// It seems we can not always trust the Bukkit.getOnlinePlayers() method.
|
// Old thing that had to do with the converfrion from 1.17 to 1.8
|
||||||
// Due to compilation issue this method might not exist in the form we compiled against.
|
|
||||||
// Spigot 1.8 and the 1.7 Bukkit might have been compiled slightly differently resulting in this issue.
|
@Deprecated
|
||||||
// Issue Example: https://github.com/MassiveCraft/MassiveCore/issues/192
|
|
||||||
|
|
||||||
public static Method getMethodGetOnlinePlayers()
|
|
||||||
{
|
|
||||||
Method ret = null;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
for (Method method : Bukkit.class.getDeclaredMethods())
|
|
||||||
{
|
|
||||||
// The method name must be getOnlinePlayers ...
|
|
||||||
if ( ! method.getName().equals("getOnlinePlayers")) continue;
|
|
||||||
|
|
||||||
// ... if we find such a method it's better than nothing ...
|
|
||||||
if (ret == null) ret = method;
|
|
||||||
|
|
||||||
// ... but if the method additionally returns a collection ...
|
|
||||||
if ( ! method.getReturnType().isAssignableFrom(Collection.class)) continue;
|
|
||||||
|
|
||||||
// ... that is preferable ...
|
|
||||||
ret = method;
|
|
||||||
|
|
||||||
// ... and we need not look any further.
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret.setAccessible(true);
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
// If we fail we do so silently.
|
|
||||||
// This method is probably almost never going to be used anyways.
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Collection<Player> getOnlinePlayers()
|
public static Collection<Player> getOnlinePlayers()
|
||||||
{
|
{
|
||||||
// Fetch some kind of playersObject.
|
Collection<? extends Player>coll = Bukkit.getOnlinePlayers();
|
||||||
Object playersObject = null;
|
List<Player> ret = new MassiveList<>(coll.size());
|
||||||
try
|
return ret;
|
||||||
{
|
|
||||||
playersObject = Bukkit.getOnlinePlayers();
|
|
||||||
}
|
|
||||||
catch (Throwable t)
|
|
||||||
{
|
|
||||||
// That didn't work!
|
|
||||||
// We probably just caught a NoSuchMethodError.
|
|
||||||
// So let's try with reflection instead.
|
|
||||||
try
|
|
||||||
{
|
|
||||||
playersObject = methodGetOnlinePlayers.invoke(null);
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Now return the playersObject.
|
|
||||||
if (playersObject instanceof Collection<?>)
|
|
||||||
{
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
Collection<Player> playersCollection = (Collection<Player>)playersObject;
|
|
||||||
return playersCollection;
|
|
||||||
}
|
|
||||||
else if (playersObject instanceof Player[])
|
|
||||||
{
|
|
||||||
Player[] playersArray = (Player[])playersObject;
|
|
||||||
return Arrays.asList(playersArray);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
throw new RuntimeException("Failed retrieving online players.");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
@ -195,7 +112,7 @@ public class MUtil
|
|||||||
// Fill
|
// Fill
|
||||||
final World world = location.getWorld();
|
final World world = location.getWorld();
|
||||||
final double radiusSquared = radius * radius;
|
final double radiusSquared = radius * radius;
|
||||||
for (Player player : MUtil.getOnlinePlayers())
|
for (Player player : Bukkit.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
Location playerLocation = player.getLocation();
|
Location playerLocation = player.getLocation();
|
||||||
World playerWorld = playerLocation.getWorld();
|
World playerWorld = playerLocation.getWorld();
|
||||||
@ -251,7 +168,7 @@ public class MUtil
|
|||||||
public static UUID asUuid(String string)
|
public static UUID asUuid(String string)
|
||||||
{
|
{
|
||||||
// Null
|
// Null
|
||||||
if (string == null) return null;
|
if (string == null) throw new NullPointerException("string");
|
||||||
|
|
||||||
// Avoid Exception
|
// Avoid Exception
|
||||||
if (string.length() != 36) return null;
|
if (string.length() != 36) return null;
|
||||||
@ -285,7 +202,7 @@ public class MUtil
|
|||||||
|
|
||||||
public static boolean containsCommand(String needle, Iterable<String> haystack)
|
public static boolean containsCommand(String needle, Iterable<String> haystack)
|
||||||
{
|
{
|
||||||
if (needle == null) return false;
|
if (needle == null) throw new NullPointerException("needle");
|
||||||
needle = prepareCommand(needle);
|
needle = prepareCommand(needle);
|
||||||
|
|
||||||
for (String straw : haystack)
|
for (String straw : haystack)
|
||||||
@ -314,7 +231,7 @@ public class MUtil
|
|||||||
|
|
||||||
private static String prepareCommand(String string)
|
private static String prepareCommand(String string)
|
||||||
{
|
{
|
||||||
if (string == null) return null;
|
if (string == null) throw new NullPointerException("string");
|
||||||
string = Txt.removeLeadingCommandDust(string);
|
string = Txt.removeLeadingCommandDust(string);
|
||||||
string = string.toLowerCase();
|
string = string.toLowerCase();
|
||||||
string = string.trim();
|
string = string.trim();
|
||||||
@ -384,6 +301,8 @@ public class MUtil
|
|||||||
|
|
||||||
public static boolean isNpc(Object object)
|
public static boolean isNpc(Object object)
|
||||||
{
|
{
|
||||||
|
if (object == null) throw new NullPointerException("object");
|
||||||
|
|
||||||
if ( ! (object instanceof Metadatable)) return false;
|
if ( ! (object instanceof Metadatable)) return false;
|
||||||
Metadatable metadatable = (Metadatable)object;
|
Metadatable metadatable = (Metadatable)object;
|
||||||
try
|
try
|
||||||
@ -405,6 +324,8 @@ public class MUtil
|
|||||||
|
|
||||||
public static boolean isSender(Object object)
|
public static boolean isSender(Object object)
|
||||||
{
|
{
|
||||||
|
if (object == null) throw new NullPointerException("object");
|
||||||
|
|
||||||
if (!(object instanceof CommandSender)) return false;
|
if (!(object instanceof CommandSender)) return false;
|
||||||
if (isNpc(object)) return false;
|
if (isNpc(object)) return false;
|
||||||
return true;
|
return true;
|
||||||
@ -416,6 +337,8 @@ public class MUtil
|
|||||||
|
|
||||||
public static boolean isPlayer(Object object)
|
public static boolean isPlayer(Object object)
|
||||||
{
|
{
|
||||||
|
if (object == null) throw new NullPointerException("object");
|
||||||
|
|
||||||
if (!(object instanceof Player)) return false;
|
if (!(object instanceof Player)) return false;
|
||||||
if (isNpc(object)) return false;
|
if (isNpc(object)) return false;
|
||||||
return true;
|
return true;
|
||||||
@ -953,7 +876,7 @@ public class MUtil
|
|||||||
|
|
||||||
public static <T> T regexPickFirstVal(String input, Map<String, T> regex2val)
|
public static <T> T regexPickFirstVal(String input, Map<String, T> regex2val)
|
||||||
{
|
{
|
||||||
if (regex2val == null) return null;
|
if (regex2val == null) throw new NullPointerException("regex2val");
|
||||||
T ret = null;
|
T ret = null;
|
||||||
|
|
||||||
for (Entry<String, T> entry : regex2val.entrySet())
|
for (Entry<String, T> entry : regex2val.entrySet())
|
||||||
@ -969,7 +892,7 @@ public class MUtil
|
|||||||
|
|
||||||
public static <E, T> T equalsPickFirstVal(E input, Map<E, T> thing2val)
|
public static <E, T> T equalsPickFirstVal(E input, Map<E, T> thing2val)
|
||||||
{
|
{
|
||||||
if (thing2val == null) return null;
|
if (thing2val == null) throw new NullPointerException("thing2val");
|
||||||
T ret = null;
|
T ret = null;
|
||||||
|
|
||||||
for (Entry<E, T> entry : thing2val.entrySet())
|
for (Entry<E, T> entry : thing2val.entrySet())
|
||||||
|
@ -83,7 +83,7 @@ public class PermissionUtil
|
|||||||
|
|
||||||
public static String asPermissionId(Object object)
|
public static String asPermissionId(Object object)
|
||||||
{
|
{
|
||||||
if (object == null) return null;
|
if (object == null) throw new NullPointerException("object");
|
||||||
|
|
||||||
if (object instanceof String) return (String)object;
|
if (object instanceof String) return (String)object;
|
||||||
if (object instanceof Identified) return ((Identified)object).getId();
|
if (object instanceof Identified) return ((Identified)object).getId();
|
||||||
@ -94,7 +94,7 @@ public class PermissionUtil
|
|||||||
|
|
||||||
public static Permission asPermission(Object object)
|
public static Permission asPermission(Object object)
|
||||||
{
|
{
|
||||||
if (object == null) return null;
|
if (object == null) throw new NullPointerException("object");
|
||||||
|
|
||||||
if (object instanceof Permission) return (Permission)object;
|
if (object instanceof Permission) return (Permission)object;
|
||||||
|
|
||||||
@ -228,6 +228,8 @@ public class PermissionUtil
|
|||||||
|
|
||||||
public static boolean setPermissionStandardChildren(Permission permission, PermissionDefault standard, Map<String, Boolean> children)
|
public static boolean setPermissionStandardChildren(Permission permission, PermissionDefault standard, Map<String, Boolean> children)
|
||||||
{
|
{
|
||||||
|
if (permission == null) throw new NullPointerException("permission");
|
||||||
|
|
||||||
boolean childrenChanged = false;
|
boolean childrenChanged = false;
|
||||||
boolean standardChanged = false;
|
boolean standardChanged = false;
|
||||||
|
|
||||||
|
@ -64,7 +64,7 @@ public class PlayerUtil extends Engine
|
|||||||
|
|
||||||
public static void setLastMoveMillis(Player player, long millis)
|
public static void setLastMoveMillis(Player player, long millis)
|
||||||
{
|
{
|
||||||
if (player == null) return;
|
if (player == null) throw new NullPointerException("player");
|
||||||
idToLastMoveMillis.put(player.getUniqueId(), millis);
|
idToLastMoveMillis.put(player.getUniqueId(), millis);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -94,7 +94,7 @@ public class PlayerUtil extends Engine
|
|||||||
|
|
||||||
public static long getLastMoveMillis(Player player)
|
public static long getLastMoveMillis(Player player)
|
||||||
{
|
{
|
||||||
if (player == null) return 0;
|
if (player == null) throw new NullPointerException("player");
|
||||||
Long ret = idToLastMoveMillis.get(player.getUniqueId());
|
Long ret = idToLastMoveMillis.get(player.getUniqueId());
|
||||||
if (ret == null) return 0;
|
if (ret == null) return 0;
|
||||||
return ret;
|
return ret;
|
||||||
@ -102,7 +102,7 @@ public class PlayerUtil extends Engine
|
|||||||
|
|
||||||
public static long getStandStillMillis(Player player)
|
public static long getStandStillMillis(Player player)
|
||||||
{
|
{
|
||||||
if (player == null) return 0;
|
if (player == null) throw new NullPointerException("player");
|
||||||
if (player.isDead()) return 0;
|
if (player.isDead()) return 0;
|
||||||
if (!player.isOnline()) return 0;
|
if (!player.isOnline()) return 0;
|
||||||
|
|
||||||
@ -122,8 +122,8 @@ public class PlayerUtil extends Engine
|
|||||||
|
|
||||||
public static void setLastDamageMillis(Player player, long millis)
|
public static void setLastDamageMillis(Player player, long millis)
|
||||||
{
|
{
|
||||||
|
if (player == null) throw new NullPointerException("player");
|
||||||
if (MUtil.isntPlayer(player)) return;
|
if (MUtil.isntPlayer(player)) return;
|
||||||
if (player == null) return;
|
|
||||||
idToLastDamageMillis.put(player.getUniqueId(), millis);
|
idToLastDamageMillis.put(player.getUniqueId(), millis);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -157,6 +157,7 @@ public class PlayerUtil extends Engine
|
|||||||
|
|
||||||
public static long getLastDamageMillis(Player player)
|
public static long getLastDamageMillis(Player player)
|
||||||
{
|
{
|
||||||
|
if (player == null) throw new NullPointerException("player");
|
||||||
if (MUtil.isntPlayer(player)) return 0;
|
if (MUtil.isntPlayer(player)) return 0;
|
||||||
Long ret = idToLastDamageMillis.get(player.getUniqueId());
|
Long ret = idToLastDamageMillis.get(player.getUniqueId());
|
||||||
if (ret == null) return 0;
|
if (ret == null) return 0;
|
||||||
@ -165,6 +166,7 @@ public class PlayerUtil extends Engine
|
|||||||
|
|
||||||
public static long getNoDamageMillis(Player player)
|
public static long getNoDamageMillis(Player player)
|
||||||
{
|
{
|
||||||
|
if (player == null) throw new NullPointerException("player");
|
||||||
if (MUtil.isntPlayer(player)) return 0;
|
if (MUtil.isntPlayer(player)) return 0;
|
||||||
if (player.isDead()) return 0;
|
if (player.isDead()) return 0;
|
||||||
if (!player.isOnline()) return 0;
|
if (!player.isOnline()) return 0;
|
||||||
|
@ -34,7 +34,7 @@ public class SmokeUtil
|
|||||||
// Single ========
|
// Single ========
|
||||||
public static void spawnSingle(Location location, int direction)
|
public static void spawnSingle(Location location, int direction)
|
||||||
{
|
{
|
||||||
if (location == null) return;
|
if (location == null) throw new NullPointerException("location");
|
||||||
location.getWorld().playEffect(location, Effect.SMOKE, direction);
|
location.getWorld().playEffect(location, Effect.SMOKE, direction);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,7 +70,7 @@ public class TimeUnit implements Comparable<TimeUnit>
|
|||||||
|
|
||||||
public static TimeUnit get(String timeUnitString)
|
public static TimeUnit get(String timeUnitString)
|
||||||
{
|
{
|
||||||
if (timeUnitString == null) return null;
|
if (timeUnitString == null) throw new NullPointerException("timeUnitString");
|
||||||
String timeUnitStringLowerCase = timeUnitString.toLowerCase();
|
String timeUnitStringLowerCase = timeUnitString.toLowerCase();
|
||||||
for (TimeUnit timeUnit : all)
|
for (TimeUnit timeUnit : all)
|
||||||
{
|
{
|
||||||
|
@ -170,7 +170,7 @@ public class Txt
|
|||||||
|
|
||||||
public static String parse(String string)
|
public static String parse(String string)
|
||||||
{
|
{
|
||||||
if (string == null) return null;
|
if (string == null) throw new NullPointerException("string");
|
||||||
StringBuffer ret = new StringBuffer();
|
StringBuffer ret = new StringBuffer();
|
||||||
Matcher matcher = parsePattern.matcher(string);
|
Matcher matcher = parsePattern.matcher(string);
|
||||||
while (matcher.find())
|
while (matcher.find())
|
||||||
@ -202,7 +202,7 @@ public class Txt
|
|||||||
|
|
||||||
public static ArrayList<String> wrap(final String string)
|
public static ArrayList<String> wrap(final String string)
|
||||||
{
|
{
|
||||||
if (string == null) return null;
|
if (string == null) throw new NullPointerException("string");
|
||||||
return new ArrayList<>(Arrays.asList(PATTERN_NEWLINE.split(string)));
|
return new ArrayList<>(Arrays.asList(PATTERN_NEWLINE.split(string)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -245,13 +245,13 @@ public class Txt
|
|||||||
|
|
||||||
public static String upperCaseFirst(String string)
|
public static String upperCaseFirst(String string)
|
||||||
{
|
{
|
||||||
if (string == null) return null;
|
if (string == null) throw new NullPointerException("string");
|
||||||
if (string.length() == 0) return string;
|
if (string.length() == 0) return string;
|
||||||
return string.substring(0, 1).toUpperCase() + string.substring(1);
|
return string.substring(0, 1).toUpperCase() + string.substring(1);
|
||||||
}
|
}
|
||||||
public static String lowerCaseFirst(String string)
|
public static String lowerCaseFirst(String string)
|
||||||
{
|
{
|
||||||
if (string == null) return null;
|
if (string == null) throw new NullPointerException("string");
|
||||||
if (string.length() == 0) return string;
|
if (string.length() == 0) return string;
|
||||||
return string.substring(0, 1).toLowerCase() + string.substring(1);
|
return string.substring(0, 1).toLowerCase() + string.substring(1);
|
||||||
}
|
}
|
||||||
@ -392,7 +392,8 @@ public class Txt
|
|||||||
|
|
||||||
public static boolean isVowel(String str)
|
public static boolean isVowel(String str)
|
||||||
{
|
{
|
||||||
if (str == null || str.length() == 0) return false;
|
if (str == null) throw new NullPointerException("str");
|
||||||
|
if (str.length() == 0) return false;
|
||||||
return vowel.contains(str.substring(0, 1));
|
return vowel.contains(str.substring(0, 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -782,7 +783,7 @@ public class Txt
|
|||||||
|
|
||||||
public static String removeSmartQuotes(String string)
|
public static String removeSmartQuotes(String string)
|
||||||
{
|
{
|
||||||
if (string == null) return null;
|
if (string == null) throw new NullPointerException("string");
|
||||||
|
|
||||||
// LEFT SINGLE QUOTATION MARK
|
// LEFT SINGLE QUOTATION MARK
|
||||||
string = string.replace("\u2018", "'");
|
string = string.replace("\u2018", "'");
|
||||||
|
Loading…
Reference in New Issue
Block a user