Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.gmail.candanatak97.selfmade.gasstation;
- import java.sql.Connection;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.Map;
- import net.gtaun.shoebill.data.Location;
- import net.gtaun.shoebill.data.Radius;
- import net.gtaun.shoebill.pickup.DynamicPickup;
- import net.gtaun.shoebill.pickup.DynamicPickupImpl;
- public class GasStationManager {
- private static Connection connection;
- private static ArrayList<DynamicPickup> pickups;
- private static Map<Integer, GasStation> gasStations;
- public static void initialize(Connection connection) {
- GasStationManager.connection = connection;
- reload();
- }
- public static void reload() {
- gasStations = new HashMap<Integer, GasStation>();
- pickups = new ArrayList<DynamicPickup>();
- try {
- PreparedStatement stmt;
- stmt = connection.prepareStatement("SELECT * FROM `samp_gasstations`");
- ResultSet result = stmt.executeQuery();
- GasStation gasStation = null;
- Location location = new Location(0, 0, 0);
- float radius = 0;
- while(result.next()) {
- location = new Location(Float.parseFloat(result.getString("pos_x")), Float.parseFloat(result.getString("pos_y")), Float.parseFloat(result.getString("pos_z")));
- radius = Float.parseFloat(result.getString("radius"));
- gasStation = new GasStation(result.getInt("id"), result.getString("name"), location, radius, result.getInt("pickup_id"), result.getInt("price_liter"));
- if(gasStations.containsKey(gasStation.getId())) {
- gasStations.replace(gasStation.getId(), gasStation);
- } else {
- gasStations.put(gasStation.getId(), gasStation);
- }
- }
- } catch (SQLException e) {
- e.printStackTrace();
- }
- for(GasStation gasStation : GasStationManager.getGasStations().values()) {
- pickups.add(new DynamicPickupImpl(gasStation.getPickupId(), 0, gasStation.getLocation(), 30f));
- }
- }
- public static Map<Integer, GasStation> getGasStations() {
- return gasStations;
- }
- public static GasStation getGasStation(int id) {
- for(GasStation gasStation : getGasStations().values()) {
- if(gasStation.getId() == id) {
- return gasStation;
- }
- }
- return null;
- }
- public static void remove(int id) {
- if(gasStations.containsKey(id)) {
- gasStations.remove(id);
- }
- }
- public static void remove(GasStation gasStation) {
- remove(gasStation.getId());
- }
- public static boolean add(GasStation gasStation) {
- try {
- String SQL = "INSERT INTO `samp_gasstations` (pos_x, pos_y, pos_z, pickup_id, radius) VALUES (?, ?, ?, ?, ?);";
- PreparedStatement preparedStatement = connection.prepareStatement(SQL);
- preparedStatement.setFloat(1, gasStation.getLocation().getX());
- preparedStatement.setFloat(2, gasStation.getLocation().getY());
- preparedStatement.setFloat(3, gasStation.getLocation().getZ());
- preparedStatement.setInt(4, gasStation.getPickupId());
- preparedStatement.setFloat(5, gasStation.getRadius());
- if(preparedStatement.executeUpdate() > 0) {
- reload();
- return true;
- }
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return false;
- }
- public static GasStation getNearestGasStation(Location location) {
- for(GasStation gasStation : getGasStations().values()) {
- Radius radius = new Radius(gasStation.getLocation(), gasStation.getRadius());
- if(radius.isInRange(location)) {
- return gasStation;
- }
- }
- return null;
- }
- public static boolean isDestroyed() {
- if(pickups != null) {
- for(DynamicPickup pickup : pickups) {
- if(!pickup.isDestroyed())
- return false;
- }
- }
- return true;
- }
- public static void destroy() {
- if(isDestroyed())
- return;
- if(pickups != null) {
- for(DynamicPickup pickup : pickups) {
- pickup.destroy();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement