1
0
mirror of https://e.coding.net/circlecloud/RealBackpacks.git synced 2025-11-24 21:36:12 +00:00

Update VersionChecker...

This commit is contained in:
502647092
2015-08-21 09:09:20 +08:00
parent 962eed36e2
commit 360553e25f
3 changed files with 673 additions and 666 deletions

View File

@@ -174,8 +174,7 @@ public class RealBackpacks extends JavaPlugin {
getLogger().info("真实背包已加载 By: 喵♂呜."); getLogger().info("真实背包已加载 By: 喵♂呜.");
} }
} }
versionChecker = new VersionChecker(this); new VersionChecker(this);
versionChecker.VersionCheck(null);
} }
@Override @Override
@@ -195,8 +194,7 @@ public class RealBackpacks extends JavaPlugin {
public void setup() { public void setup() {
user = getConfig().getString("Data.MySQL.username"); user = getConfig().getString("Data.MySQL.username");
password = getConfig().getString("Data.MySQL.password"); password = getConfig().getString("Data.MySQL.password");
url = "jdbc:mysql://" + getConfig().getString("Data.MySQL.ip") + ":" url = "jdbc:mysql://" + getConfig().getString("Data.MySQL.ip") + ":" + getConfig().getInt("Data.MySQL.port") + "/"
+ getConfig().getInt("Data.MySQL.port") + "/"
+ getConfig().getString("Data.MySQL.database"); + getConfig().getString("Data.MySQL.database");
if (!getConfig().isSet("Config.MultipleBackpacksInInventory.average")) { if (!getConfig().isSet("Config.MultipleBackpacksInInventory.average")) {
@@ -240,8 +238,7 @@ public class RealBackpacks extends JavaPlugin {
final List<String> key = backpackData.get(backpack); final List<String> key = backpackData.get(backpack);
final String backpackItem = key.get(2); final String backpackItem = key.get(2);
backpackItems.put(backpack, backpackItems.put(backpack, getConfigLore(RBUtil.getItemstackFromString(backpackItem), backpack));
getConfigLore(RBUtil.getItemstackFromString(backpackItem), backpack));
ShapedRecipe recipe = null; ShapedRecipe recipe = null;
if (key.get(1).equalsIgnoreCase("true")) { if (key.get(1).equalsIgnoreCase("true")) {
@@ -287,14 +284,11 @@ public class RealBackpacks extends JavaPlugin {
continue; continue;
} }
if (itemsplit.length > 1) { if (itemsplit.length > 1) {
final Material baseblock = Material.getMaterial(Integer final Material baseblock = Material.getMaterial(Integer.parseInt(itemsplit[0]));
.parseInt(itemsplit[0])); final MaterialData ingredient = new MaterialData(baseblock, (byte) Integer.parseInt(itemsplit[1]));
final MaterialData ingredient = new MaterialData(baseblock,
(byte) Integer.parseInt(itemsplit[1]));
recipe.setIngredient(shapechar, ingredient); recipe.setIngredient(shapechar, ingredient);
} else { } else {
final Material baseblock = Material.getMaterial(Integer final Material baseblock = Material.getMaterial(Integer.parseInt(itemsplit[0]));
.parseInt(itemsplit[0]));
recipe.setIngredient(shapechar, baseblock); recipe.setIngredient(shapechar, baseblock);
} }
} }
@@ -307,8 +301,7 @@ public class RealBackpacks extends JavaPlugin {
private boolean setupEconomy() { private boolean setupEconomy() {
if (getServer().getPluginManager().getPlugin("Vault") == null) if (getServer().getPluginManager().getPlugin("Vault") == null)
return false; return false;
final RegisteredServiceProvider<Economy> rsp = getServer().getServicesManager() final RegisteredServiceProvider<Economy> rsp = getServer().getServicesManager().getRegistration(Economy.class);
.getRegistration(Economy.class);
if (rsp == null) if (rsp == null)
return false; return false;
econ = rsp.getProvider(); econ = rsp.getProvider();
@@ -320,23 +313,20 @@ public class RealBackpacks extends JavaPlugin {
backpackRecipe.clear(); backpackRecipe.clear();
backpackData.clear(); backpackData.clear();
backpackLore.clear(); backpackLore.clear();
for (final String backpack : getConfig().getConfigurationSection("Backpacks") for (final String backpack : getConfig().getConfigurationSection("Backpacks").getKeys(false)) {
.getKeys(false)) {
final List<String> list = new ArrayList<String>(); final List<String> list = new ArrayList<String>();
backpacks.add(backpack); backpacks.add(backpack);
list.add(0, getConfig().getString("Backpacks." + backpack + ".Size")); list.add(0, getConfig().getString("Backpacks." + backpack + ".Size"));
list.add(1, getConfig().getString("Backpacks." + backpack + ".UseRecipe")); list.add(1, getConfig().getString("Backpacks." + backpack + ".UseRecipe"));
if (getConfig().getStringList("Backpacks." + backpack + ".Recipe") != null) { if (getConfig().getStringList("Backpacks." + backpack + ".Recipe") != null) {
backpackRecipe.put(backpack, backpackRecipe.put(backpack, getConfig().getStringList("Backpacks." + backpack + ".Recipe"));
getConfig().getStringList("Backpacks." + backpack + ".Recipe"));
} else { } else {
backpackRecipe.put(backpack, null); backpackRecipe.put(backpack, null);
} }
list.add(2, getConfig().getString("Backpacks." + backpack + ".BackpackItem.id")); list.add(2, getConfig().getString("Backpacks." + backpack + ".BackpackItem.id"));
list.add(3, getConfig().getString("Backpacks." + backpack + ".BackpackItem.name")); list.add(3, getConfig().getString("Backpacks." + backpack + ".BackpackItem.name"));
if (getConfig().getStringList("Backpacks." + backpack + ".BackpackItem.lore") != null) { if (getConfig().getStringList("Backpacks." + backpack + ".BackpackItem.lore") != null) {
backpackLore.put(backpack, backpackLore.put(backpack, getConfig().getStringList("Backpacks." + backpack + ".BackpackItem.lore"));
getConfig().getStringList("Backpacks." + backpack + ".BackpackItem.lore"));
} else { } else {
backpackLore.put(backpack, null); backpackLore.put(backpack, null);
} }
@@ -344,26 +334,11 @@ public class RealBackpacks extends JavaPlugin {
list.add(5, getConfig().getString("Backpacks." + backpack + ".onDeath.dropContents")); list.add(5, getConfig().getString("Backpacks." + backpack + ".onDeath.dropContents"));
list.add(6, getConfig().getString("Backpacks." + backpack + ".onDeath.dropBackpack")); list.add(6, getConfig().getString("Backpacks." + backpack + ".onDeath.dropBackpack"));
list.add(7, getConfig().getString("Backpacks." + backpack + ".onDeath.keepBackpack")); list.add(7, getConfig().getString("Backpacks." + backpack + ".onDeath.keepBackpack"));
list.add(8, getConfig() list.add(8, getConfig().getString("Backpacks." + backpack + ".WalkSpeedFeature.enabled"));
.getString("Backpacks." + backpack + ".WalkSpeedFeature.enabled")); list.add(9, getConfig().getString("Backpacks." + backpack + ".WalkSpeedFeature.walkingSpeed"));
list.add( list.add(10, getConfig().getString("Backpacks." + backpack + ".IncreasedHungerFeature.enabled"));
9, list.add(11, getConfig().getString("Backpacks." + backpack + ".IncreasedHungerFeature.extraHungerBarsToDeplete"));
getConfig().getString( list.add(12, getConfig().getString("Backpacks." + backpack + ".IncreasedHungerFeature.hungerBarsToSubtractWhenEating"));
"Backpacks." + backpack + ".WalkSpeedFeature.walkingSpeed"));
list.add(
10,
getConfig().getString(
"Backpacks." + backpack + ".IncreasedHungerFeature.enabled"));
list.add(
11,
getConfig().getString(
"Backpacks." + backpack
+ ".IncreasedHungerFeature.extraHungerBarsToDeplete"));
list.add(
12,
getConfig().getString(
"Backpacks." + backpack
+ ".IncreasedHungerFeature.hungerBarsToSubtractWhenEating"));
list.add(13, getConfig().getString("Backpacks." + backpack + ".Purchasable")); list.add(13, getConfig().getString("Backpacks." + backpack + ".Purchasable"));
list.add(14, getConfig().getString("Backpacks." + backpack + ".Price")); list.add(14, getConfig().getString("Backpacks." + backpack + ".Price"));
list.add(15, getConfig().getString("Backpacks." + backpack + ".OpenWith")); list.add(15, getConfig().getString("Backpacks." + backpack + ".OpenWith"));
@@ -371,10 +346,8 @@ public class RealBackpacks extends JavaPlugin {
list.add(17, getConfig().getString("Backpacks." + backpack + ".addGlow")); list.add(17, getConfig().getString("Backpacks." + backpack + ".addGlow"));
list.add(18, getConfig().getString("Backpacks." + backpack + ".Unstackable")); list.add(18, getConfig().getString("Backpacks." + backpack + ".Unstackable"));
backpackData.put(backpack, list); backpackData.put(backpack, list);
backpackBlacklist.put(backpack, backpackBlacklist.put(backpack, getConfig().getStringList("Backpacks." + backpack + ".ItemBlacklist"));
getConfig().getStringList("Backpacks." + backpack + ".ItemBlacklist")); backpackWhitelist.put(backpack, getConfig().getStringList("Backpacks." + backpack + ".ItemWhitelist"));
backpackWhitelist.put(backpack,
getConfig().getStringList("Backpacks." + backpack + ".ItemWhitelist"));
} }
} }

View File

@@ -14,7 +14,6 @@ import org.bukkit.event.block.Action;
import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerDropItemEvent; import org.bukkit.event.player.PlayerDropItemEvent;
import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerPickupItemEvent; import org.bukkit.event.player.PlayerPickupItemEvent;
import org.bukkit.event.player.PlayerRespawnEvent; import org.bukkit.event.player.PlayerRespawnEvent;
import org.bukkit.inventory.Inventory; import org.bukkit.inventory.Inventory;
@@ -61,8 +60,7 @@ public class PlayerListener implements Listener {
if (config.getStringList(backpack + ".Inventory") == null) { if (config.getStringList(backpack + ".Inventory") == null) {
continue; continue;
} }
binv = Serialization.toInventory(config.getStringList(backpack + ".Inventory"), binv = Serialization.toInventory(config.getStringList(backpack + ".Inventory"), key.get(3), Integer.parseInt(key.get(0)));
key.get(3), Integer.parseInt(key.get(0)));
} }
if (plugin.playerData.containsKey(name)) { if (plugin.playerData.containsKey(name)) {
if (p.getItemOnCursor() != null) { if (p.getItemOnCursor() != null) {
@@ -122,8 +120,7 @@ public class PlayerListener implements Listener {
for (final String backpack : plugin.backpacks) { for (final String backpack : plugin.backpacks) {
final List<String> key = plugin.backpackData.get(backpack); final List<String> key = plugin.backpackData.get(backpack);
if (item.getItemMeta().hasDisplayName() if (item.getItemMeta().hasDisplayName()
&& item.getItemMeta().getDisplayName() && item.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', key.get(3)))) {
.equals(ChatColor.translateAlternateColorCodes('&', key.get(3)))) {
if (plugin.isUsingPerms() && !p.hasPermission("rb." + backpack + ".use")) { if (plugin.isUsingPerms() && !p.hasPermission("rb." + backpack + ".use")) {
p.sendMessage(ChatColor.RED + "你没有打开此背包的权限..."); p.sendMessage(ChatColor.RED + "你没有打开此背包的权限...");
continue; continue;
@@ -165,20 +162,16 @@ public class PlayerListener implements Listener {
e1.printStackTrace(); e1.printStackTrace();
} }
if (inv == null) { if (inv == null) {
inv = plugin.getServer().createInventory(p, inv = plugin.getServer().createInventory(p, Integer.parseInt(key.get(0)),
Integer.parseInt(key.get(0)),
ChatColor.translateAlternateColorCodes('&', key.get(3))); ChatColor.translateAlternateColorCodes('&', key.get(3)));
} }
} else { } else {
FileConfig config = PlayerConfig.getInstance(plugin, name); FileConfig config = PlayerConfig.getInstance(plugin, name);
if (!config.isSet(backpack + ".Inventory")) { if (!config.isSet(backpack + ".Inventory")) {
inv = plugin.getServer().createInventory(p, inv = plugin.getServer().createInventory(p, Integer.parseInt(key.get(0)),
Integer.parseInt(key.get(0)),
ChatColor.translateAlternateColorCodes('&', key.get(3))); ChatColor.translateAlternateColorCodes('&', key.get(3)));
} else { } else {
inv = Serialization.toInventory( inv = Serialization.toInventory(config.getStringList(backpack + ".Inventory"), key.get(3), Integer.parseInt(key.get(0)));
config.getStringList(backpack + ".Inventory"), key.get(3),
Integer.parseInt(key.get(0)));
} }
} }
if (p.getOpenInventory().getTopInventory() != null) { if (p.getOpenInventory().getTopInventory() != null) {
@@ -192,14 +185,6 @@ public class PlayerListener implements Listener {
} }
} }
@EventHandler(priority = EventPriority.HIGH)
public void onJoin(PlayerJoinEvent e) {
Player player = e.getPlayer();
if (player.hasPermission("rb.reload")) {
RealBackpacks.versionChecker.VersionCheck(player);
}
}
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
public void onPickup(final PlayerPickupItemEvent e) { public void onPickup(final PlayerPickupItemEvent e) {
final ItemStack item = e.getItem().getItemStack(); final ItemStack item = e.getItem().getItemStack();
@@ -218,7 +203,7 @@ public class PlayerListener implements Listener {
final Inventory inv = p.getInventory(); final Inventory inv = p.getInventory();
final Location loc = e.getItem().getLocation(); final Location loc = e.getItem().getLocation();
final ItemStack backpackItem = plugin.backpackItems.get(backpack); final ItemStack backpackItem = plugin.backpackItems.get(backpack);
int emptySlots = 0,itemAmount = item.getAmount(); int emptySlots = 0, itemAmount = item.getAmount();
for (final ItemStack invItem : inv.getContents()) { for (final ItemStack invItem : inv.getContents()) {
if (invItem == null) { if (invItem == null) {
emptySlots++; emptySlots++;
@@ -258,8 +243,7 @@ public class PlayerListener implements Listener {
final String name = p.getName(); final String name = p.getName();
for (final String backpack : plugin.backpacks) { for (final String backpack : plugin.backpacks) {
final List<String> key = plugin.backpackData.get(backpack); final List<String> key = plugin.backpackData.get(backpack);
if (key.get(7) != null && key.get(7).equalsIgnoreCase("true") if (key.get(7) != null && key.get(7).equalsIgnoreCase("true") && deadPlayers.get(name) != null && deadPlayers.get(name).equals(backpack)) {
&& deadPlayers.get(name) != null && deadPlayers.get(name).equals(backpack)) {
// Keep backpack // Keep backpack
p.getInventory().addItem(plugin.backpackItems.get(backpack)); p.getInventory().addItem(plugin.backpackItems.get(backpack));
p.updateInventory(); p.updateInventory();

View File

@@ -10,46 +10,96 @@ import org.bukkit.ChatColor;
import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;
import com.google.common.base.Charsets; import com.google.common.base.Charsets;
public class VersionChecker { /**
* 自动更新类
*
* @author 蒋天蓓
* 2015年8月14日下午4:01:15
*/
public class VersionChecker implements Listener {
Plugin plugin; Plugin plugin;
public String checkurl = "https://coding.net/u/502647092/p/%s/git/raw/%s/src/plugin.yml";
public String branch = "master";
/**
* @param plugin
* - 插件
*/
public VersionChecker(Plugin plugin) { public VersionChecker(Plugin plugin) {
this.plugin = plugin; this.plugin = plugin;
plugin.getServer().getPluginManager().registerEvents(this, plugin);
this.versioncheck(null);
} }
public void VersionCheck(final Player player) { /**
* @param plugin
* - 插件
* @param branch
* - 分支名称
*/
public VersionChecker(Plugin plugin, String branch) {
this.plugin = plugin;
plugin.getServer().getPluginManager().registerEvents(this, plugin);
this.branch = branch;
this.versioncheck(null);
}
/**
* 获取插件更新链接
*
* @param pluginName
* - 插件名称
* @param branch
* - 插件分支
* @return 更新链接
*/
public String getCheckUrl(String pluginName, String branch) {
return String.format(checkurl, pluginName, branch);
}
@EventHandler
public void onPlayerJoin(PlayerJoinEvent e) {
if (e.getPlayer().isOp()) {
this.versioncheck(e.getPlayer());
}
}
/**
* 开始更新
*
* @param player
* - 获取更新的玩家(null则默认为控制台)
*/
public void versioncheck(final Player player) {
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() { Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override @Override
public void run() { public void run() {
String website = plugin.getDescription().getWebsite(); String readURL = getCheckUrl(plugin.getName(), branch);
String readURL = website
+ (website.substring(website.length() - 1).equals("/") ? "" : "/")
+ "/lastSuccessfulBuild/artifact/src/plugin.yml";
FileConfiguration config; FileConfiguration config;
String currentVersion = plugin.getDescription().getVersion(); String currentVersion = plugin.getDescription().getVersion();
try { try {
URL url = new URL(readURL); URL url = new URL(readURL);
BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream(), BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream(), Charsets.UTF_8));
Charsets.UTF_8));
config = YamlConfiguration.loadConfiguration(br); config = YamlConfiguration.loadConfiguration(br);
String newVersion = config.getString("version"); String newVersion = config.getString("version");
br.close(); br.close();
if (!newVersion.equals(currentVersion)) { if (!newVersion.equals(currentVersion)) {
String[] msg = new String[] { String[] msg = new String[] {
ChatColor.GREEN + plugin.getName() + "插件最新版本 v" + newVersion, ChatColor.GREEN + plugin.getName() + " 插件最新版本 v" + newVersion,
ChatColor.RED + "服务器运行版本: v" + currentVersion, ChatColor.RED + "服务器运行版本: v" + currentVersion,
ChatColor.GOLD + "插件更新网站: " + ChatColor.BLUE ChatColor.GOLD + "插件更新网站: " + ChatColor.BLUE + plugin.getDescription().getWebsite()
+ plugin.getDescription().getWebsite() }; };
if (player != null) { if (player != null) {
player.sendMessage(msg); player.sendMessage(msg);
} else { } else {
for (String s : msg) { plugin.getServer().getConsoleSender().sendMessage(msg);
plugin.getLogger().info(s);
}
} }
} }
} catch (IOException e) { } catch (IOException e) {