Fixed NPE with a SHIT TON OF STATIC

This commit is contained in:
alisolarflare 2016-12-01 16:46:42 -05:00
parent 850169533a
commit e01e9d3f3e
3 changed files with 50 additions and 62 deletions

View file

@ -3,7 +3,6 @@ package alisolarflare.components.flairdoor;
import java.util.ArrayList;
import java.util.List;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
@ -15,12 +14,10 @@ import alisolarflare.components.flairdoor.proximitydetector.SetProximityLocation
public class FlairDoorComponent extends Component {
public List<Player> playersToBeFlaired = new ArrayList<Player>();
public Location startLocation = null;
public Location endLocation = null;
@Override
public void register(JavaPlugin plugin) {
registerCommand(plugin, new FlairMe(this));
registerCommand(plugin, new SetProximityLocation(this));
registerCommand(plugin, new SetProximityLocation());
registerListener(plugin, new PortalListener(plugin, this));
registerListener(plugin, new PlayerProximityLoop(plugin, this));
}

View file

@ -9,38 +9,36 @@ import org.bukkit.scheduler.BukkitRunnable;
import alisolarflare.components.flairdoor.FlairDoorComponent;
public class PlayerProximityLoop extends BukkitRunnable implements Listener{
private JavaPlugin plugin;
private FlairDoorComponent component;
private Location startLocation;
private Location endLocation;
private static JavaPlugin plugin;
private static FlairDoorComponent component;
private static Location startLocation;
private static Location endLocation;
private int sX;
private int sY;
private int sZ;
private int eX;
private int eY;
private int eZ;
private static int sX;
private static int sY;
private static int sZ;
private static int eX;
private static int eY;
private static int eZ;
public PlayerProximityLoop(JavaPlugin plugin, FlairDoorComponent component) {
this.plugin = plugin;
this.component = component;
setStartLocation(component.startLocation);
setEndLocation(component.endLocation);
PlayerProximityLoop.plugin = plugin;
PlayerProximityLoop.component = component;
this.runTaskTimer(plugin, 0, 20);
}
public void setStartLocation(Location location){
this.sX = startLocation.getBlockX();
this.sY = startLocation.getBlockY();
this.sZ = startLocation.getBlockZ();
this.startLocation = location;
this.endLocation.setWorld(location.getWorld());
public static void setStartLocation(Location location){
PlayerProximityLoop.sX = location.getBlockX();
PlayerProximityLoop.sY = location.getBlockY();
PlayerProximityLoop.sZ = location.getBlockZ();
PlayerProximityLoop.startLocation = location;
PlayerProximityLoop.endLocation.setWorld(location.getWorld());
}
public void setEndLocation(Location location){
this.eX = startLocation.getBlockX();
this.eY = startLocation.getBlockY();
this.eZ = startLocation.getBlockZ();
this.endLocation = location;
this.startLocation.setWorld(location.getWorld());
public static void setEndLocation(Location location){
PlayerProximityLoop.eX = location.getBlockX();
PlayerProximityLoop.eY = location.getBlockY();
PlayerProximityLoop.eZ = location.getBlockZ();
PlayerProximityLoop.startLocation.setWorld(location.getWorld());
PlayerProximityLoop.endLocation = location;
}
@Override

View file

@ -3,16 +3,9 @@ package alisolarflare.components.flairdoor.proximitydetector;
import org.bukkit.entity.Player;
import alisolarflare.architecture.commands.ModCommand;
import alisolarflare.components.flairdoor.FlairDoorComponent;
public class SetProximityLocation extends ModCommand{
private FlairDoorComponent component;
public SetProximityLocation(FlairDoorComponent flairDoorComponent) {
this.component = flairDoorComponent;
}
@Override
public boolean OnCommand(Player player, String alias, String[] args) {
if (args.length < 1){
@ -24,11 +17,11 @@ public class SetProximityLocation extends ModCommand{
switch(firstChar){
case "s":
case "0":
component.startLocation = player.getLocation();
PlayerProximityLoop.setStartLocation(player.getLocation());
return true;
case "e":
case "1":
component.endLocation = player.getLocation();
PlayerProximityLoop.setEndLocation(player.getLocation());
return true;
default:
player.sendMessage("You must provide a vaild argument!");