mirror of
https://github.com/amalthea-mc/ShopChest.git
synced 2024-11-22 10:22:29 +00:00
Changed method of adding and removing a shop
Well, I had to change quite a bit and hopefully this fixes the issue, that shop items can be collected and that shops aren't saved or reloaded correctly.
This commit is contained in:
parent
e2e034bcc8
commit
77365f388c
@ -2,7 +2,7 @@ package de.epiceric.shopchest;
|
|||||||
|
|
||||||
import de.epiceric.shopchest.config.Config;
|
import de.epiceric.shopchest.config.Config;
|
||||||
import de.epiceric.shopchest.interfaces.JsonBuilder;
|
import de.epiceric.shopchest.interfaces.JsonBuilder;
|
||||||
import de.epiceric.shopchest.interfaces.Utils;
|
import de.epiceric.shopchest.utils.Utils;
|
||||||
import de.epiceric.shopchest.interfaces.jsonbuilder.*;
|
import de.epiceric.shopchest.interfaces.jsonbuilder.*;
|
||||||
import de.epiceric.shopchest.shop.Shop.ShopType;
|
import de.epiceric.shopchest.shop.Shop.ShopType;
|
||||||
import de.epiceric.shopchest.utils.ClickType;
|
import de.epiceric.shopchest.utils.ClickType;
|
||||||
@ -182,7 +182,7 @@ public class Commands extends BukkitCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void reload(Player player) {
|
private void reload(Player player) {
|
||||||
ShopChest.utils.reload(player);
|
ShopUtils.reloadShops(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void create(String[] args, ShopType shopType, Player p) {
|
private void create(String[] args, ShopType shopType, Player p) {
|
||||||
|
@ -3,9 +3,8 @@ package de.epiceric.shopchest;
|
|||||||
import de.epiceric.shopchest.config.Config;
|
import de.epiceric.shopchest.config.Config;
|
||||||
import de.epiceric.shopchest.event.*;
|
import de.epiceric.shopchest.event.*;
|
||||||
import de.epiceric.shopchest.interfaces.JsonBuilder;
|
import de.epiceric.shopchest.interfaces.JsonBuilder;
|
||||||
import de.epiceric.shopchest.interfaces.Utils;
|
import de.epiceric.shopchest.utils.Utils;
|
||||||
import de.epiceric.shopchest.interfaces.jsonbuilder.*;
|
import de.epiceric.shopchest.interfaces.jsonbuilder.*;
|
||||||
import de.epiceric.shopchest.interfaces.utils.*;
|
|
||||||
import de.epiceric.shopchest.shop.Shop;
|
import de.epiceric.shopchest.shop.Shop;
|
||||||
import de.epiceric.shopchest.shop.Shop.ShopType;
|
import de.epiceric.shopchest.shop.Shop.ShopType;
|
||||||
import de.epiceric.shopchest.sql.Database;
|
import de.epiceric.shopchest.sql.Database;
|
||||||
@ -41,7 +40,6 @@ public class ShopChest extends JavaPlugin {
|
|||||||
public static String latestVersion = "";
|
public static String latestVersion = "";
|
||||||
public static String downloadLink = "";
|
public static String downloadLink = "";
|
||||||
public static String[] broadcast = null;
|
public static String[] broadcast = null;
|
||||||
public static Utils utils;
|
|
||||||
private static ShopChest instance;
|
private static ShopChest instance;
|
||||||
|
|
||||||
public static ShopChest getInstance() {
|
public static ShopChest getInstance() {
|
||||||
@ -158,19 +156,10 @@ public class ShopChest extends JavaPlugin {
|
|||||||
switch (Utils.getVersion(getServer())) {
|
switch (Utils.getVersion(getServer())) {
|
||||||
|
|
||||||
case "v1_8_R1":
|
case "v1_8_R1":
|
||||||
utils = new Utils_1_8_R1();
|
|
||||||
break;
|
|
||||||
case "v1_8_R2":
|
case "v1_8_R2":
|
||||||
utils = new Utils_1_8_R2();
|
|
||||||
break;
|
|
||||||
case "v1_8_R3":
|
case "v1_8_R3":
|
||||||
utils = new Utils_1_8_R3();
|
|
||||||
break;
|
|
||||||
case "v1_9_R1":
|
case "v1_9_R1":
|
||||||
utils = new Utils_1_9_R1();
|
|
||||||
break;
|
|
||||||
case "v1_9_R2":
|
case "v1_9_R2":
|
||||||
utils = new Utils_1_9_R2();
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
logger.severe("Incompatible Server Version: " + Utils.getVersion(getServer()) + "!");
|
logger.severe("Incompatible Server Version: " + Utils.getVersion(getServer()) + "!");
|
||||||
@ -273,25 +262,23 @@ public class ShopChest extends JavaPlugin {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDisable() {
|
public void onDisable() {
|
||||||
utils.removeShops();
|
for (Shop shop : ShopUtils.getShops()) {
|
||||||
|
ShopUtils.removeShop(shop, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initializeShops() {
|
private void initializeShops() {
|
||||||
int count = 0;
|
int count = 0;
|
||||||
|
|
||||||
for (int id = 1; id < database.getHighestID() + 1; id++) {
|
for (int id = 1; id < database.getHighestID() + 1; id++) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Shop shop = (Shop) database.get(id, Database.ShopInfo.SHOP);
|
Shop shop = (Shop) database.get(id, Database.ShopInfo.SHOP);
|
||||||
shop.createHologram();
|
ShopUtils.addShop(shop, false);
|
||||||
shop.createItem();
|
|
||||||
ShopUtils.addShop(shop);
|
|
||||||
} catch (NullPointerException e) {
|
} catch (NullPointerException e) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
count++;
|
count++;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.info("Initialized " + String.valueOf(count) + " Shops");
|
logger.info("Initialized " + String.valueOf(count) + " Shops");
|
||||||
|
@ -4,7 +4,7 @@ import com.griefcraft.lwc.LWC;
|
|||||||
import com.griefcraft.model.Protection;
|
import com.griefcraft.model.Protection;
|
||||||
import de.epiceric.shopchest.ShopChest;
|
import de.epiceric.shopchest.ShopChest;
|
||||||
import de.epiceric.shopchest.config.Config;
|
import de.epiceric.shopchest.config.Config;
|
||||||
import de.epiceric.shopchest.interfaces.Utils;
|
import de.epiceric.shopchest.utils.Utils;
|
||||||
import de.epiceric.shopchest.shop.Shop;
|
import de.epiceric.shopchest.shop.Shop;
|
||||||
import de.epiceric.shopchest.shop.Shop.ShopType;
|
import de.epiceric.shopchest.shop.Shop.ShopType;
|
||||||
import de.epiceric.shopchest.sql.Database;
|
import de.epiceric.shopchest.sql.Database;
|
||||||
@ -221,14 +221,9 @@ public class InteractShop implements Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void create(Player executor, Location location, ItemStack product, double buyPrice, double sellPrice, ShopType shopType) {
|
private void create(Player executor, Location location, ItemStack product, double buyPrice, double sellPrice, ShopType shopType) {
|
||||||
|
Shop shop = new Shop(database.getNextFreeID(), plugin, executor, product, location, buyPrice, sellPrice, shopType);
|
||||||
|
|
||||||
Shop shop = new Shop(plugin, executor, product, location, buyPrice, sellPrice, shopType);
|
ShopUtils.addShop(shop, true);
|
||||||
shop.createHologram();
|
|
||||||
shop.createItem();
|
|
||||||
|
|
||||||
database.addShop(shop);
|
|
||||||
|
|
||||||
ShopUtils.addShop(shop);
|
|
||||||
executor.sendMessage(Config.shop_created());
|
executor.sendMessage(Config.shop_created());
|
||||||
|
|
||||||
for (Player p : Bukkit.getOnlinePlayers()) {
|
for (Player p : Bukkit.getOnlinePlayers()) {
|
||||||
@ -238,15 +233,8 @@ public class InteractShop implements Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void remove(Player executor, Shop shop) {
|
private void remove(Player executor, Shop shop) {
|
||||||
|
ShopUtils.removeShop(shop, true);
|
||||||
ShopUtils.removeShop(shop);
|
|
||||||
|
|
||||||
database.removeShop(shop);
|
|
||||||
|
|
||||||
shop.removeHologram();
|
|
||||||
|
|
||||||
executor.sendMessage(Config.shop_removed());
|
executor.sendMessage(Config.shop_removed());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void info(Player executor, Shop shop) {
|
private void info(Player executor, Shop shop) {
|
||||||
|
@ -3,7 +3,7 @@ package de.epiceric.shopchest.event;
|
|||||||
import de.epiceric.shopchest.ShopChest;
|
import de.epiceric.shopchest.ShopChest;
|
||||||
import de.epiceric.shopchest.config.Config;
|
import de.epiceric.shopchest.config.Config;
|
||||||
import de.epiceric.shopchest.interfaces.JsonBuilder;
|
import de.epiceric.shopchest.interfaces.JsonBuilder;
|
||||||
import de.epiceric.shopchest.interfaces.Utils;
|
import de.epiceric.shopchest.utils.Utils;
|
||||||
import de.epiceric.shopchest.interfaces.jsonbuilder.*;
|
import de.epiceric.shopchest.interfaces.jsonbuilder.*;
|
||||||
import net.milkbowl.vault.permission.Permission;
|
import net.milkbowl.vault.permission.Permission;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
@ -76,24 +76,16 @@ public class ProtectChest implements Listener {
|
|||||||
|
|
||||||
if (b.getLocation().equals(r.getLocation())) {
|
if (b.getLocation().equals(r.getLocation())) {
|
||||||
shop = ShopUtils.getShop(l.getLocation());
|
shop = ShopUtils.getShop(l.getLocation());
|
||||||
ShopUtils.removeShop(shop);
|
|
||||||
ShopChest.database.removeShop(shop);
|
|
||||||
} else if (b.getLocation().equals(l.getLocation())) {
|
} else if (b.getLocation().equals(l.getLocation())) {
|
||||||
shop = ShopUtils.getShop(r.getLocation());
|
shop = ShopUtils.getShop(r.getLocation());
|
||||||
ShopUtils.removeShop(shop);
|
|
||||||
ShopChest.database.removeShop(shop);
|
|
||||||
} else {
|
} else {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (shop.hasItem()) shop.getItem().remove();
|
ShopUtils.removeShop(shop, true);
|
||||||
|
|
||||||
Shop newShop = new Shop(ShopChest.getInstance(), shop.getVendor(), shop.getProduct(), shop.getLocation(), shop.getBuyPrice(), shop.getSellPrice(), shop.getShopType());
|
|
||||||
newShop.createHologram();
|
|
||||||
newShop.createItem();
|
|
||||||
ShopUtils.addShop(newShop);
|
|
||||||
ShopChest.database.addShop(newShop);
|
|
||||||
|
|
||||||
|
Shop newShop = new Shop(shop.getID(), ShopChest.getInstance(), shop.getVendor(), shop.getProduct(), shop.getLocation(), shop.getBuyPrice(), shop.getSellPrice(), shop.getShopType());
|
||||||
|
ShopUtils.addShop(newShop, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package de.epiceric.shopchest.event;
|
package de.epiceric.shopchest.event;
|
||||||
|
|
||||||
import de.epiceric.shopchest.ShopChest;
|
import de.epiceric.shopchest.ShopChest;
|
||||||
|
import de.epiceric.shopchest.utils.ShopUtils;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
@ -19,7 +20,7 @@ public class RegenerateShopItemAfterRemove implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (containsShopItem) ShopChest.utils.reload(null);
|
if (containsShopItem) ShopUtils.reloadShops(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -18,4 +18,8 @@ public interface Hologram {
|
|||||||
|
|
||||||
public boolean isVisible(OfflinePlayer p);
|
public boolean isVisible(OfflinePlayer p);
|
||||||
|
|
||||||
|
public boolean exists();
|
||||||
|
|
||||||
|
public void remove();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,8 @@ import java.util.List;
|
|||||||
|
|
||||||
public class Hologram_1_8_R1 implements Hologram {
|
public class Hologram_1_8_R1 implements Hologram {
|
||||||
|
|
||||||
int count;
|
private boolean exists = false;
|
||||||
|
private int count;
|
||||||
private List<EntityArmorStand> entitylist = new ArrayList<EntityArmorStand>();
|
private List<EntityArmorStand> entitylist = new ArrayList<EntityArmorStand>();
|
||||||
private String[] text;
|
private String[] text;
|
||||||
private Location location;
|
private Location location;
|
||||||
@ -28,12 +29,6 @@ public class Hologram_1_8_R1 implements Hologram {
|
|||||||
create();
|
create();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Hologram_1_8_R1(String text, Location location) {
|
|
||||||
this.text = new String[]{text};
|
|
||||||
this.location = location;
|
|
||||||
create();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Location getLocation() {
|
public Location getLocation() {
|
||||||
return location;
|
return location;
|
||||||
}
|
}
|
||||||
@ -80,7 +75,20 @@ public class Hologram_1_8_R1 implements Hologram {
|
|||||||
for (int i = 0; i < count; i++) {
|
for (int i = 0; i < count; i++) {
|
||||||
this.location.add(0, this.DISTANCE, 0);
|
this.location.add(0, this.DISTANCE, 0);
|
||||||
}
|
}
|
||||||
this.count = 0;
|
|
||||||
|
count = 0;
|
||||||
|
exists = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean exists() {
|
||||||
|
return exists;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void remove() {
|
||||||
|
for (EntityArmorStand e : entitylist) {
|
||||||
|
e.die();
|
||||||
|
}
|
||||||
|
exists = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,8 @@ import java.util.List;
|
|||||||
|
|
||||||
public class Hologram_1_8_R2 implements Hologram {
|
public class Hologram_1_8_R2 implements Hologram {
|
||||||
|
|
||||||
int count;
|
private boolean exists = false;
|
||||||
|
private int count;
|
||||||
private List<EntityArmorStand> entitylist = new ArrayList<EntityArmorStand>();
|
private List<EntityArmorStand> entitylist = new ArrayList<EntityArmorStand>();
|
||||||
private String[] text;
|
private String[] text;
|
||||||
private Location location;
|
private Location location;
|
||||||
@ -28,12 +29,6 @@ public class Hologram_1_8_R2 implements Hologram {
|
|||||||
create();
|
create();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Hologram_1_8_R2(String text, Location location) {
|
|
||||||
this.text = new String[]{text};
|
|
||||||
this.location = location;
|
|
||||||
create();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Location getLocation() {
|
public Location getLocation() {
|
||||||
return location;
|
return location;
|
||||||
}
|
}
|
||||||
@ -80,7 +75,20 @@ public class Hologram_1_8_R2 implements Hologram {
|
|||||||
for (int i = 0; i < count; i++) {
|
for (int i = 0; i < count; i++) {
|
||||||
this.location.add(0, this.DISTANCE, 0);
|
this.location.add(0, this.DISTANCE, 0);
|
||||||
}
|
}
|
||||||
this.count = 0;
|
|
||||||
|
count = 0;
|
||||||
|
exists = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean exists() {
|
||||||
|
return exists;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void remove() {
|
||||||
|
for (EntityArmorStand e : entitylist) {
|
||||||
|
e.die();
|
||||||
|
}
|
||||||
|
exists = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,8 @@ import java.util.List;
|
|||||||
|
|
||||||
public class Hologram_1_8_R3 implements Hologram {
|
public class Hologram_1_8_R3 implements Hologram {
|
||||||
|
|
||||||
int count;
|
private boolean exists = false;
|
||||||
|
private int count;
|
||||||
private List<EntityArmorStand> entitylist = new ArrayList<EntityArmorStand>();
|
private List<EntityArmorStand> entitylist = new ArrayList<EntityArmorStand>();
|
||||||
private String[] text;
|
private String[] text;
|
||||||
private Location location;
|
private Location location;
|
||||||
@ -28,12 +29,6 @@ public class Hologram_1_8_R3 implements Hologram {
|
|||||||
create();
|
create();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Hologram_1_8_R3(String text, Location location) {
|
|
||||||
this.text = new String[]{text};
|
|
||||||
this.location = location;
|
|
||||||
create();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Location getLocation() {
|
public Location getLocation() {
|
||||||
return location;
|
return location;
|
||||||
}
|
}
|
||||||
@ -80,7 +75,20 @@ public class Hologram_1_8_R3 implements Hologram {
|
|||||||
for (int i = 0; i < count; i++) {
|
for (int i = 0; i < count; i++) {
|
||||||
this.location.add(0, this.DISTANCE, 0);
|
this.location.add(0, this.DISTANCE, 0);
|
||||||
}
|
}
|
||||||
this.count = 0;
|
|
||||||
|
count = 0;
|
||||||
|
exists = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean exists() {
|
||||||
|
return exists;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void remove() {
|
||||||
|
for (EntityArmorStand e : entitylist) {
|
||||||
|
e.die();
|
||||||
|
}
|
||||||
|
exists = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,8 @@ import java.util.List;
|
|||||||
|
|
||||||
public class Hologram_1_9_R1 implements Hologram {
|
public class Hologram_1_9_R1 implements Hologram {
|
||||||
|
|
||||||
int count;
|
private boolean exists = false;
|
||||||
|
private int count;
|
||||||
private List<EntityArmorStand> entitylist = new ArrayList<EntityArmorStand>();
|
private List<EntityArmorStand> entitylist = new ArrayList<EntityArmorStand>();
|
||||||
private String[] text;
|
private String[] text;
|
||||||
private Location location;
|
private Location location;
|
||||||
@ -28,12 +29,6 @@ public class Hologram_1_9_R1 implements Hologram {
|
|||||||
create();
|
create();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Hologram_1_9_R1(String text, Location location) {
|
|
||||||
this.text = new String[]{text};
|
|
||||||
this.location = location;
|
|
||||||
create();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Location getLocation() {
|
public Location getLocation() {
|
||||||
return location;
|
return location;
|
||||||
}
|
}
|
||||||
@ -80,7 +75,20 @@ public class Hologram_1_9_R1 implements Hologram {
|
|||||||
for (int i = 0; i < count; i++) {
|
for (int i = 0; i < count; i++) {
|
||||||
this.location.add(0, this.DISTANCE, 0);
|
this.location.add(0, this.DISTANCE, 0);
|
||||||
}
|
}
|
||||||
this.count = 0;
|
|
||||||
|
count = 0;
|
||||||
|
exists = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean exists() {
|
||||||
|
return exists;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void remove() {
|
||||||
|
for (EntityArmorStand e : entitylist) {
|
||||||
|
e.die();
|
||||||
|
}
|
||||||
|
exists = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,8 @@ import java.util.List;
|
|||||||
|
|
||||||
public class Hologram_1_9_R2 implements Hologram {
|
public class Hologram_1_9_R2 implements Hologram {
|
||||||
|
|
||||||
int count;
|
private boolean exists = false;
|
||||||
|
private int count;
|
||||||
private List<EntityArmorStand> entitylist = new ArrayList<EntityArmorStand>();
|
private List<EntityArmorStand> entitylist = new ArrayList<EntityArmorStand>();
|
||||||
private String[] text;
|
private String[] text;
|
||||||
private Location location;
|
private Location location;
|
||||||
@ -28,12 +29,6 @@ public class Hologram_1_9_R2 implements Hologram {
|
|||||||
create();
|
create();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Hologram_1_9_R2(String text, Location location) {
|
|
||||||
this.text = new String[]{text};
|
|
||||||
this.location = location;
|
|
||||||
create();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Location getLocation() {
|
public Location getLocation() {
|
||||||
return location;
|
return location;
|
||||||
}
|
}
|
||||||
@ -80,7 +75,20 @@ public class Hologram_1_9_R2 implements Hologram {
|
|||||||
for (int i = 0; i < count; i++) {
|
for (int i = 0; i < count; i++) {
|
||||||
this.location.add(0, this.DISTANCE, 0);
|
this.location.add(0, this.DISTANCE, 0);
|
||||||
}
|
}
|
||||||
this.count = 0;
|
|
||||||
|
count = 0;
|
||||||
|
exists = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean exists() {
|
||||||
|
return exists;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void remove() {
|
||||||
|
for (EntityArmorStand e : entitylist) {
|
||||||
|
e.die();
|
||||||
|
}
|
||||||
|
exists = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,85 +0,0 @@
|
|||||||
package de.epiceric.shopchest.interfaces.utils;
|
|
||||||
|
|
||||||
import de.epiceric.shopchest.ShopChest;
|
|
||||||
import de.epiceric.shopchest.config.Config;
|
|
||||||
import de.epiceric.shopchest.interfaces.Hologram;
|
|
||||||
import de.epiceric.shopchest.interfaces.Utils;
|
|
||||||
import de.epiceric.shopchest.shop.Shop;
|
|
||||||
import de.epiceric.shopchest.sql.Database;
|
|
||||||
import de.epiceric.shopchest.utils.ShopUtils;
|
|
||||||
import net.minecraft.server.v1_8_R1.EntityArmorStand;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.event.player.PlayerMoveEvent;
|
|
||||||
|
|
||||||
public class Utils_1_8_R1 extends Utils {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void reload(Player player) {
|
|
||||||
|
|
||||||
for (Shop shop : ShopUtils.getShops()) {
|
|
||||||
Hologram hologram = shop.getHologram();
|
|
||||||
|
|
||||||
if (shop.hasItem()) shop.getItem().remove();
|
|
||||||
ShopUtils.removeShop(shop);
|
|
||||||
|
|
||||||
for (Player p : ShopChest.getInstance().getServer().getOnlinePlayers()) {
|
|
||||||
hologram.hidePlayer(p);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (Object o : hologram.getEntities()) {
|
|
||||||
EntityArmorStand e = (EntityArmorStand) o;
|
|
||||||
e.getWorld().removeEntity(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
int count = 0;
|
|
||||||
|
|
||||||
for (int id = 1; id < ShopChest.database.getHighestID() + 1; id++) {
|
|
||||||
|
|
||||||
try {
|
|
||||||
Shop shop = (Shop) ShopChest.database.get(id, Database.ShopInfo.SHOP);
|
|
||||||
shop.createHologram();
|
|
||||||
shop.createItem();
|
|
||||||
ShopUtils.addShop(shop);
|
|
||||||
} catch (NullPointerException e) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
count++;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if (player != null) player.sendMessage(Config.reloaded_shops(count));
|
|
||||||
|
|
||||||
for (Player p : Bukkit.getOnlinePlayers()) {
|
|
||||||
Bukkit.getPluginManager().callEvent(new PlayerMoveEvent(p, p.getLocation(), p.getLocation()));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void removeShops() {
|
|
||||||
for (Shop shop : ShopUtils.getShops()) {
|
|
||||||
Hologram hologram = shop.getHologram();
|
|
||||||
|
|
||||||
for (Player p : Bukkit.getOnlinePlayers()) {
|
|
||||||
hologram.hidePlayer(p);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (Object o : hologram.getEntities()) {
|
|
||||||
EntityArmorStand e = (EntityArmorStand) o;
|
|
||||||
e.getWorld().removeEntity(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (shop.hasItem()) shop.getItem().remove();
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -1,87 +0,0 @@
|
|||||||
package de.epiceric.shopchest.interfaces.utils;
|
|
||||||
|
|
||||||
import de.epiceric.shopchest.ShopChest;
|
|
||||||
import de.epiceric.shopchest.config.Config;
|
|
||||||
import de.epiceric.shopchest.interfaces.Hologram;
|
|
||||||
import de.epiceric.shopchest.interfaces.Utils;
|
|
||||||
import de.epiceric.shopchest.shop.Shop;
|
|
||||||
import de.epiceric.shopchest.sql.Database;
|
|
||||||
import de.epiceric.shopchest.utils.ShopUtils;
|
|
||||||
import net.minecraft.server.v1_8_R2.EntityArmorStand;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.event.player.PlayerMoveEvent;
|
|
||||||
|
|
||||||
public class Utils_1_8_R2 extends Utils {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void reload(Player player) {
|
|
||||||
|
|
||||||
for (Shop shop : ShopUtils.getShops()) {
|
|
||||||
Hologram hologram = shop.getHologram();
|
|
||||||
|
|
||||||
if (shop.hasItem()) shop.getItem().remove();
|
|
||||||
ShopUtils.removeShop(shop);
|
|
||||||
|
|
||||||
for (Player p : ShopChest.getInstance().getServer().getOnlinePlayers()) {
|
|
||||||
hologram.hidePlayer(p);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (Object o : hologram.getEntities()) {
|
|
||||||
EntityArmorStand e = (EntityArmorStand) o;
|
|
||||||
e.getWorld().removeEntity(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
int count = 0;
|
|
||||||
|
|
||||||
for (int id = 1; id < ShopChest.database.getHighestID() + 1; id++) {
|
|
||||||
|
|
||||||
try {
|
|
||||||
Shop shop = (Shop) ShopChest.database.get(id, Database.ShopInfo.SHOP);
|
|
||||||
shop.createHologram();
|
|
||||||
shop.createItem();
|
|
||||||
ShopUtils.addShop(shop);
|
|
||||||
} catch (NullPointerException e) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
count++;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if (player != null) player.sendMessage(Config.reloaded_shops(count));
|
|
||||||
|
|
||||||
for (Player p : Bukkit.getOnlinePlayers()) {
|
|
||||||
Bukkit.getPluginManager().callEvent(new PlayerMoveEvent(p, p.getLocation(), p.getLocation()));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void removeShops() {
|
|
||||||
|
|
||||||
for (Shop shop : ShopUtils.getShops()) {
|
|
||||||
Hologram hologram = shop.getHologram();
|
|
||||||
|
|
||||||
for (Player p : Bukkit.getOnlinePlayers()) {
|
|
||||||
hologram.hidePlayer(p);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (Object o : hologram.getEntities()) {
|
|
||||||
EntityArmorStand e = (EntityArmorStand) o;
|
|
||||||
e.getWorld().removeEntity(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (shop.hasItem()) shop.getItem().remove();
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -1,86 +0,0 @@
|
|||||||
package de.epiceric.shopchest.interfaces.utils;
|
|
||||||
|
|
||||||
import de.epiceric.shopchest.ShopChest;
|
|
||||||
import de.epiceric.shopchest.config.Config;
|
|
||||||
import de.epiceric.shopchest.interfaces.Hologram;
|
|
||||||
import de.epiceric.shopchest.interfaces.Utils;
|
|
||||||
import de.epiceric.shopchest.shop.Shop;
|
|
||||||
import de.epiceric.shopchest.sql.Database;
|
|
||||||
import de.epiceric.shopchest.utils.ShopUtils;
|
|
||||||
import net.minecraft.server.v1_8_R3.EntityArmorStand;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.event.player.PlayerMoveEvent;
|
|
||||||
|
|
||||||
public class Utils_1_8_R3 extends Utils {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void reload(Player player) {
|
|
||||||
|
|
||||||
for (Shop shop : ShopUtils.getShops()) {
|
|
||||||
Hologram hologram = shop.getHologram();
|
|
||||||
|
|
||||||
if (shop.hasItem()) shop.getItem().remove();
|
|
||||||
ShopUtils.removeShop(shop);
|
|
||||||
|
|
||||||
for (Player p : ShopChest.getInstance().getServer().getOnlinePlayers()) {
|
|
||||||
hologram.hidePlayer(p);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (Object o : hologram.getEntities()) {
|
|
||||||
EntityArmorStand e = (EntityArmorStand) o;
|
|
||||||
e.getWorld().removeEntity(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
int count = 0;
|
|
||||||
|
|
||||||
for (int id = 1; id < ShopChest.database.getHighestID() + 1; id++) {
|
|
||||||
|
|
||||||
try {
|
|
||||||
Shop shop = (Shop) ShopChest.database.get(id, Database.ShopInfo.SHOP);
|
|
||||||
shop.createHologram();
|
|
||||||
shop.createItem();
|
|
||||||
ShopUtils.addShop(shop);
|
|
||||||
} catch (NullPointerException e) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
count++;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if (player != null) player.sendMessage(Config.reloaded_shops(count));
|
|
||||||
|
|
||||||
for (Player p : Bukkit.getOnlinePlayers()) {
|
|
||||||
Bukkit.getPluginManager().callEvent(new PlayerMoveEvent(p, p.getLocation(), p.getLocation()));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void removeShops() {
|
|
||||||
for (Shop shop : ShopUtils.getShops()) {
|
|
||||||
Hologram hologram = shop.getHologram();
|
|
||||||
|
|
||||||
for (Player p : Bukkit.getOnlinePlayers()) {
|
|
||||||
hologram.hidePlayer(p);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (Object o : hologram.getEntities()) {
|
|
||||||
EntityArmorStand e = (EntityArmorStand) o;
|
|
||||||
e.getWorld().removeEntity(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (shop.hasItem()) shop.getItem().remove();
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -1,86 +0,0 @@
|
|||||||
package de.epiceric.shopchest.interfaces.utils;
|
|
||||||
|
|
||||||
import de.epiceric.shopchest.ShopChest;
|
|
||||||
import de.epiceric.shopchest.config.Config;
|
|
||||||
import de.epiceric.shopchest.interfaces.Hologram;
|
|
||||||
import de.epiceric.shopchest.interfaces.Utils;
|
|
||||||
import de.epiceric.shopchest.shop.Shop;
|
|
||||||
import de.epiceric.shopchest.sql.Database;
|
|
||||||
import de.epiceric.shopchest.utils.ShopUtils;
|
|
||||||
import net.minecraft.server.v1_9_R1.EntityArmorStand;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.event.player.PlayerMoveEvent;
|
|
||||||
|
|
||||||
public class Utils_1_9_R1 extends Utils {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void reload(Player player) {
|
|
||||||
|
|
||||||
for (Shop shop : ShopUtils.getShops()) {
|
|
||||||
Hologram hologram = shop.getHologram();
|
|
||||||
|
|
||||||
if (shop.hasItem()) shop.getItem().remove();
|
|
||||||
ShopUtils.removeShop(shop);
|
|
||||||
|
|
||||||
for (Player p : ShopChest.getInstance().getServer().getOnlinePlayers()) {
|
|
||||||
hologram.hidePlayer(p);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (Object o : hologram.getEntities()) {
|
|
||||||
EntityArmorStand e = (EntityArmorStand) o;
|
|
||||||
e.getWorld().removeEntity(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
int count = 0;
|
|
||||||
|
|
||||||
for (int id = 1; id < ShopChest.database.getHighestID() + 1; id++) {
|
|
||||||
|
|
||||||
try {
|
|
||||||
Shop shop = (Shop) ShopChest.database.get(id, Database.ShopInfo.SHOP);
|
|
||||||
shop.createHologram();
|
|
||||||
shop.createItem();
|
|
||||||
ShopUtils.addShop(shop);
|
|
||||||
} catch (NullPointerException e) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
count++;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if (player != null) player.sendMessage(Config.reloaded_shops(count));
|
|
||||||
|
|
||||||
for (Player p : Bukkit.getOnlinePlayers()) {
|
|
||||||
Bukkit.getPluginManager().callEvent(new PlayerMoveEvent(p, p.getLocation(), p.getLocation()));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void removeShops() {
|
|
||||||
for (Shop shop : ShopUtils.getShops()) {
|
|
||||||
Hologram hologram = shop.getHologram();
|
|
||||||
|
|
||||||
for (Player p : Bukkit.getOnlinePlayers()) {
|
|
||||||
hologram.hidePlayer(p);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (Object o : hologram.getEntities()) {
|
|
||||||
EntityArmorStand e = (EntityArmorStand) o;
|
|
||||||
e.getWorld().removeEntity(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (shop.hasItem()) shop.getItem().remove();
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -1,86 +0,0 @@
|
|||||||
package de.epiceric.shopchest.interfaces.utils;
|
|
||||||
|
|
||||||
import de.epiceric.shopchest.ShopChest;
|
|
||||||
import de.epiceric.shopchest.config.Config;
|
|
||||||
import de.epiceric.shopchest.interfaces.Hologram;
|
|
||||||
import de.epiceric.shopchest.interfaces.Utils;
|
|
||||||
import de.epiceric.shopchest.shop.Shop;
|
|
||||||
import de.epiceric.shopchest.sql.Database;
|
|
||||||
import de.epiceric.shopchest.utils.ShopUtils;
|
|
||||||
import net.minecraft.server.v1_9_R2.EntityArmorStand;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.event.player.PlayerMoveEvent;
|
|
||||||
|
|
||||||
public class Utils_1_9_R2 extends Utils {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void reload(Player player) {
|
|
||||||
|
|
||||||
for (Shop shop : ShopUtils.getShops()) {
|
|
||||||
Hologram hologram = shop.getHologram();
|
|
||||||
|
|
||||||
if (shop.hasItem()) shop.getItem().remove();
|
|
||||||
ShopUtils.removeShop(shop);
|
|
||||||
|
|
||||||
for (Player p : ShopChest.getInstance().getServer().getOnlinePlayers()) {
|
|
||||||
hologram.hidePlayer(p);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (Object o : hologram.getEntities()) {
|
|
||||||
EntityArmorStand e = (EntityArmorStand) o;
|
|
||||||
e.getWorld().removeEntity(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
int count = 0;
|
|
||||||
|
|
||||||
for (int id = 1; id < ShopChest.database.getHighestID() + 1; id++) {
|
|
||||||
|
|
||||||
try {
|
|
||||||
Shop shop = (Shop) ShopChest.database.get(id, Database.ShopInfo.SHOP);
|
|
||||||
shop.createHologram();
|
|
||||||
shop.createItem();
|
|
||||||
ShopUtils.addShop(shop);
|
|
||||||
} catch (NullPointerException e) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
count++;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if (player != null) player.sendMessage(Config.reloaded_shops(count));
|
|
||||||
|
|
||||||
for (Player p : Bukkit.getOnlinePlayers()) {
|
|
||||||
Bukkit.getPluginManager().callEvent(new PlayerMoveEvent(p, p.getLocation(), p.getLocation()));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void removeShops() {
|
|
||||||
for (Shop shop : ShopUtils.getShops()) {
|
|
||||||
Hologram hologram = shop.getHologram();
|
|
||||||
|
|
||||||
for (Player p : Bukkit.getOnlinePlayers()) {
|
|
||||||
hologram.hidePlayer(p);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (Object o : hologram.getEntities()) {
|
|
||||||
EntityArmorStand e = (EntityArmorStand) o;
|
|
||||||
e.getWorld().removeEntity(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (shop.hasItem()) shop.getItem().remove();
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -3,9 +3,10 @@ package de.epiceric.shopchest.shop;
|
|||||||
import de.epiceric.shopchest.ShopChest;
|
import de.epiceric.shopchest.ShopChest;
|
||||||
import de.epiceric.shopchest.config.Config;
|
import de.epiceric.shopchest.config.Config;
|
||||||
import de.epiceric.shopchest.interfaces.Hologram;
|
import de.epiceric.shopchest.interfaces.Hologram;
|
||||||
import de.epiceric.shopchest.interfaces.Utils;
|
import de.epiceric.shopchest.utils.Utils;
|
||||||
import de.epiceric.shopchest.interfaces.hologram.*;
|
import de.epiceric.shopchest.interfaces.hologram.*;
|
||||||
import de.epiceric.shopchest.utils.ItemNames;
|
import de.epiceric.shopchest.utils.ItemNames;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
@ -25,6 +26,7 @@ import java.util.UUID;
|
|||||||
|
|
||||||
public class Shop {
|
public class Shop {
|
||||||
|
|
||||||
|
private int id;
|
||||||
private ShopChest plugin;
|
private ShopChest plugin;
|
||||||
private OfflinePlayer vendor;
|
private OfflinePlayer vendor;
|
||||||
private ItemStack product;
|
private ItemStack product;
|
||||||
@ -35,7 +37,8 @@ public class Shop {
|
|||||||
private double sellPrice;
|
private double sellPrice;
|
||||||
private ShopType shopType;
|
private ShopType shopType;
|
||||||
|
|
||||||
public Shop(ShopChest plugin, OfflinePlayer vendor, ItemStack product, Location location, double buyPrice, double sellPrice, ShopType shopType) {
|
public Shop(int id, ShopChest plugin, OfflinePlayer vendor, ItemStack product, Location location, double buyPrice, double sellPrice, ShopType shopType) {
|
||||||
|
this.id = id;
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
this.vendor = vendor;
|
this.vendor = vendor;
|
||||||
this.product = product;
|
this.product = product;
|
||||||
@ -43,16 +46,27 @@ public class Shop {
|
|||||||
this.buyPrice = buyPrice;
|
this.buyPrice = buyPrice;
|
||||||
this.sellPrice = sellPrice;
|
this.sellPrice = sellPrice;
|
||||||
this.shopType = shopType;
|
this.shopType = shopType;
|
||||||
|
|
||||||
|
if (hologram == null || !hologram.exists()) createHologram();
|
||||||
|
if (item == null || item.isDead()) createItem();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removeHologram() {
|
public void removeHologram() {
|
||||||
for (Player player : plugin.getServer().getOnlinePlayers()) {
|
if (hologram != null && hologram.exists()) {
|
||||||
getHologram().hidePlayer(player);
|
for (Player p : Bukkit.getOnlinePlayers()) {
|
||||||
|
hologram.hidePlayer(p);
|
||||||
|
}
|
||||||
|
|
||||||
|
hologram.remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void createItem() {
|
public void removeItem() {
|
||||||
|
if (item != null && !item.isDead())
|
||||||
|
item.remove();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createItem() {
|
||||||
Item item;
|
Item item;
|
||||||
Location itemLocation;
|
Location itemLocation;
|
||||||
ItemStack itemStack;
|
ItemStack itemStack;
|
||||||
@ -75,7 +89,7 @@ public class Shop {
|
|||||||
this.item = item;
|
this.item = item;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void createHologram() {
|
private void createHologram() {
|
||||||
|
|
||||||
boolean doubleChest;
|
boolean doubleChest;
|
||||||
|
|
||||||
@ -170,6 +184,10 @@ public class Shop {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getID() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
public OfflinePlayer getVendor() {
|
public OfflinePlayer getVendor() {
|
||||||
return vendor;
|
return vendor;
|
||||||
}
|
}
|
||||||
@ -198,14 +216,6 @@ public class Shop {
|
|||||||
return hologram;
|
return hologram;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Item getItem() {
|
|
||||||
return item;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean hasItem() {
|
|
||||||
return item != null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum ShopType {
|
public enum ShopType {
|
||||||
NORMAL,
|
NORMAL,
|
||||||
ADMIN;
|
ADMIN;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package de.epiceric.shopchest.sql;
|
package de.epiceric.shopchest.sql;
|
||||||
|
|
||||||
import de.epiceric.shopchest.ShopChest;
|
import de.epiceric.shopchest.ShopChest;
|
||||||
import de.epiceric.shopchest.interfaces.Utils;
|
import de.epiceric.shopchest.utils.Utils;
|
||||||
import de.epiceric.shopchest.shop.Shop;
|
import de.epiceric.shopchest.shop.Shop;
|
||||||
import de.epiceric.shopchest.shop.Shop.ShopType;
|
import de.epiceric.shopchest.shop.Shop.ShopType;
|
||||||
import de.epiceric.shopchest.utils.ShopUtils;
|
import de.epiceric.shopchest.utils.ShopUtils;
|
||||||
@ -11,8 +11,6 @@ import org.bukkit.OfflinePlayer;
|
|||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.sql.*;
|
import java.sql.*;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@ -100,29 +98,11 @@ public abstract class Database {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getShopID(Shop shop) {
|
|
||||||
for (int i = 1; i < getHighestID() + 1; i++) {
|
|
||||||
try {
|
|
||||||
Shop s = (Shop) get(i, null);
|
|
||||||
if (s.getLocation().equals(shop.getLocation())) {
|
|
||||||
return i;
|
|
||||||
}
|
|
||||||
} catch (NullPointerException ex) { /* Empty catch block... */ }
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void removeShop(Shop shop) {
|
public void removeShop(Shop shop) {
|
||||||
int id = getShopID(shop);
|
|
||||||
if (id == 0) return;
|
|
||||||
|
|
||||||
if (shop.hasItem()) shop.getItem().remove();
|
|
||||||
|
|
||||||
PreparedStatement ps = null;
|
PreparedStatement ps = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
ps = connection.prepareStatement("DELETE FROM shop_list WHERE id = " + id + ";");
|
ps = connection.prepareStatement("DELETE FROM shop_list WHERE id = " + shop.getID() + ";");
|
||||||
ps.executeUpdate();
|
ps.executeUpdate();
|
||||||
} catch (SQLException ex) {
|
} catch (SQLException ex) {
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
@ -149,7 +129,7 @@ public abstract class Database {
|
|||||||
if (shop != null)
|
if (shop != null)
|
||||||
return shop;
|
return shop;
|
||||||
else {
|
else {
|
||||||
return new Shop(plugin,
|
return new Shop(id, plugin,
|
||||||
(OfflinePlayer) get(id, ShopInfo.VENDOR),
|
(OfflinePlayer) get(id, ShopInfo.VENDOR),
|
||||||
(ItemStack) get(id, ShopInfo.PRODUCT),
|
(ItemStack) get(id, ShopInfo.PRODUCT),
|
||||||
(Location) get(id, ShopInfo.LOCATION),
|
(Location) get(id, ShopInfo.LOCATION),
|
||||||
@ -180,7 +160,7 @@ public abstract class Database {
|
|||||||
|
|
||||||
if (shoptype.equals("INFINITE")) {
|
if (shoptype.equals("INFINITE")) {
|
||||||
|
|
||||||
Shop newShop = new Shop(plugin,
|
Shop newShop = new Shop(id, plugin,
|
||||||
(OfflinePlayer) get(id, ShopInfo.VENDOR),
|
(OfflinePlayer) get(id, ShopInfo.VENDOR),
|
||||||
(ItemStack) get(id, ShopInfo.PRODUCT),
|
(ItemStack) get(id, ShopInfo.PRODUCT),
|
||||||
(Location) get(id, ShopInfo.LOCATION),
|
(Location) get(id, ShopInfo.LOCATION),
|
||||||
@ -188,7 +168,8 @@ public abstract class Database {
|
|||||||
(double) get(id, ShopInfo.SELLPRICE),
|
(double) get(id, ShopInfo.SELLPRICE),
|
||||||
ShopType.ADMIN);
|
ShopType.ADMIN);
|
||||||
|
|
||||||
setShop(id, newShop);
|
addShop(newShop);
|
||||||
|
|
||||||
return ShopType.ADMIN;
|
return ShopType.ADMIN;
|
||||||
}
|
}
|
||||||
return ShopType.valueOf(shoptype);
|
return ShopType.valueOf(shoptype);
|
||||||
@ -205,13 +186,13 @@ public abstract class Database {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setShop(int id, Shop shop) {
|
public void addShop(Shop shop) {
|
||||||
PreparedStatement ps = null;
|
PreparedStatement ps = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
ps = connection.prepareStatement("REPLACE INTO shop_list (id,vendor,product,world,x,y,z,buyprice,sellprice,shoptype) VALUES(?,?,?,?,?,?,?,?,?,?)");
|
ps = connection.prepareStatement("REPLACE INTO shop_list (id,vendor,product,world,x,y,z,buyprice,sellprice,shoptype) VALUES(?,?,?,?,?,?,?,?,?,?)");
|
||||||
|
|
||||||
ps.setInt(1, id);
|
ps.setInt(1, shop.getID());
|
||||||
ps.setString(2, shop.getVendor().getUniqueId().toString());
|
ps.setString(2, shop.getVendor().getUniqueId().toString());
|
||||||
ps.setString(3, Utils.encode(shop.getProduct()));
|
ps.setString(3, Utils.encode(shop.getProduct()));
|
||||||
ps.setString(4, shop.getLocation().getWorld().getName());
|
ps.setString(4, shop.getLocation().getWorld().getName());
|
||||||
@ -230,11 +211,6 @@ public abstract class Database {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addShop(Shop shop) {
|
|
||||||
int id = getNextFreeID();
|
|
||||||
setShop(id, shop);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void close(PreparedStatement ps, ResultSet rs) {
|
private void close(PreparedStatement ps, ResultSet rs) {
|
||||||
try {
|
try {
|
||||||
if (ps != null)
|
if (ps != null)
|
||||||
|
@ -2,8 +2,9 @@ package de.epiceric.shopchest.utils;
|
|||||||
|
|
||||||
import de.epiceric.shopchest.ShopChest;
|
import de.epiceric.shopchest.ShopChest;
|
||||||
import de.epiceric.shopchest.config.Config;
|
import de.epiceric.shopchest.config.Config;
|
||||||
import de.epiceric.shopchest.interfaces.Utils;
|
|
||||||
import de.epiceric.shopchest.shop.Shop;
|
import de.epiceric.shopchest.shop.Shop;
|
||||||
|
import de.epiceric.shopchest.sql.Database;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
@ -11,6 +12,7 @@ import org.bukkit.block.Block;
|
|||||||
import org.bukkit.block.Chest;
|
import org.bukkit.block.Chest;
|
||||||
import org.bukkit.block.DoubleChest;
|
import org.bukkit.block.DoubleChest;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.player.PlayerMoveEvent;
|
||||||
import org.bukkit.inventory.InventoryHolder;
|
import org.bukkit.inventory.InventoryHolder;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -23,7 +25,6 @@ public class ShopUtils {
|
|||||||
private static HashMap<Location, Shop> shopLocation = new HashMap<>();
|
private static HashMap<Location, Shop> shopLocation = new HashMap<>();
|
||||||
|
|
||||||
public static Shop getShop(Location location) {
|
public static Shop getShop(Location location) {
|
||||||
|
|
||||||
Location newLocation = new Location(location.getWorld(), location.getX(), location.getY(), location.getZ());
|
Location newLocation = new Location(location.getWorld(), location.getX(), location.getY(), location.getZ());
|
||||||
|
|
||||||
if (shopLocation.containsKey(newLocation)) {
|
if (shopLocation.containsKey(newLocation)) {
|
||||||
@ -31,19 +32,14 @@ public class ShopUtils {
|
|||||||
} else {
|
} else {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isShop(Location location) {
|
public static boolean isShop(Location location) {
|
||||||
|
|
||||||
Location newLocation = new Location(location.getWorld(), location.getX(), location.getY(), location.getZ());
|
Location newLocation = new Location(location.getWorld(), location.getX(), location.getY(), location.getZ());
|
||||||
|
|
||||||
return shopLocation.containsKey(newLocation);
|
return shopLocation.containsKey(newLocation);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Shop[] getShops() {
|
public static Shop[] getShops() {
|
||||||
|
|
||||||
ArrayList<Shop> shops = new ArrayList<>();
|
ArrayList<Shop> shops = new ArrayList<>();
|
||||||
|
|
||||||
for (Shop shop : shopLocation.values()) {
|
for (Shop shop : shopLocation.values()) {
|
||||||
@ -51,16 +47,16 @@ public class ShopUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return shops.toArray(new Shop[shops.size()]);
|
return shops.toArray(new Shop[shops.size()]);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void addShop(Shop shop) {
|
public static void addShop(Shop shop, boolean addToDatabase) {
|
||||||
|
|
||||||
Location loc = shop.getLocation();
|
Location loc = shop.getLocation();
|
||||||
Block b = loc.getBlock();
|
Block b = loc.getBlock();
|
||||||
|
|
||||||
if (b.getType().equals(Material.CHEST) || b.getType().equals(Material.TRAPPED_CHEST)) {
|
if (b.getType().equals(Material.CHEST) || b.getType().equals(Material.TRAPPED_CHEST)) {
|
||||||
Chest c = (Chest) b.getState();
|
Chest c = (Chest) b.getState();
|
||||||
InventoryHolder ih = c.getInventory().getHolder();
|
InventoryHolder ih = c.getInventory().getHolder();
|
||||||
|
|
||||||
if (ih instanceof DoubleChest) {
|
if (ih instanceof DoubleChest) {
|
||||||
DoubleChest dc = (DoubleChest) ih;
|
DoubleChest dc = (DoubleChest) ih;
|
||||||
Chest r = (Chest) dc.getRightSide();
|
Chest r = (Chest) dc.getRightSide();
|
||||||
@ -69,37 +65,40 @@ public class ShopUtils {
|
|||||||
shopLocation.put(r.getLocation(), shop);
|
shopLocation.put(r.getLocation(), shop);
|
||||||
shopLocation.put(l.getLocation(), shop);
|
shopLocation.put(l.getLocation(), shop);
|
||||||
return;
|
return;
|
||||||
|
} else {
|
||||||
|
shopLocation.put(shop.getLocation(), shop);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (addToDatabase)
|
||||||
|
ShopChest.database.addShop(shop);
|
||||||
}
|
}
|
||||||
|
|
||||||
shopLocation.put(shop.getLocation(), shop);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void removeShop(Shop shop) {
|
public static void removeShop(Shop shop, boolean removeFromDatabase) {
|
||||||
|
|
||||||
Location loc = shop.getLocation();
|
Location loc = shop.getLocation();
|
||||||
Block b = loc.getBlock();
|
Block b = loc.getBlock();
|
||||||
|
|
||||||
if (b.getType().equals(Material.CHEST) || b.getType().equals(Material.TRAPPED_CHEST)) {
|
if (b.getType().equals(Material.CHEST) || b.getType().equals(Material.TRAPPED_CHEST)) {
|
||||||
Chest c = (Chest) b.getState();
|
Chest c = (Chest) b.getState();
|
||||||
InventoryHolder ih = c.getInventory().getHolder();
|
InventoryHolder ih = c.getInventory().getHolder();
|
||||||
|
|
||||||
if (ih instanceof DoubleChest) {
|
if (ih instanceof DoubleChest) {
|
||||||
DoubleChest dc = (DoubleChest) ih;
|
DoubleChest dc = (DoubleChest) ih;
|
||||||
Chest r = (Chest) dc.getRightSide();
|
Chest r = (Chest) dc.getRightSide();
|
||||||
Chest l = (Chest) dc.getLeftSide();
|
Chest l = (Chest) dc.getLeftSide();
|
||||||
|
|
||||||
if (shop.hasItem()) shop.getItem().remove();
|
|
||||||
shop.removeHologram();
|
|
||||||
shopLocation.remove(r.getLocation());
|
shopLocation.remove(r.getLocation());
|
||||||
shopLocation.remove(l.getLocation());
|
shopLocation.remove(l.getLocation());
|
||||||
return;
|
} else {
|
||||||
|
shopLocation.remove(shop.getLocation());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
shop.removeItem();
|
||||||
|
shop.removeHologram();
|
||||||
|
|
||||||
|
if (removeFromDatabase)
|
||||||
|
ShopChest.database.removeShop(shop);
|
||||||
}
|
}
|
||||||
|
|
||||||
shopLocation.remove(shop.getLocation());
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int getShopLimit(Player p) {
|
public static int getShopLimit(Player p) {
|
||||||
@ -137,7 +136,6 @@ public class ShopUtils {
|
|||||||
|
|
||||||
limit = highestLimit;
|
limit = highestLimit;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (String key : Config.shopLimits_player()) {
|
for (String key : Config.shopLimits_player()) {
|
||||||
@ -166,5 +164,28 @@ public class ShopUtils {
|
|||||||
return shopCount;
|
return shopCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void reloadShops(Player player) {
|
||||||
|
for (Shop shop : ShopUtils.getShops()) {
|
||||||
|
ShopUtils.removeShop(shop, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
int count = 0;
|
||||||
|
for (int id = 1; id < ShopChest.database.getHighestID() + 1; id++) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
Shop shop = (Shop) ShopChest.database.get(id, Database.ShopInfo.SHOP);
|
||||||
|
ShopUtils.addShop(shop, false);
|
||||||
|
} catch (NullPointerException e) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (player != null) player.sendMessage(Config.reloaded_shops(count));
|
||||||
|
|
||||||
|
for (Player p : Bukkit.getOnlinePlayers()) {
|
||||||
|
Bukkit.getPluginManager().callEvent(new PlayerMoveEvent(p, p.getLocation(), p.getLocation()));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package de.epiceric.shopchest.interfaces;
|
package de.epiceric.shopchest.utils;
|
||||||
|
|
||||||
import org.apache.commons.codec.binary.Base64;
|
import org.apache.commons.codec.binary.Base64;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
@ -14,7 +14,7 @@ import org.bukkit.inventory.meta.ItemMeta;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
public abstract class Utils {
|
public class Utils {
|
||||||
|
|
||||||
public static int getAmount(Inventory inventory, ItemStack itemStack) {
|
public static int getAmount(Inventory inventory, ItemStack itemStack) {
|
||||||
int amount = 0;
|
int amount = 0;
|
||||||
@ -80,9 +80,5 @@ public abstract class Utils {
|
|||||||
return config.getItemStack("i", null);
|
return config.getItemStack("i", null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract void reload(Player p);
|
|
||||||
|
|
||||||
public abstract void removeShops();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user