Search in sources :

Example 1 with Fuel

use of me.legofreak107.vehicles.objects.Fuel in project VehiclesPlus2.0 by legofreak107.

the class Main method enable.

public void enable() {
    if (getCustomFuelConfig().contains("Fuel")) {
        for (String s : getCustomFuelConfig().getConfigurationSection("Fuel").getKeys(false)) {
            Fuel f = new Fuel();
            f.name = s;
            f.loadData(this);
            fuelTypes.add(f);
        }
    }
    Main pl = this;
    Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable() {

        public void run() {
            if (getConfig().contains("Vehicles")) {
                for (String s : getConfig().getConfigurationSection("Vehicles").getKeys(false)) {
                    Vehicle v = sal.loadVehicles(s);
                    v.plugin = pl;
                    vehicleTypeList.add(v);
                }
            }
            for (Player p : Bukkit.getOnlinePlayers()) {
                if (getCustomPlayerConfig("saved/" + p.getName() + ".yml", p).contains("SavedVehicles")) {
                    p.sendMessage("�2Loading in vehicles...");
                    for (String s2 : getCustomPlayerConfig("saved/" + p.getName() + ".yml", p).getConfigurationSection("SavedVehicles." + p.getName()).getKeys(false)) {
                        if (getCustomPlayerConfig("saved/" + p.getName() + ".yml", p).contains("SavedVehicles." + p.getName() + "." + s2 + ".forwardspeed")) {
                            Vehicle v = new Vehicle();
                            v.plugin = pl;
                            v.owner = p.getName();
                            if (checkInt(s2.replace("id", ""))) {
                                v.id = Integer.parseInt(s2.replace("id", ""));
                            }
                            v.loadVehicle();
                        }
                    }
                    p.sendMessage("�2Done!");
                }
            }
        }
    }, 40L);
}
Also used : PacketPlayInSteerVehicle(net.minecraft.server.v1_12_R1.PacketPlayInSteerVehicle) Vehicle(me.legofreak107.vehicles.objects.Vehicle) VPPlayer(me.legofreak107.vehicles.objects.VPPlayer) Player(org.bukkit.entity.Player) Fuel(me.legofreak107.vehicles.objects.Fuel)

Example 2 with Fuel

use of me.legofreak107.vehicles.objects.Fuel in project VehiclesPlus2.0 by legofreak107.

the class Main method onCommand.

@SuppressWarnings({ "deprecation" })
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    if (cmd.getName().equalsIgnoreCase("vp")) {
        if (args.length > 0) {
            if (args[0].equalsIgnoreCase("add")) {
                if (sender.hasPermission("vp.add")) {
                    if (args.length == 14) {
                        // vp add <name> <forwardspeed> <backwardspeed> <acceleration> <turnspeed> <seatamount>
                        if (checkFloat(args[2]) && checkFloat(args[3]) && checkFloat(args[4]) && checkFloat(args[5]) && checkInt(args[6]) && checkFloat(args[7]) && checkFloat(args[8]) && checkInt(args[10]) && checkInt(args[11]) && checkInt(args[12])) {
                            Fuel f = getFuel(args[13]);
                            if (isValidType(args[9])) {
                                if (f != null) {
                                    if (((Player) sender).getInventory().getItemInMainHand().getType() != null && ((Player) sender).getInventory().getItemInMainHand().getType() != Material.AIR) {
                                        Vehicle v = new Vehicle();
                                        v.plugin = this;
                                        v.name = args[1];
                                        v.type = getType(args[9]);
                                        v.skin = ((Player) sender).getInventory().getItemInMainHand();
                                        v.fspeed = Float.parseFloat(args[2]);
                                        v.bspeed = Float.parseFloat(args[3]);
                                        v.acceleration = Float.parseFloat(args[4]);
                                        v.turnSpeed = Float.parseFloat(args[5]);
                                        v.maxFuel = Float.parseFloat(args[7]);
                                        v.fualUsage = Float.parseFloat(args[8]);
                                        v.price = Integer.parseInt(args[10]);
                                        v.maxHealth = Integer.parseInt(args[12]);
                                        v.fuelType = f;
                                        Inventory inv = Bukkit.createInventory(null, Integer.parseInt(args[11]), "�2" + v.name);
                                        v.inv = inv;
                                        ArrayList<Seat> si = new ArrayList<Seat>();
                                        for (int i = 0; i < Integer.parseInt(args[6]); i++) {
                                            Seat s = new Seat();
                                            if (i == 0) {
                                                s.steer = true;
                                            } else {
                                                s.steer = false;
                                            }
                                            s.offset = new Vector(0, 0, 0);
                                            si.add(s);
                                        }
                                        v.seats = si;
                                        sal.addVehicle(v);
                                        vehicleTypeList.add(v);
                                        sender.sendMessage("�2Vehicle added!");
                                    } else {
                                        sender.sendMessage("�cMake sure that you are holding an item when you set up a car!");
                                    }
                                } else {
                                    sender.sendMessage("�cThis is not a valid fuel type, please type /vp fuel list for a list of fuels.");
                                }
                            } else {
                                sender.sendMessage("�cThis is not a valid type, please use: Car, Plane, Bike or Helicopter.");
                            }
                        } else {
                            sender.sendMessage("�cError in command syntax, usage: /vp add <@name> <%forwardspeed> <%backwardspeed> <%acceleration> <%turnspeed> <&seatamount> <%maxfuel> <%fuelusage> <@type> <&price> <&trunksize> <&health> <@fuelType>");
                            sender.sendMessage("�cInput types for @ = Text, % = Decimal, & = Number");
                        }
                    } else {
                        sender.sendMessage("�cError in command syntax, usage: /vp add <@name> <%forwardspeed> <%backwardspeed> <%acceleration> <%turnspeed> <&seatamount> <%maxfuel> <%fuelusage> <@type> <&price> <&trunksize> <&health> <@fuelType>");
                        sender.sendMessage("�cInput types for @ = Text, % = Decimal, & = Number");
                    }
                } else {
                    sender.sendMessage("�cYou don't have permissions to excecute this command!");
                }
            } else if (args[0].equalsIgnoreCase("seatpos")) {
                if (sender.hasPermission("vp.add")) {
                    if (args.length == 6) {
                        // vp seatpos <name> <seatno> <x> <y> <z>
                        if (isValidVehicle(args[1])) {
                            if (checkInt(args[2]) && checkFloat(args[3]) && checkFloat(args[4]) && checkFloat(args[5])) {
                                float x = Float.parseFloat(args[3]);
                                float y = Float.parseFloat(args[4]);
                                float z = Float.parseFloat(args[5]);
                                Integer no = Integer.parseInt(args[2]);
                                String name = args[1];
                                Vehicle v = getVehicle(name);
                                if (no <= v.seats.size() && no > -1) {
                                    getConfig().set("Vehicles." + name + ".seat" + no + ".offsetX", x);
                                    getConfig().set("Vehicles." + name + ".seat" + no + ".offsetY", y);
                                    getConfig().set("Vehicles." + name + ".seat" + no + ".offsetZ", z);
                                    saveConfig();
                                    sender.sendMessage("�2Pos changed");
                                } else {
                                    sender.sendMessage("�cInvalid seat number!");
                                }
                            } else {
                                sender.sendMessage("�cError in command syntax, usage: /vp seatpos <@name> <&seats> <%x> <%y> <%z>");
                                sender.sendMessage("�cInput types for @ = Text, % = Decimal, & = Number");
                            }
                        } else {
                            sender.sendMessage("�cInvalid vehicle name");
                        }
                    } else {
                        sender.sendMessage("�cNot enough arguments.");
                        sender.sendMessage("�cError in command syntax, usage: /vp seatpos <@name> <&seats> <%x> <%y> <%z>");
                    }
                } else {
                    sender.sendMessage("�cYou don't have permissions to excecute this command!");
                }
            } else if (args[0].equalsIgnoreCase("spawn")) {
                if (sender.hasPermission("vp.spawn")) {
                    if (args.length == 2) {
                        // vp spawn <name>
                        if (isValidVehicle(args[1])) {
                            Vehicle v = getVehicle(args[1]);
                            v.owner = sender.getName();
                            v.fuel = 25;
                            VPPlayer pla = new VPPlayer();
                            pla.p = ((Player) sender);
                            v.p = pla;
                            v.spawnLoc = ((Player) sender).getLocation();
                            v.spawn();
                            sender.sendMessage("�2Vehicle spawned!");
                        } else {
                            sender.sendMessage("�cThis is not a valid vehicle, try /vp list for a list of vehicles.");
                        }
                    } else {
                        sender.sendMessage("�cError in command arguments. Usage: /vp spawn <name>");
                    }
                } else {
                    sender.sendMessage("�cYou don't have permissions to excecute this command!");
                }
            } else if (args[0].equalsIgnoreCase("reset")) {
                if (sender.hasPermission("vp.reset")) {
                    // vp spawn <name>
                    for (Vehicle v : playerVehicles.get(sender)) {
                        if (v.holder != null) {
                            ((Player) sender).getInventory().removeItem(keys.get(v));
                            v.remove();
                            v.holder.remove();
                            v.holder = null;
                        }
                    }
                    sender.sendMessage("�2All your cars are now back in your garage!");
                } else {
                    sender.sendMessage("�cYou don't have permissions to excecute this command!");
                }
            } else if (args[0].equalsIgnoreCase("license")) {
                if (sender.hasPermission("vp.license")) {
                    // vp spawn <name>
                    Player p = ((Player) sender);
                    for (Entity e : p.getWorld().getNearbyEntities(p.getLocation(), 2, 2, 2)) {
                        if (e instanceof ArmorStand) {
                            if (vehicleInfo.containsKey(e)) {
                                Vehicle c = vehicleInfo.get(e);
                                sender.sendMessage("�8===========================================");
                                sender.sendMessage("�6Vehicle info:");
                                sender.sendMessage("�6");
                                sender.sendMessage("�6Owner: " + c.owner);
                                sender.sendMessage("�6Type: " + c.type);
                                sender.sendMessage("�6Health: " + c.getHealth());
                                sender.sendMessage("�8===========================================");
                                break;
                            }
                        }
                    }
                } else {
                    sender.sendMessage("�cYou don't have permissions to excecute this command!");
                }
            } else if (args[0].equalsIgnoreCase("list")) {
                if (sender.hasPermission("vp.list")) {
                    if (args.length == 1) {
                        sender.sendMessage("�2Available vehicles:");
                        for (Vehicle v : vehicleTypeList) {
                            sender.sendMessage("�3" + v.name + " �6|| �3" + v.type);
                        }
                    }
                } else {
                    sender.sendMessage("�cYou don't have permissions to excecute this command!");
                }
            } else if (args[0].equalsIgnoreCase("reload")) {
                if (sender.hasPermission("vp.reload")) {
                    if (args.length == 1) {
                        disabe();
                        enable();
                    }
                } else {
                    sender.sendMessage("�cYou don't have permissions to excecute this command!");
                }
            } else if (args[0].equalsIgnoreCase("info")) {
                if (sender.hasPermission("vp.info")) {
                    if (args.length == 2) {
                        if (isValidVehicle(args[1])) {
                            Vehicle v = getVehicle(args[1]);
                            sender.sendMessage("�2Vehicle info:");
                            sender.sendMessage("�3Forward speed: " + v.fspeed);
                            sender.sendMessage("�3Backward speed: " + v.bspeed);
                            sender.sendMessage("�3Acceleration: " + v.acceleration);
                            sender.sendMessage("�3Turn speed: " + v.turnSpeed);
                            sender.sendMessage("�3Seats: " + v.seats.size());
                            sender.sendMessage("�3Item: " + v.skin.getType().toString());
                            sender.sendMessage("�3ItemData: " + v.skin.getData());
                            sender.sendMessage("�3Price: " + v.price);
                        }
                    } else {
                        sender.sendMessage("�cError in command arguments. Usage: /vp info <name>");
                    }
                } else {
                    sender.sendMessage("�cYou don't have permissions to excecute this command!");
                }
            } else if (args[0].equalsIgnoreCase("setskin")) {
                if (sender.hasPermission("vp.add")) {
                    if (args.length == 2) {
                        if (isValidVehicle(args[1])) {
                            Vehicle v = getVehicle(args[1]);
                            if (((Player) sender).getInventory().getItemInMainHand() != null && ((Player) sender).getInventory().getItemInMainHand().getType() != Material.AIR) {
                                getConfig().set("Vehicles." + v.name + ".skin.material", ((Player) sender).getInventory().getItemInMainHand().getType().getId());
                                getConfig().set("Vehicles." + v.name + ".skin.data", ((Player) sender).getInventory().getItemInMainHand().getData().getData());
                                saveConfig();
                                sender.sendMessage("�2Updated vehicle skin");
                            } else {
                                sender.sendMessage("�cPlease make sure you are holding an item in your hand");
                            }
                        } else {
                            sender.sendMessage("�cThis is not a valid vehicle, try /vp list for a list of vehicles.");
                        }
                    } else {
                        sender.sendMessage("�cError in command arguments. Usage: /vp setskin <name>");
                    }
                } else {
                    sender.sendMessage("�cYou don't have permissions to excecute this command!");
                }
            } else if (args[0].equalsIgnoreCase("give")) {
                if (sender.hasPermission("vp.give")) {
                    if (args.length == 3) {
                        Player p = Bukkit.getPlayer(args[1]);
                        if (p != null && isValidVehicle(args[2])) {
                            Vehicle v = getVehicle(args[2]);
                            ItemStack item = v.skin;
                            ItemMeta im = item.getItemMeta();
                            im.setDisplayName("�2" + v.name);
                            im.setLore(Arrays.asList("�8Place to spawn"));
                            item.setItemMeta(im);
                            p.getInventory().addItem(item);
                        } else {
                            sender.sendMessage("�cError in command arguments. Usage: /vp give <player> <name>");
                        }
                    } else {
                        sender.sendMessage("�cError in command arguments. Usage: /vp give <player> <name>");
                    }
                } else {
                    sender.sendMessage("�cYou don't have permissions to excecute this command!");
                }
            } else if (args[0].equalsIgnoreCase("givekey")) {
                if (sender.hasPermission("vp.givekey")) {
                    if (args.length == 3) {
                        Player p = Bukkit.getPlayer(args[1]);
                        if (p != null && isValidVehicle(args[2])) {
                            Vehicle v = getVehicle(args[2]);
                            ItemStack item = new ItemStack(Material.TRIPWIRE_HOOK);
                            ItemMeta im = item.getItemMeta();
                            im.setDisplayName("�2" + v.name + " key");
                            im.setLore(Arrays.asList("�8Press your vp to lock/unlock "));
                            item.setItemMeta(im);
                            p.getInventory().addItem(item);
                        } else {
                            sender.sendMessage("�cError in command arguments. Usage: /vp givekey <player> <name>");
                        }
                    } else {
                        sender.sendMessage("�cError in command arguments. Usage: /vp givekey <player> <name>");
                    }
                } else {
                    sender.sendMessage("�cYou don't have permissions to excecute this command!");
                }
            } else if (args[0].equalsIgnoreCase("givewrench")) {
                if (sender.hasPermission("vp.givewrench")) {
                    if (args.length == 2) {
                        Player p = Bukkit.getPlayer(args[1]);
                        if (p != null) {
                            ItemStack item = new ItemStack(Material.STICK);
                            ItemMeta im = item.getItemMeta();
                            im.setDisplayName("�2Wrench");
                            im.setLore(Arrays.asList("�8Press you vehicle to upgrade/repair"));
                            item.setItemMeta(im);
                            p.getInventory().addItem(item);
                        } else {
                            sender.sendMessage("�cError in command arguments. Usage: /vp givewrench <player>");
                        }
                    } else {
                        sender.sendMessage("�cError in command arguments. Usage: /vp givewrench <player>");
                    }
                } else {
                    sender.sendMessage("�cYou don't have permissions to excecute this command!");
                }
            } else if (args[0].equalsIgnoreCase("fuel")) {
                if (args.length > 1) {
                    if (sender.hasPermission("vp.fuel")) {
                        if (args[1].equalsIgnoreCase("list")) {
                            sender.sendMessage("�8=========================================");
                            for (Fuel f : fuelTypes) {
                                sender.sendMessage("    �6" + f.name + " �8| �6$" + f.fuelPrice + " �8| �6Fills: " + f.fuelAmount);
                            }
                            sender.sendMessage("�8=========================================");
                        } else if (args[1].equalsIgnoreCase("give")) {
                            if (args.length == 5) {
                                Player p = Bukkit.getPlayer(args[2]);
                                Fuel f = getFuel(args[3]);
                                if (p != null && checkInt(args[4]) && f != null) {
                                    Integer v = Integer.parseInt(args[4]);
                                    for (int i = 0; i < v; i++) f.give(p);
                                } else {
                                    sender.sendMessage("�cError in command arguments. Usage: /vp fuel give <player> <fuel> <amount>");
                                }
                            } else {
                                sender.sendMessage("�cError in command arguments. Usage: /vp fuel give <player> <fuel> <amount>");
                            }
                        } else if (args[1].equalsIgnoreCase("add")) {
                            if (args.length == 5) {
                                // vp addfuel <name> <price> <amount>
                                if (checkInt(args[3]) && checkInt(args[4])) {
                                    if (((Player) sender).getInventory().getItemInMainHand() != null && ((Player) sender).getInventory().getItemInMainHand().getType() != Material.AIR) {
                                        Fuel f = new Fuel();
                                        f.fuelAmount = Integer.parseInt(args[4]);
                                        f.fuelPrice = Integer.parseInt(args[3]);
                                        f.name = args[2];
                                        f.item = ((Player) sender).getInventory().getItemInMainHand();
                                        f.save(this);
                                        fuelTypes.add(f);
                                        sender.sendMessage("�2Fuel added!");
                                    } else {
                                        sender.sendMessage("�cPlease make sure that you are holding an item in your hand!");
                                    }
                                } else {
                                    sender.sendMessage("�cError in command syntax, usage: /vp fuel add <@name> <&price> <&fuelamount>");
                                    sender.sendMessage("�cInput types for @ = Text, % = Decimal, & = Number");
                                }
                            } else {
                                sender.sendMessage("�cError in command syntax, usage: /vp fuel add <@name> <&price> <&fuelamount>");
                                sender.sendMessage("�cInput types for @ = Text, % = Decimal, & = Number");
                            }
                        }
                    } else {
                        sender.sendMessage("�cYou don't have permissions to perform this command!");
                    }
                } else {
                    sender.sendMessage("�8=====================================================");
                    sender.sendMessage("�6/vp fuel list �8| �6Shows a list of fuels");
                    sender.sendMessage("�6/vp fuel give <player> <fuel> <amount> �8| �6Give fuel to a player");
                    sender.sendMessage("�6/vp fuel add <name> <price> <fillamount> �8| �6Add a new fuel type");
                    sender.sendMessage("�8=====================================================");
                }
            } else if (args[0].equalsIgnoreCase("lock")) {
                if (args.length == 1) {
                    Player p = (Player) sender;
                    if (p.getVehicle() != null) {
                        Seat s = seatInfo.get(p.getVehicle());
                        Vehicle v = vehicleInfo.get(s.parent);
                        if (s.steer) {
                            if (v.owner.equals(p.getName())) {
                                v.locked = true;
                                p.sendMessage("�2Vehicle locked!");
                            } else {
                                p.sendMessage("�2You aren't the owner of this vp!");
                            }
                        } else {
                            p.sendMessage("�2You have to be in the driver's seat to do this!");
                        }
                    } else {
                        p.sendMessage("�2You have to be inside the vp to lock it!");
                    }
                }
            } else if (args[0].equalsIgnoreCase("enter")) {
                if (args.length == 1) {
                    Player p = (Player) sender;
                    for (Entity e : p.getWorld().getNearbyEntities(p.getLocation(), 2, 2, 2)) {
                        if (e instanceof ArmorStand) {
                            if (seatInfo.containsKey(e)) {
                                Seat s = seatInfo.get(e);
                                Vehicle c = vehicleInfo.get(s.parent);
                                if (c.locked == null) {
                                    c.locked = false;
                                }
                                if (!c.locked && !(s.seat.getPassengers().size() > 0)) {
                                    s.seat.addPassenger(p);
                                    break;
                                }
                            }
                        }
                    }
                }
            } else if (args[0].equalsIgnoreCase("trunk")) {
                if (args.length == 1) {
                    Player p = (Player) sender;
                    if (p.getVehicle() != null) {
                        Seat s = seatInfo.get(p.getVehicle());
                        Vehicle v = vehicleInfo.get(s.parent);
                        if (s.steer) {
                            p.openInventory(v.inv);
                        } else {
                            p.sendMessage("�2You have to be in the driver's seat to do this!");
                        }
                    } else {
                        p.sendMessage("�2You have to be inside the vp to use the trunk!");
                    }
                }
            } else if (args[0].equalsIgnoreCase("unlock")) {
                if (args.length == 1) {
                    Player p = (Player) sender;
                    if (p.getVehicle() != null) {
                        Seat s = seatInfo.get(p.getVehicle());
                        Vehicle v = vehicleInfo.get(s.parent);
                        if (s.steer) {
                            if (v.owner.equals(p.getName())) {
                                v.locked = false;
                                p.sendMessage("�2Vehicle unlocked!");
                            } else {
                                p.sendMessage("�2You aren't the owner of this vp!");
                            }
                        } else {
                            p.sendMessage("�2You have to be in the driver's seat to do this!");
                        }
                    } else {
                        p.sendMessage("�2You have to be inside the vp to unlock it!");
                    }
                }
            } else if (args[0].equalsIgnoreCase("shop")) {
                if (args.length == 1) {
                    Player p = (Player) sender;
                    Inventory i = Bukkit.createInventory(p, 9 * 6, "�2Vehicle shop");
                    for (Vehicle v : vehicleTypeList) {
                        if (v.price != 0) {
                            i.addItem(genItem(v.skin, 1, "�6" + v.name, "�aClick to buy@�3Price: " + v.price));
                        }
                    }
                    p.openInventory(i);
                }
            } else if (args[0].equalsIgnoreCase("garage")) {
                if (sender.hasPermission("vp.garage")) {
                    if (args.length == 1) {
                        Player p = (Player) sender;
                        openGarage(p, 0, p);
                    } else if (args.length == 2) {
                        Player p = (Player) sender;
                        Player p2 = Bukkit.getPlayer(args[1]);
                        if (sender.hasPermission("vp.admin")) {
                            if (playerVehicles.containsKey(p2) && p2 != null) {
                                openGarage(p2, 0, p);
                            } else {
                                p.sendMessage("�cThat player is not online");
                            }
                        } else {
                            sender.sendMessage("�cYou don't have permissions to do this!");
                        }
                    }
                } else {
                    sender.sendMessage("�cYou don't have permissions to do this!");
                }
            } else if (args[0].equalsIgnoreCase("help")) {
                if (sender.hasPermission("vp.help")) {
                    if (args.length == 1) {
                        sender.sendMessage("�2===================={�8Vehicles�6+�2}====================");
                        sender.sendMessage("�8/vp list �6|| �8Shows all vehicles");
                        sender.sendMessage("�8/vp give <name> <vehiclename>�6|| �8Gives vehicle.");
                        sender.sendMessage("�8/vp givekey <name> <vehiclename>�6|| �8Gives vehicle.");
                        sender.sendMessage("�8/vp reload �6|| �8Reloads config.");
                        sender.sendMessage("�8/vp help �6|| �8Shows this");
                        sender.sendMessage("�8/vp killall �6|| �8Kills all vehicles");
                        sender.sendMessage("�8/vp seatpos <name> <seat#> <x> <y> <z> �6|| �8Set the pos of a seat");
                        sender.sendMessage("�8/vp add <name> <forwardspeed> <backwardspeed> <acceleration> <turnspeed> <seatamount> <type> �6|| �8Add a new vehicle");
                        sender.sendMessage("�8/vp setskin <name> �6|| �8Set the skin to item in hand");
                        sender.sendMessage("�8/vp spawn <name> �6|| �8Spawn a vehicle");
                        sender.sendMessage("�8/vp info <name> �6|| �8Shows vehicle info");
                        sender.sendMessage("�8/vp fuel �6|| �8Fuel management");
                        sender.sendMessage("�8/vp givewrench <name> �6|| �8Gives fuel");
                        sender.sendMessage("�8/vp lock�6|| �8Locks vehicle");
                        sender.sendMessage("�8/vp unlock�6|| �8Unlocks vehicle");
                        sender.sendMessage("�8/vp trunk�6|| �8Opens vehicle trunk");
                        sender.sendMessage("�8/vp garage�6|| �8Opens vehicle garage");
                        sender.sendMessage("�8/vp garage <player>�6|| �8Opens vehicle garage (Admin mode)");
                        sender.sendMessage("�8/vp enter �6|| �8Enter the nearest seat within 2 blocks");
                        sender.sendMessage("�2===================={�8Vehicles�6+�2}====================");
                    } else {
                        sender.sendMessage("�cError in command arguments. Usage: /vp help");
                    }
                } else {
                    sender.sendMessage("�cYou don't have permissions to excecute this command!");
                }
            }
        } else {
            if (sender.hasPermission("vp.add")) {
                sender.sendMessage("�2===================={�8Vehicles�6+�2}====================");
                sender.sendMessage("�8/vp list �6|| �8Shows all vehicles");
                sender.sendMessage("�8/vp give <name> <vehiclename>�6|| �8Gives vehicle.");
                sender.sendMessage("�8/vp givekey <name> <vehiclename>�6|| �8Gives vehicle.");
                sender.sendMessage("�8/vp reload �6|| �8Reloads config.");
                sender.sendMessage("�8/vp help �6|| �8Shows this");
                sender.sendMessage("�8/vp killall �6|| �8Kills all vehicles");
                sender.sendMessage("�8/vp seatpos <name> <seat#> <x> <y> <z> �6|| �8Set the pos of a seat");
                sender.sendMessage("�8/vp add <name> <forwardspeed> <backwardspeed> <acceleration> <turnspeed> <seatamount> <type> �6|| �8Add a new vehicle");
                sender.sendMessage("�8/vp setskin <name> �6|| �8Set the skin to item in hand");
                sender.sendMessage("�8/vp spawn <name> �6|| �8Spawn a vehicle");
                sender.sendMessage("�8/vp info <name> �6|| �8Shows vehicle info");
                sender.sendMessage("�8/vp fuel �6|| �8Fuel management");
                sender.sendMessage("�8/vp givewrench <name> �6|| �8Gives fuel");
                sender.sendMessage("�8/vp lock�6|| �8Locks vehicle");
                sender.sendMessage("�8/vp unlock�6|| �8Unlocks vehicle");
                sender.sendMessage("�8/vp trunk�6|| �8Opens vehicle trunk");
                sender.sendMessage("�8/vp garage�6|| �8Opens vehicle garage");
                sender.sendMessage("�8/vp garage <player>�6|| �8Opens vehicle garage (Admin mode)");
                sender.sendMessage("�8/vp enter �6|| �8Enter the nearest seat within 2 blocks");
                sender.sendMessage("�2===================={�8Vehicles�6+�2}====================");
            } else {
                sender.sendMessage("�cYou don't have permissions to excecute this command!");
            }
        }
    }
    return false;
}
Also used : VPPlayer(me.legofreak107.vehicles.objects.VPPlayer) Entity(org.bukkit.entity.Entity) PlayerInteractAtEntity(me.legofreak107.vehicles.events.PlayerInteractAtEntity) VPPlayer(me.legofreak107.vehicles.objects.VPPlayer) Player(org.bukkit.entity.Player) Seat(me.legofreak107.vehicles.objects.Seat) ArrayList(java.util.ArrayList) PacketPlayInSteerVehicle(net.minecraft.server.v1_12_R1.PacketPlayInSteerVehicle) Vehicle(me.legofreak107.vehicles.objects.Vehicle) CraftArmorStand(org.bukkit.craftbukkit.v1_12_R1.entity.CraftArmorStand) EntityArmorStand(net.minecraft.server.v1_12_R1.EntityArmorStand) ArmorStand(org.bukkit.entity.ArmorStand) Fuel(me.legofreak107.vehicles.objects.Fuel) ItemStack(org.bukkit.inventory.ItemStack) Vector(org.bukkit.util.Vector) Inventory(org.bukkit.inventory.Inventory) ItemMeta(org.bukkit.inventory.meta.ItemMeta)

Example 3 with Fuel

use of me.legofreak107.vehicles.objects.Fuel in project VehiclesPlus2.0 by legofreak107.

the class InventoryClick method onClick.

@EventHandler
public void onClick(InventoryClickEvent e) {
    Player p = (Player) e.getWhoClicked();
    if (e.getClickedInventory().getName().contains("Vehicle")) {
        e.setCancelled(true);
        Integer price = Integer.parseInt(e.getCurrentItem().getItemMeta().getLore().get(1).replace("�3Price: ", ""));
        if (plugin.econ.getBalance(p.getName()) >= price) {
            plugin.econ.withdrawPlayer(p, price);
            Vehicle v = plugin.getVehicle(e.getCurrentItem().getItemMeta().getDisplayName().replace("�6", ""));
            ItemStack item = v.skin;
            ItemMeta im = item.getItemMeta();
            im.setDisplayName("�2" + v.name);
            im.setLore(Arrays.asList("�8Place to spawn"));
            item.setItemMeta(im);
            p.getInventory().addItem(item);
            p.sendMessage("�6You bought a " + v.name + " for $" + v.price + "!");
        }
    } else if (e.getClickedInventory().getName().contains("garage")) {
        if (e.getAction() == InventoryAction.PICKUP_ALL) {
            Integer page = Integer.parseInt(e.getClickedInventory().getName().replace("�2" + p.getName() + "'s garage �6(Page: ", "").replace(")", ""));
            e.setCancelled(true);
            if (e.getCurrentItem().getItemMeta().getDisplayName().contains("�6")) {
                // Already spawned
                String number = "";
                if (plugin.checkInt(e.getCurrentItem().getItemMeta().getDisplayName().charAt(1) + "")) {
                    number = number + e.getCurrentItem().getItemMeta().getDisplayName().charAt(1);
                    if (plugin.checkInt(e.getCurrentItem().getItemMeta().getDisplayName().charAt(2) + "")) {
                        number = number + e.getCurrentItem().getItemMeta().getDisplayName().charAt(2);
                        if (plugin.checkInt(e.getCurrentItem().getItemMeta().getDisplayName().charAt(3) + "")) {
                            number = number + e.getCurrentItem().getItemMeta().getDisplayName().charAt(3);
                            if (plugin.checkInt(e.getCurrentItem().getItemMeta().getDisplayName().charAt(4) + "")) {
                                number = number + e.getCurrentItem().getItemMeta().getDisplayName().charAt(4);
                            }
                        }
                    }
                }
                Vehicle v = plugin.playerVehicles.get(p).get(Integer.parseInt(number));
                // Found it
                v.remove();
                if (v.holder != null) {
                    p.getInventory().removeItem(plugin.keys.get(v));
                    v.holder.remove();
                    v.holder = null;
                }
                p.closeInventory();
            } else if (e.getCurrentItem().getItemMeta().getDisplayName().contains("�a")) {
                // Ready to spawn
                String number = "";
                if (plugin.checkInt(e.getCurrentItem().getItemMeta().getDisplayName().charAt(1) + "")) {
                    number = number + e.getCurrentItem().getItemMeta().getDisplayName().charAt(1);
                    if (plugin.checkInt(e.getCurrentItem().getItemMeta().getDisplayName().charAt(2) + "")) {
                        number = number + e.getCurrentItem().getItemMeta().getDisplayName().charAt(2);
                        if (plugin.checkInt(e.getCurrentItem().getItemMeta().getDisplayName().charAt(3) + "")) {
                            number = number + e.getCurrentItem().getItemMeta().getDisplayName().charAt(3);
                            if (plugin.checkInt(e.getCurrentItem().getItemMeta().getDisplayName().charAt(4) + "")) {
                                number = number + e.getCurrentItem().getItemMeta().getDisplayName().charAt(4);
                            }
                        }
                    }
                }
                if (plugin.carsSpawned.containsKey(p)) {
                    if (plugin.carsSpawned.get(p) < plugin.maxCars) {
                        plugin.carsSpawned.put(p, plugin.carsSpawned.get(p) + 1);
                        Vehicle v = plugin.playerVehicles.get(p).get(Integer.parseInt(number));
                        // Found it
                        v.spawnLoc = e.getWhoClicked().getLocation();
                        ItemStack item = new ItemStack(Material.TRIPWIRE_HOOK);
                        ItemMeta im = item.getItemMeta();
                        im.setDisplayName("�2" + v.name + " key");
                        im.setLore(Arrays.asList("�8Press your vehicle to lock/unlock", "�6Soulbound"));
                        item.setItemMeta(im);
                        p.getInventory().addItem(item);
                        plugin.keys.put(v, item);
                        p.closeInventory();
                        v.spawn2();
                    } else {
                        p.sendMessage("�cYou already have the max amount of vehicles spawned!");
                    }
                } else {
                    plugin.carsSpawned.put(p, 1);
                    Vehicle v = plugin.playerVehicles.get(p).get(Integer.parseInt(number));
                    // Found it
                    v.spawnLoc = e.getWhoClicked().getLocation();
                    ItemStack item = new ItemStack(Material.TRIPWIRE_HOOK);
                    ItemMeta im = item.getItemMeta();
                    im.setDisplayName("�2" + v.name + " key");
                    im.setLore(Arrays.asList("�8Press your vehicle to lock/unlock", "�6Soulbound"));
                    item.setItemMeta(im);
                    p.getInventory().addItem(item);
                    plugin.keys.put(v, item);
                    p.closeInventory();
                    v.spawn2();
                }
            } else if (e.getCurrentItem().getItemMeta().getDisplayName().contains("�c")) {
                // Repair
                String number = "";
                if (plugin.checkInt(e.getCurrentItem().getItemMeta().getDisplayName().charAt(1) + "")) {
                    number = number + e.getCurrentItem().getItemMeta().getDisplayName().charAt(1);
                    if (plugin.checkInt(e.getCurrentItem().getItemMeta().getDisplayName().charAt(2) + "")) {
                        number = number + e.getCurrentItem().getItemMeta().getDisplayName().charAt(2);
                        if (plugin.checkInt(e.getCurrentItem().getItemMeta().getDisplayName().charAt(3) + "")) {
                            number = number + e.getCurrentItem().getItemMeta().getDisplayName().charAt(3);
                            if (plugin.checkInt(e.getCurrentItem().getItemMeta().getDisplayName().charAt(4) + "")) {
                                number = number + e.getCurrentItem().getItemMeta().getDisplayName().charAt(4);
                            }
                        }
                    }
                }
                Vehicle v = plugin.playerVehicles.get(p).get(Integer.parseInt(number));
                // Found it
                v.spawnLoc = e.getWhoClicked().getLocation();
                new Confirmation(p, new ConfirmCallback() {

                    public void callback(Player player, CallbackResponse response) {
                        // TODO Auto-generated method stub
                        if (response == CallbackResponse.YES) {
                            if (plugin.econ.getBalance(p) >= v.price / 100) {
                                p.sendMessage("�2Vehicle repaired!");
                                v.repair();
                                p.closeInventory();
                            } else {
                                p.sendMessage("�2You don't have enough money to repair this vehicle!");
                                p.closeInventory();
                            }
                        }
                    }
                }, this, "�2Repair vehicle for $" + v.price / 100);
            } else if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Next")) {
                plugin.openGarage(p, page + 1, p);
            } else if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Previous")) {
                if (page > 0) {
                    plugin.openGarage(p, page - 1, p);
                }
            }
        } else if (e.getAction() == InventoryAction.PICKUP_HALF) {
            if (p.hasPermission("vp.admin")) {
                if (e.getCurrentItem().getItemMeta().getDisplayName().contains("�c") || e.getCurrentItem().getItemMeta().getDisplayName().contains("�a") || e.getCurrentItem().getItemMeta().getDisplayName().contains("�6")) {
                    e.setCancelled(true);
                    String number = "";
                    if (plugin.checkInt(e.getCurrentItem().getItemMeta().getDisplayName().charAt(1) + "")) {
                        number = number + e.getCurrentItem().getItemMeta().getDisplayName().charAt(1);
                        if (plugin.checkInt(e.getCurrentItem().getItemMeta().getDisplayName().charAt(2) + "")) {
                            number = number + e.getCurrentItem().getItemMeta().getDisplayName().charAt(2);
                            if (plugin.checkInt(e.getCurrentItem().getItemMeta().getDisplayName().charAt(3) + "")) {
                                number = number + e.getCurrentItem().getItemMeta().getDisplayName().charAt(3);
                                if (plugin.checkInt(e.getCurrentItem().getItemMeta().getDisplayName().charAt(4) + "")) {
                                    number = number + e.getCurrentItem().getItemMeta().getDisplayName().charAt(4);
                                }
                            }
                        }
                    }
                    final String number2 = number;
                    if (e.getCurrentItem().getItemMeta().getDisplayName().contains("�c")) {
                        new Confirmation(p, new ConfirmCallback() {

                            public void callback(Player player, CallbackResponse response) {
                                // TODO Auto-generated method stub
                                if (response == CallbackResponse.YES) {
                                    if (p.hasPermission("vp.admin")) {
                                        Vehicle v = plugin.playerVehicles.get(p).get(Integer.parseInt(number2));
                                        plugin.playerVehicles.get(p).remove(v);
                                        p.sendMessage("�2Vehicle removed");
                                    }
                                }
                            }
                        }, this, "�2Remove this vehicle?");
                    } else if (e.getCurrentItem().getItemMeta().getDisplayName().contains("�a")) {
                        new Confirmation(p, new ConfirmCallback() {

                            public void callback(Player player, CallbackResponse response) {
                                // TODO Auto-generated method stub
                                if (response == CallbackResponse.YES) {
                                    if (p.hasPermission("vp.admin")) {
                                        Vehicle v = plugin.playerVehicles.get(p).get(Integer.parseInt(number2));
                                        plugin.playerVehicles.get(p).remove(v);
                                        p.sendMessage("�2Vehicle removed");
                                    }
                                }
                            }
                        }, this, "�2Remove this vehicle?");
                    } else if (e.getCurrentItem().getItemMeta().getDisplayName().contains("�6")) {
                        new Confirmation(p, new ConfirmCallback() {

                            public void callback(Player player, CallbackResponse response) {
                                // TODO Auto-generated method stub
                                if (response == CallbackResponse.YES) {
                                    if (p.hasPermission("vp.admin")) {
                                        Vehicle v = plugin.playerVehicles.get(p).get(Integer.parseInt(number2));
                                        plugin.playerVehicles.get(p).remove(v);
                                        p.sendMessage("�2Vehicle removed");
                                        v.remove();
                                    }
                                }
                            }
                        }, this, "�2Remove this vehicle?");
                    }
                }
            }
        }
    } else if (e.getClickedInventory().getName().contains("Upgrade menu")) {
        e.setCancelled(true);
        if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Engine") && !e.getCurrentItem().getItemMeta().getLore().get(0).contains("�c")) {
            if (plugin.upgrading.containsKey(p)) {
                Vehicle v = plugin.upgrading.get(p);
                Player owner = v.p.p;
                Integer tier = v.engineTier;
                Integer price = 0;
                Double toadd = 0D;
                if (tier == 0) {
                    price = 15000;
                    toadd = 0.5;
                    v.engineTier = 1;
                } else if (tier == 1) {
                    price = 30000;
                    toadd = 0.5;
                    v.engineTier = 2;
                } else if (tier == 2) {
                    price = 45000;
                    toadd = 0.5;
                    v.engineTier = 3;
                } else if (tier == 3) {
                    price = 60000;
                    toadd = 0.5;
                    v.engineTier = 4;
                }
                Integer percentage = (int) (0.5 / v.fspeed * 100);
                final int price2 = price;
                final Double toadd2 = toadd;
                new Confirmation(owner, new ConfirmCallback() {

                    public void callback(Player player, CallbackResponse response) {
                        // TODO Auto-generated method stub
                        if (response == CallbackResponse.YES) {
                            if (plugin.econ.getBalance(owner) >= price2) {
                                plugin.econ.withdrawPlayer(owner, price2);
                                owner.sendMessage("�2Upgrade confirmed! It should be installed in a couple of splugin.econds!");
                                v.fspeed += toadd2;
                                v.bspeed += toadd2;
                            } else {
                                owner.sendMessage("�2You don't have enough money!");
                            }
                        }
                    }
                }, this, "�2Engine upgrade �6$" + price + " �a+" + percentage + "%");
            }
        } else if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Gearbox") && !e.getCurrentItem().getItemMeta().getLore().get(0).contains("�c")) {
            if (plugin.upgrading.containsKey(p)) {
                Vehicle v = plugin.upgrading.get(p);
                Player owner = v.p.p;
                Integer price = 0;
                Double toadd = 0D;
                Integer tier = v.accelerationTier;
                if (tier == 0) {
                    price = 15000;
                    toadd = 0.005;
                    v.accelerationTier = 1;
                } else if (tier == 1) {
                    price = 30000;
                    toadd = 0.005;
                    v.accelerationTier = 2;
                } else if (tier == 2) {
                    price = 45000;
                    toadd = 0.005;
                    v.accelerationTier = 3;
                } else if (tier == 3) {
                    price = 60000;
                    toadd = 0.005;
                    v.accelerationTier = 4;
                }
                final int price2 = price;
                final Double toadd2 = toadd;
                Integer percentage = (int) (0.01 / v.acceleration * 100);
                new Confirmation(owner, new ConfirmCallback() {

                    public void callback(Player player, CallbackResponse response) {
                        if (response == CallbackResponse.YES) {
                            if (plugin.econ.getBalance(owner) >= price2) {
                                plugin.econ.withdrawPlayer(owner, price2);
                                owner.sendMessage("�2Upgrade confirmed! It should be installed in a couple of splugin.econds!");
                                v.acceleration += toadd2;
                            } else {
                                owner.sendMessage("�2You don't have enough money!");
                            }
                        }
                    }
                }, this, "�2Acceleration upgrade �6$" + price + " �a+" + percentage + "%");
            }
        } else if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Fuel") && !e.getCurrentItem().getItemMeta().getLore().get(0).contains("�c")) {
            if (plugin.upgrading.containsKey(p)) {
                Vehicle v = plugin.upgrading.get(p);
                Player owner = v.p.p;
                Integer price = 0;
                Double toadd = 0D;
                Integer tier = v.fuelTier;
                if (tier == 0) {
                    price = 15000;
                    toadd = 50D;
                    v.fuelTier = 1;
                } else if (tier == 1) {
                    price = 30000;
                    toadd = 50D;
                    v.fuelTier = 2;
                } else if (tier == 2) {
                    price = 45000;
                    toadd = 50D;
                    v.fuelTier = 3;
                } else if (tier == 3) {
                    price = 60000;
                    toadd = 50D;
                    v.fuelTier = 4;
                }
                final int price2 = price;
                final Double toadd2 = toadd;
                Integer percentage = (int) (50 / v.maxFuel * 100);
                new Confirmation(owner, new ConfirmCallback() {

                    public void callback(Player player, CallbackResponse response) {
                        // TODO Auto-generated method stub
                        if (response == CallbackResponse.YES) {
                            if (plugin.econ.getBalance(owner) >= price2) {
                                plugin.econ.withdrawPlayer(owner, price2);
                                owner.sendMessage("�2Upgrade confirmed! It should be installed in a couple of splugin.econds!");
                                v.maxFuel += toadd2;
                            } else {
                                owner.sendMessage("�2You don't have enough money!");
                            }
                        }
                    }
                }, this, "�2Fuel upgrade �6$" + price + " �a+" + percentage + "%");
            }
        } else if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Steering") && !e.getCurrentItem().getItemMeta().getLore().get(0).contains("�c")) {
            if (plugin.upgrading.containsKey(p)) {
                Vehicle v = plugin.upgrading.get(p);
                Player owner = v.p.p;
                Integer price = 0;
                Double toadd = 0D;
                Integer tier = v.steeringTier;
                if (tier == 0) {
                    price = 15000;
                    toadd = 0.5D;
                    v.steeringTier = 1;
                } else if (tier == 1) {
                    price = 30000;
                    toadd = 0.5D;
                    v.steeringTier = 2;
                } else if (tier == 2) {
                    price = 45000;
                    toadd = 0.5D;
                    v.steeringTier = 3;
                } else if (tier == 3) {
                    price = 60000;
                    toadd = 0.5D;
                    v.steeringTier = 4;
                }
                final int price2 = price;
                final Double toadd2 = toadd;
                Integer percentage = (int) (0.5 / v.turnSpeed * 100);
                new Confirmation(owner, new ConfirmCallback() {

                    public void callback(Player player, CallbackResponse response) {
                        // TODO Auto-generated method stub
                        if (response == CallbackResponse.YES) {
                            if (plugin.econ.getBalance(owner) >= price2) {
                                plugin.econ.withdrawPlayer(owner, price2);
                                owner.sendMessage("�2Upgrade confirmed! It should be installed in a couple of splugin.econds!");
                                v.steering += toadd2;
                            } else {
                                owner.sendMessage("�2You don't have enough money!");
                            }
                        }
                    }
                }, this, "�2Steering upgrade �6$" + price + " �a+" + percentage + "%");
            }
        } else {
            p.sendMessage("�cThis part is already the highest tier!");
        }
    } else if (e.getClickedInventory().getName().contains("Select menu")) {
        e.setCancelled(true);
        if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Repair")) {
            if (plugin.select.containsKey(p)) {
                Vehicle v = plugin.select.get(p);
                plugin.openRepairMenu(p, v);
            }
        } else if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Upgrade")) {
            if (plugin.select.containsKey(p)) {
                Vehicle v = plugin.select.get(p);
                plugin.openUpgradeMenu(p, v);
            }
        }
    } else if (e.getClickedInventory().getName().contains("Repair menu")) {
        e.setCancelled(true);
        if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Engine")) {
            if (plugin.upgrading.containsKey(p)) {
                Vehicle v = plugin.upgrading.get(p);
                Player owner = v.p.p;
                Integer price = 2000;
                new Confirmation(owner, new ConfirmCallback() {

                    public void callback(Player player, CallbackResponse response) {
                        // TODO Auto-generated method stub
                        if (response == CallbackResponse.YES) {
                            if (plugin.econ.getBalance(owner) >= price) {
                                plugin.econ.withdrawPlayer(owner, price);
                                owner.sendMessage("�2Repair confirmed! The new engine should be installed in a couple of splugin.econds");
                                v.parts.ENGINE = true;
                            } else {
                                owner.sendMessage("�2You don't have enough money!");
                            }
                        }
                    }
                }, this, "�2Repair engine? Price: $" + price);
            }
        } else if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Wheel Front Right")) {
            if (plugin.upgrading.containsKey(p)) {
                Vehicle v = plugin.upgrading.get(p);
                Player owner = v.p.p;
                Integer price = 200;
                new Confirmation(owner, new ConfirmCallback() {

                    public void callback(Player player, CallbackResponse response) {
                        // TODO Auto-generated method stub
                        if (response == CallbackResponse.YES) {
                            if (plugin.econ.getBalance(owner) >= price) {
                                plugin.econ.withdrawPlayer(owner, price);
                                owner.sendMessage("�2Repair confirmed! The new tire should be installed in a couple of splugin.econds");
                                v.parts.WHEELFR = true;
                            } else {
                                owner.sendMessage("�2You don't have enough money!");
                            }
                        }
                    }
                }, this, "�2Replace tire? Price: $" + price);
            }
        } else if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Wheel Front Left")) {
            if (plugin.upgrading.containsKey(p)) {
                Vehicle v = plugin.upgrading.get(p);
                Player owner = v.p.p;
                Integer price = 200;
                new Confirmation(owner, new ConfirmCallback() {

                    public void callback(Player player, CallbackResponse response) {
                        // TODO Auto-generated method stub
                        if (response == CallbackResponse.YES) {
                            if (plugin.econ.getBalance(owner) >= price) {
                                plugin.econ.withdrawPlayer(owner, price);
                                owner.sendMessage("�2Repair confirmed! The new tire should be installed in a couple of splugin.econds");
                                v.parts.WHEELFL = true;
                            } else {
                                owner.sendMessage("�2You don't have enough money!");
                            }
                        }
                    }
                }, this, "�2Replace tire? Price: $" + price);
            }
        } else if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Wheel Rear Right")) {
            if (plugin.upgrading.containsKey(p)) {
                Vehicle v = plugin.upgrading.get(p);
                Player owner = v.p.p;
                Integer price = 200;
                new Confirmation(owner, new ConfirmCallback() {

                    public void callback(Player player, CallbackResponse response) {
                        // TODO Auto-generated method stub
                        if (response == CallbackResponse.YES) {
                            if (plugin.econ.getBalance(owner) >= price) {
                                plugin.econ.withdrawPlayer(owner, price);
                                owner.sendMessage("�2Repair confirmed! The new tire should be installed in a couple of splugin.econds");
                                v.parts.WHEELRR = true;
                            } else {
                                owner.sendMessage("�2You don't have enough money!");
                            }
                        }
                    }
                }, this, "�2Replace tire? Price: $" + price);
            }
        } else if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Wheel Rear Left")) {
            if (plugin.upgrading.containsKey(p)) {
                Vehicle v = plugin.upgrading.get(p);
                Player owner = v.p.p;
                Integer price = 200;
                new Confirmation(owner, new ConfirmCallback() {

                    public void callback(Player player, CallbackResponse response) {
                        // TODO Auto-generated method stub
                        if (response == CallbackResponse.YES) {
                            if (plugin.econ.getBalance(owner) >= price) {
                                plugin.econ.withdrawPlayer(owner, price);
                                owner.sendMessage("�2Repair confirmed! The new tire should be installed in a couple of splugin.econds");
                                v.parts.WHEELRL = true;
                            } else {
                                owner.sendMessage("�2You don't have enough money!");
                            }
                        }
                    }
                }, this, "�2Replace tire? Price: $" + price);
            }
        }
    }
}
Also used : Vehicle(me.legofreak107.vehicles.objects.Vehicle) Player(org.bukkit.entity.Player) ConfirmCallback(me.legofreak107.vehicles.libs.ConfirmCallback) CallbackResponse(me.legofreak107.vehicles.libs.ConfirmCallback.CallbackResponse) ItemStack(org.bukkit.inventory.ItemStack) Confirmation(me.legofreak107.vehicles.libs.Confirmation) ItemMeta(org.bukkit.inventory.meta.ItemMeta) EventHandler(org.bukkit.event.EventHandler)

Example 4 with Fuel

use of me.legofreak107.vehicles.objects.Fuel in project VehiclesPlus2.0 by legofreak107.

the class PlayerInteract method onSignClick.

@EventHandler
public void onSignClick(PlayerInteractEvent e) {
    if (e.getAction() == Action.RIGHT_CLICK_BLOCK) {
        if (e.getClickedBlock().getType() == Material.WALL_SIGN) {
            Sign s = (Sign) e.getClickedBlock().getState();
            if (s.getLine(0).contains("Gas")) {
                double price = Double.parseDouble(s.getLine(2).replace("�3$", ""));
                String fuel = s.getLine(1).replace("�2", "");
                Fuel f = plugin.getFuel(fuel);
                if (plugin.econ.getBalance(e.getPlayer()) >= price) {
                    plugin.econ.withdrawPlayer(e.getPlayer(), price);
                    e.getPlayer().sendMessage("�2You bought 1 " + f.name + " from the pump!");
                    e.getPlayer().sendMessage("�2Removed: $" + price);
                    f.give(e.getPlayer());
                } else {
                    e.getPlayer().sendMessage("�2You don't have enough money for this!");
                }
            } else if (s.getLine(0).contains("Garage")) {
                plugin.openGarage(e.getPlayer(), 1, e.getPlayer());
            }
        }
    }
}
Also used : Fuel(me.legofreak107.vehicles.objects.Fuel) Sign(org.bukkit.block.Sign) EventHandler(org.bukkit.event.EventHandler)

Example 5 with Fuel

use of me.legofreak107.vehicles.objects.Fuel in project VehiclesPlus2.0 by legofreak107.

the class Boat method Boat.

public static void Boat(PacketPlayInSteerVehicle ppisv, Player p) {
    ArmorStand a2 = (ArmorStand) p.getVehicle();
    a2.setGravity(false);
    Seat s = plugin.seatInfo.get(a2);
    ArmorStand a = (ArmorStand) s.parent;
    Vehicle v = plugin.vehicleInfo.get(a);
    v.holder.setGravity(false);
    if (p.getOpenInventory() != null && p.getOpenInventory() instanceof PlayerInventory) {
        p.openInventory(v.inv);
    }
    float forward = ppisv.b();
    float side = ppisv.a();
    if (v.fuelbar == null) {
        BossBar b = Bukkit.createBossBar("fuel" + v.owner, BarColor.GREEN, BarStyle.SOLID);
        v.fuelbar = b;
    }
    Location tloc = a2.getLocation().clone();
    Location smoke = tloc.add(tloc.getDirection().setY(0).normalize().multiply(-1.5));
    smoke.getWorld().spawnParticle(Particle.SMOKE_LARGE, smoke.getX(), smoke.getY() + 1, smoke.getZ(), 1, 0, 0, 0, 0);
    v.fuelbar.setTitle("Fuel: " + (int) (v.fuel / v.maxFuel * 100) + "%");
    v.fuelbar.setProgress((v.fuel / v.maxFuel));
    if (!v.parts.ENGINE) {
    } else {
        if (v.fuelbar.getPlayers().contains(p)) {
        } else {
            v.fuelbar.addPlayer(p);
            v.fuelbar.setVisible(true);
        }
        if (v.fuel <= 0.5) {
            v.fuelbar.setTitle("Out of fuel!");
        } else {
            v.fuel -= v.fualUsage / 2;
            if (forward > 0) {
                // Forward[W]
                int broken = randInt(0, 20000);
                int brokenEngine = randInt(0, 20000);
                if (brokenEngine == 0) {
                    v.parts.ENGINE = false;
                    p.getWorld().playSound(p.getLocation(), Sound.ENTITY_GENERIC_EXPLODE, 10, 10);
                    p.sendMessage("�2It looks like you have blown up your engine...");
                }
                v.fuel -= v.fualUsage / 2;
                if (v.curSpeed <= v.fspeed || v.curSpeed == 0) {
                    v.curSpeed = v.curSpeed += v.acceleration / 2;
                }
                Location fb = v.holder.getLocation().add(v.holder.getLocation().getDirection().setY(0).normalize().multiply(4));
                float z1 = (float) (fb.getZ() + (4 * Math.sin(Math.toRadians(fb.getYaw() + 90 * 0))));
                float x1 = (float) (fb.getX() + (4 * Math.cos(Math.toRadians(fb.getYaw() + 90 * 0))));
                float z2 = (float) (fb.getZ() + (-4 * Math.sin(Math.toRadians(fb.getYaw() + 90 * 0))));
                float x2 = (float) (fb.getX() + (-4 * Math.cos(Math.toRadians(fb.getYaw() + 90 * 0))));
                Location loc1 = new Location(fb.getWorld(), x1, fb.getY(), z1);
                Location loc2 = new Location(fb.getWorld(), x2, fb.getY(), z2);
                if (fb.getBlock().getType() == Material.STATIONARY_WATER) {
                    if (side > 0) {
                        // Side[A]
                        if (loc1.getBlock().getType() == Material.STATIONARY_WATER && loc2.getBlock().getType() == Material.STATIONARY_WATER) {
                            v.skinHolder.setHeadPose(new EulerAngle(0, 0, 170));
                            EntityArmorStand a1 = ((CraftArmorStand) a).getHandle();
                            Location loc = a.getLocation().clone();
                            loc.setYaw(loc.getYaw() + 90);
                            a1.setLocation(a.getLocation().getX(), a.getLocation().getY(), a.getLocation().getZ(), a.getLocation().getYaw() - v.turnSpeed, a.getLocation().getPitch());
                            a1.move(EnumMoveType.SELF, new Vector(loc.getDirection().multiply(0.5).getX(), 0, loc.getDirection().multiply(0.5).getZ()).multiply(v.curSpeed).getX(), new Vector(loc.getDirection().multiply(0.5).getX(), 0, loc.getDirection().multiply(0.5).getZ()).multiply(v.curSpeed).getY(), new Vector(loc.getDirection().multiply(0.5).getX(), 0, loc.getDirection().multiply(0.5).getZ()).multiply(v.curSpeed).getZ());
                            a1.move(EnumMoveType.SELF, new Vector(a.getLocation().getDirection().multiply(0.5).getX(), 0, a.getLocation().getDirection().multiply(0.5).getZ()).multiply(v.curSpeed).getX(), new Vector(a.getLocation().getDirection().multiply(0.5).getX(), 0, a.getLocation().getDirection().multiply(0.5).getZ()).multiply(v.curSpeed).getY(), new Vector(a.getLocation().getDirection().multiply(0.5).getX(), 0, a.getLocation().getDirection().multiply(0.5).getZ()).multiply(v.curSpeed).getZ());
                            v.steering = (int) (v.turnSpeed / 2);
                        }
                    } else if (side < 0) {
                        // Side[D]
                        if (loc1.getBlock().getType() == Material.STATIONARY_WATER && loc2.getBlock().getType() == Material.STATIONARY_WATER) {
                            v.skinHolder.setHeadPose(new EulerAngle(0, 0, -170));
                            EntityArmorStand a1 = ((CraftArmorStand) a).getHandle();
                            Location loc = a.getLocation().clone();
                            loc.setYaw(loc.getYaw() - 90);
                            a1.setLocation(a.getLocation().getX(), a.getLocation().getY(), a.getLocation().getZ(), a.getLocation().getYaw() + v.turnSpeed, a.getLocation().getPitch());
                            a1.move(EnumMoveType.SELF, new Vector(loc.getDirection().multiply(0.5).getX(), 0, loc.getDirection().multiply(0.5).getZ()).multiply(v.curSpeed).getX(), new Vector(loc.getDirection().multiply(0.5).getX(), 0, loc.getDirection().multiply(0.5).getZ()).multiply(v.curSpeed).getY(), new Vector(loc.getDirection().multiply(0.5).getX(), 0, loc.getDirection().multiply(0.5).getZ()).multiply(v.curSpeed).getZ());
                            a1.move(EnumMoveType.SELF, new Vector(a.getLocation().getDirection().multiply(0.5).getX(), 0, a.getLocation().getDirection().multiply(0.5).getZ()).multiply(v.curSpeed).getX(), new Vector(a.getLocation().getDirection().multiply(0.5).getX(), 0, a.getLocation().getDirection().multiply(0.5).getZ()).multiply(v.curSpeed).getY(), new Vector(a.getLocation().getDirection().multiply(0.5).getX(), 0, a.getLocation().getDirection().multiply(0.5).getZ()).multiply(v.curSpeed).getZ());
                            v.steering = -(int) (v.turnSpeed / 2);
                        }
                    } else {
                        v.steering = 0;
                        v.skinHolder.setHeadPose(new EulerAngle(0, 0, 0));
                        EntityArmorStand a1 = ((CraftArmorStand) a).getHandle();
                        a1.move(EnumMoveType.SELF, new Vector(a.getLocation().getDirection().multiply(0.5).getX(), 0, a.getLocation().getDirection().multiply(0.5).getZ()).multiply(v.curSpeed).getX(), new Vector(a.getLocation().getDirection().multiply(0.5).getX(), 0, a.getLocation().getDirection().multiply(0.5).getZ()).multiply(v.curSpeed).getY(), new Vector(a.getLocation().getDirection().multiply(0.5).getX(), 0, a.getLocation().getDirection().multiply(0.5).getZ()).multiply(v.curSpeed).getZ());
                    }
                } else {
                    v.curSpeed = 0;
                }
            } else if (forward < 0) {
                // Reverse[S]
                Location fb = v.holder.getLocation().add(v.holder.getLocation().getDirection().setY(0).normalize().multiply(-4));
                float z1 = (float) (fb.getZ() + (4 * Math.sin(Math.toRadians(fb.getYaw() + 90 * 0))));
                float x1 = (float) (fb.getX() + (4 * Math.cos(Math.toRadians(fb.getYaw() + 90 * 0))));
                float z2 = (float) (fb.getZ() + (-4 * Math.sin(Math.toRadians(fb.getYaw() + 90 * 0))));
                float x2 = (float) (fb.getX() + (-4 * Math.cos(Math.toRadians(fb.getYaw() + 90 * 0))));
                Location loc1 = new Location(fb.getWorld(), x1, fb.getY(), z1);
                Location loc2 = new Location(fb.getWorld(), x2, fb.getY(), z2);
                if (fb.getBlock().getType() == Material.STATIONARY_WATER) {
                    v.skinHolder.setHeadPose(new EulerAngle(0, 0, 0));
                    v.fuel -= v.fualUsage / 2;
                    Location loc3 = new Location(a.getWorld(), a.getLocation().getBlockX(), a.getLocation().getBlockY(), a.getLocation().getBlockZ() + 1);
                    Location loc4 = new Location(a.getWorld(), a.getLocation().getBlockX(), a.getLocation().getBlockY(), a.getLocation().getBlockZ() - 1);
                    Location loc5 = new Location(a.getWorld(), a.getLocation().getBlockX() - 1, a.getLocation().getBlockY(), a.getLocation().getBlockZ());
                    if (v.curSpeed >= -v.bspeed || v.curSpeed == 0) {
                        v.curSpeed = v.curSpeed -= v.acceleration * 2;
                    }
                    if ((loc1.getBlock().getType() != Material.AIR && loc1.getBlock().getType() != Material.LONG_GRASS && loc1.getBlock().getType() != Material.CHORUS_FLOWER && loc1.getBlock().getType() != Material.YELLOW_FLOWER && loc1.getBlock().getType() != Material.RED_ROSE && loc1.getBlock().getType() != Material.WHEAT) || (loc2.getBlock().getType() != Material.AIR && loc2.getBlock().getType() != Material.LONG_GRASS && loc2.getBlock().getType() != Material.CHORUS_FLOWER && loc2.getBlock().getType() != Material.YELLOW_FLOWER && loc2.getBlock().getType() != Material.RED_ROSE && loc2.getBlock().getType() != Material.WHEAT) || (loc3.getBlock().getType() != Material.AIR && loc3.getBlock().getType() != Material.LONG_GRASS && loc3.getBlock().getType() != Material.CHORUS_FLOWER && loc3.getBlock().getType() != Material.YELLOW_FLOWER && loc3.getBlock().getType() != Material.RED_ROSE && loc3.getBlock().getType() != Material.WHEAT) || (loc4.getBlock().getType() != Material.AIR && loc4.getBlock().getType() != Material.LONG_GRASS && loc4.getBlock().getType() != Material.CHORUS_FLOWER && loc4.getBlock().getType() != Material.YELLOW_FLOWER && loc4.getBlock().getType() != Material.RED_ROSE && loc4.getBlock().getType() != Material.WHEAT) && loc5.getBlock().getType() != Material.AIR) {
                        EntityArmorStand a1 = ((CraftArmorStand) a).getHandle();
                        a1.move(EnumMoveType.SELF, new Vector(a.getLocation().getDirection().multiply(0.5).getX(), 0, a.getLocation().getDirection().multiply(0.5).getZ()).multiply(v.curSpeed).getX(), new Vector(a.getLocation().getDirection().multiply(0.5).getX(), 0, a.getLocation().getDirection().multiply(0.5).getZ()).multiply(v.curSpeed).getY(), // a.setVelocity(new Vector(a.getLocation().getDirection().multiply(0.5).getX(), -1, a.getLocation().getDirection().multiply(0.5).getZ()).multiply(- BwdDriveSpeed.get(a.getUniqueId())));
                        new Vector(a.getLocation().getDirection().multiply(0.5).getX(), 0, a.getLocation().getDirection().multiply(0.5).getZ()).multiply(v.curSpeed).getZ());
                    } else {
                        EntityArmorStand a1 = ((CraftArmorStand) a).getHandle();
                        a1.move(EnumMoveType.SELF, new Vector(a.getLocation().getDirection().multiply(0.5).getX(), 0, a.getLocation().getDirection().multiply(0.5).getZ()).multiply(v.curSpeed).getX(), new Vector(a.getLocation().getDirection().multiply(0.5).getX(), 0, a.getLocation().getDirection().multiply(0.5).getZ()).multiply(v.curSpeed).getY(), new Vector(a.getLocation().getDirection().multiply(0.5).getX(), 0, a.getLocation().getDirection().multiply(0.5).getZ()).multiply(v.curSpeed).getZ());
                    }
                    if (side > 0) {
                        // Side[A]
                        if (loc1.getBlock().getType() == Material.STATIONARY_WATER && loc2.getBlock().getType() == Material.STATIONARY_WATER) {
                            EntityArmorStand a1 = ((CraftArmorStand) a).getHandle();
                            a1.setLocation(a.getLocation().getX(), a.getLocation().getY(), a.getLocation().getZ(), a.getLocation().getYaw() + v.turnSpeed, a.getLocation().getPitch());
                            v.steering = (int) (v.turnSpeed / 2);
                        }
                    } else if (side < 0) {
                        // Side[D]
                        if (loc1.getBlock().getType() == Material.STATIONARY_WATER && loc2.getBlock().getType() == Material.STATIONARY_WATER) {
                            EntityArmorStand a1 = ((CraftArmorStand) a).getHandle();
                            a1.setLocation(a.getLocation().getX(), a.getLocation().getY(), a.getLocation().getZ(), a.getLocation().getYaw() - v.turnSpeed, a.getLocation().getPitch());
                            v.steering = -(int) (v.turnSpeed / 2);
                        }
                    } else {
                        v.steering = 0;
                        v.skinHolder.setHeadPose(new EulerAngle(0, 0, 0));
                    }
                } else {
                    v.curSpeed = 0;
                }
            } else {
                v.steering = 0;
                if (v.curSpeed > v.acceleration) {
                    v.curSpeed = v.curSpeed -= v.acceleration;
                } else if (v.curSpeed < -v.acceleration) {
                    v.curSpeed = v.curSpeed += v.acceleration;
                } else {
                    v.curSpeed = 0;
                }
                EntityArmorStand a1 = ((CraftArmorStand) a).getHandle();
                Location fb = v.holder.getLocation().add(v.holder.getLocation().getDirection().setY(0).normalize().multiply(4));
                Location fb2 = v.holder.getLocation().add(v.holder.getLocation().getDirection().setY(0).normalize().multiply(-4));
                if (fb.getBlock().getType() == Material.STATIONARY_WATER && fb2.getBlock().getType() == Material.STATIONARY_WATER) {
                    a1.move(EnumMoveType.SELF, new Vector(a.getLocation().getDirection().multiply(0.5).getX(), 0, a.getLocation().getDirection().multiply(0.5).getZ()).multiply(v.curSpeed).getX(), new Vector(a.getLocation().getDirection().multiply(0.5).getX(), 0, a.getLocation().getDirection().multiply(0.5).getZ()).multiply(v.curSpeed).getY(), new Vector(a.getLocation().getDirection().multiply(0.5).getX(), 0, a.getLocation().getDirection().multiply(0.5).getZ()).multiply(v.curSpeed).getZ());
                } else {
                    v.curSpeed = 0;
                }
            }
        }
    }
}
Also used : Vehicle(me.legofreak107.vehicles.objects.Vehicle) PacketPlayInSteerVehicle(net.minecraft.server.v1_12_R1.PacketPlayInSteerVehicle) Seat(me.legofreak107.vehicles.objects.Seat) CraftArmorStand(org.bukkit.craftbukkit.v1_12_R1.entity.CraftArmorStand) ArmorStand(org.bukkit.entity.ArmorStand) EntityArmorStand(net.minecraft.server.v1_12_R1.EntityArmorStand) CraftArmorStand(org.bukkit.craftbukkit.v1_12_R1.entity.CraftArmorStand) BossBar(org.bukkit.boss.BossBar) EntityArmorStand(net.minecraft.server.v1_12_R1.EntityArmorStand) PlayerInventory(org.bukkit.inventory.PlayerInventory) EulerAngle(org.bukkit.util.EulerAngle) Vector(org.bukkit.util.Vector) Location(org.bukkit.Location)

Aggregations

Vehicle (me.legofreak107.vehicles.objects.Vehicle)10 Seat (me.legofreak107.vehicles.objects.Seat)8 PacketPlayInSteerVehicle (net.minecraft.server.v1_12_R1.PacketPlayInSteerVehicle)7 Fuel (me.legofreak107.vehicles.objects.Fuel)6 Vector (org.bukkit.util.Vector)6 EntityArmorStand (net.minecraft.server.v1_12_R1.EntityArmorStand)5 CraftArmorStand (org.bukkit.craftbukkit.v1_12_R1.entity.CraftArmorStand)5 ArmorStand (org.bukkit.entity.ArmorStand)5 Location (org.bukkit.Location)4 EventHandler (org.bukkit.event.EventHandler)4 ItemStack (org.bukkit.inventory.ItemStack)4 ArrayList (java.util.ArrayList)3 BossBar (org.bukkit.boss.BossBar)3 Player (org.bukkit.entity.Player)3 PlayerInventory (org.bukkit.inventory.PlayerInventory)3 EulerAngle (org.bukkit.util.EulerAngle)3 VPPlayer (me.legofreak107.vehicles.objects.VPPlayer)2 Inventory (org.bukkit.inventory.Inventory)2 ItemMeta (org.bukkit.inventory.meta.ItemMeta)2 PlayerInteractAtEntity (me.legofreak107.vehicles.events.PlayerInteractAtEntity)1