mirror of
https://github.com/Zrips/Jobs.git
synced 2024-11-25 20:16:13 +01:00
Just pushing throw
This commit is contained in:
parent
c9d6e306f1
commit
e7a30ec608
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" path=""/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.7.0_79"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
||||
<classpathentry kind="lib" path="C:/Users/Arte/Desktop/Jobs/lib/Vault1.5.3.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/Arte/Desktop/Jobs/lib/mcMMO#127.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/Arte/Desktop/Jobs/lib/CoreProtect_2.12.0.jar"/>
|
||||
|
2170
TranslatableWords/Words_fr.yml
Normal file
2170
TranslatableWords/Words_fr.yml
Normal file
File diff suppressed because it is too large
Load Diff
@ -522,7 +522,10 @@ public class Jobs {
|
||||
* @return the number of slots
|
||||
*/
|
||||
public static int getUsedSlots(Job job) {
|
||||
return usedSlots.get(job);
|
||||
if (usedSlots.containsKey(job))
|
||||
return usedSlots.get(job);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -530,7 +533,8 @@ public class Jobs {
|
||||
* @param job - the job someone is taking
|
||||
*/
|
||||
public static void takeSlot(Job job) {
|
||||
usedSlots.put(job, usedSlots.get(job) + 1);
|
||||
if (usedSlots.containsKey(job))
|
||||
usedSlots.put(job, usedSlots.get(job) + 1);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -538,7 +542,8 @@ public class Jobs {
|
||||
* @param job - the job someone is leaving
|
||||
*/
|
||||
public static void leaveSlot(Job job) {
|
||||
usedSlots.put(job, usedSlots.get(job) - 1);
|
||||
if (usedSlots.containsKey(job))
|
||||
usedSlots.put(job, usedSlots.get(job) - 1);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -736,7 +741,7 @@ public class Jobs {
|
||||
if (income != 0D || points != 0D) {
|
||||
|
||||
// jPlayer
|
||||
|
||||
|
||||
BoostMultiplier FinalBoost = Jobs.getPlayerManager().getFinalBonus(jPlayer, Jobs.getNoneJob());
|
||||
|
||||
// Calculate income
|
||||
|
@ -2,8 +2,6 @@ package com.gamingmesh.jobs.commands.list;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
|
||||
import com.gamingmesh.jobs.Jobs;
|
||||
import com.gamingmesh.jobs.JobsPlugin;
|
||||
import com.gamingmesh.jobs.commands.Cmd;
|
||||
@ -19,22 +17,21 @@ public class shop implements Cmd {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args.length != 0) {
|
||||
if (args.length != 0 && args.length != 1) {
|
||||
Jobs.getCommandManager().sendUsage(sender, "shop");
|
||||
return true;
|
||||
}
|
||||
|
||||
int page = 1;
|
||||
if (args.length == 1)
|
||||
try {
|
||||
page = Integer.parseInt(args[0]);
|
||||
} catch (NumberFormatException e) {
|
||||
}
|
||||
|
||||
Player player = (Player) sender;
|
||||
|
||||
Inventory inv = Jobs.getShopManager().CreateJobsGUI(player);
|
||||
|
||||
Inventory topinv = player.getOpenInventory().getTopInventory();
|
||||
if (topinv != null)
|
||||
player.closeInventory();
|
||||
|
||||
Jobs.getShopManager().GuiList.add(player.getName());
|
||||
|
||||
player.openInventory(inv);
|
||||
Jobs.getShopManager().openInventory(player, page);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -178,6 +178,7 @@ public class LanguageManager {
|
||||
c.get("command.shop.info.price", "&ePrice: &6%price%");
|
||||
c.get("command.shop.info.reqJobs", "&eRequired jobs:");
|
||||
c.get("command.shop.info.reqJobsList", " &6%jobsname%&e: &e%level% lvl");
|
||||
c.get("command.shop.info.cantOpen", "&cCan't open this page");
|
||||
|
||||
c.get("command.shop.info.NoPermForItem", "&cYou don't have required permissions for this item!");
|
||||
c.get("command.shop.info.NoPermToBuy", "&cNo permissions to buy this item");
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -32,7 +32,7 @@ import com.gamingmesh.jobs.stuff.Perm;
|
||||
public class ShopManager {
|
||||
private JobsPlugin plugin;
|
||||
public List<ShopItem> list = new ArrayList<ShopItem>();
|
||||
public List<String> GuiList = new ArrayList<String>();
|
||||
public HashMap<String, Integer> GuiList = new HashMap<String, Integer>();
|
||||
|
||||
public ShopManager(JobsPlugin plugin) {
|
||||
this.plugin = plugin;
|
||||
@ -42,9 +42,38 @@ public class ShopManager {
|
||||
return list;
|
||||
}
|
||||
|
||||
public void checkSlot(Player player, int slot) {
|
||||
public void openInventory(Player player, int page) {
|
||||
Inventory inv = Jobs.getShopManager().CreateJobsGUI(player, page);
|
||||
if (inv == null) {
|
||||
player.sendMessage(Jobs.getLanguage().getMessage("command.shop.info.cantOpen"));
|
||||
return;
|
||||
}
|
||||
Inventory topinv = player.getOpenInventory().getTopInventory();
|
||||
if (topinv != null)
|
||||
player.closeInventory();
|
||||
Jobs.getShopManager().GuiList.put(player.getName(), page);
|
||||
player.openInventory(inv);
|
||||
}
|
||||
|
||||
ShopItem item = list.get(slot);
|
||||
public void checkSlot(Player player, int slot, int page) {
|
||||
|
||||
List<ShopItem> ls = getItemsByPage(page);
|
||||
|
||||
int GuiSize = this.getGuiSize(ls, page);
|
||||
if (slot == getPrevButtonSlot(GuiSize, page)) {
|
||||
openInventory(player, page - 1);
|
||||
return;
|
||||
}
|
||||
|
||||
if (slot == getnextButtonSlot(GuiSize, page)) {
|
||||
openInventory(player, page + 1);
|
||||
return;
|
||||
}
|
||||
|
||||
if (slot > ls.size() - 1)
|
||||
return;
|
||||
|
||||
ShopItem item = ls.get(slot);
|
||||
PlayerPoints pointsInfo = Jobs.getPlayerManager().getPointsData().getPlayerPointsInfo(player.getUniqueId());
|
||||
|
||||
if (!Perm.hasPermission(player, "jobs.items.bypass")) {
|
||||
@ -125,29 +154,66 @@ public class ShopManager {
|
||||
player.sendMessage(Jobs.getLanguage().getMessage("command.shop.info.Paid", "%amount%", item.getPrice()));
|
||||
}
|
||||
|
||||
player.getOpenInventory().getTopInventory().setContents(CreateJobsGUI(player).getContents());
|
||||
player.getOpenInventory().getTopInventory().setContents(CreateJobsGUI(player, page).getContents());
|
||||
|
||||
}
|
||||
|
||||
public Inventory CreateJobsGUI(Player player) {
|
||||
private List<ShopItem> getItemsByPage(Integer page) {
|
||||
List<ShopItem> ls = new ArrayList<ShopItem>();
|
||||
for (ShopItem one : list) {
|
||||
if (one.getPage() == page)
|
||||
ls.add(one);
|
||||
}
|
||||
return ls;
|
||||
}
|
||||
|
||||
private int getGuiSize(List<ShopItem> ls, int page) {
|
||||
int GuiSize = 9;
|
||||
|
||||
if (list.size() > 9)
|
||||
if (ls.size() > 9)
|
||||
GuiSize = 18;
|
||||
|
||||
if (list.size() > 18)
|
||||
if (ls.size() > 18)
|
||||
GuiSize = 27;
|
||||
|
||||
if (list.size() > 27)
|
||||
if (ls.size() > 27)
|
||||
GuiSize = 36;
|
||||
|
||||
if (list.size() > 36)
|
||||
if (ls.size() > 36)
|
||||
GuiSize = 45;
|
||||
|
||||
if (list.size() > 45)
|
||||
if (ls.size() == 45)
|
||||
GuiSize = 54;
|
||||
|
||||
if (page > 1 && GuiSize < 54)
|
||||
GuiSize += 9;
|
||||
|
||||
return GuiSize;
|
||||
}
|
||||
|
||||
private int getPrevButtonSlot(int GuiSize, int page) {
|
||||
int prev = -1;
|
||||
if (page > 1)
|
||||
prev = GuiSize - 9;
|
||||
return prev;
|
||||
}
|
||||
|
||||
private int getnextButtonSlot(int GuiSize, int page) {
|
||||
int next = -1;
|
||||
List<ShopItem> lsnext = getItemsByPage(page + 1);
|
||||
if (!lsnext.isEmpty())
|
||||
next = GuiSize - 1;
|
||||
return next;
|
||||
}
|
||||
|
||||
public Inventory CreateJobsGUI(Player player, Integer page) {
|
||||
|
||||
List<ShopItem> ls = getItemsByPage(page);
|
||||
|
||||
if (ls.isEmpty())
|
||||
return null;
|
||||
|
||||
int GuiSize = getGuiSize(ls, page);
|
||||
|
||||
String title = Jobs.getLanguage().getMessage("command.shop.info.title");
|
||||
if (title.length() > 32)
|
||||
title = title.substring(0, 30) + "..";
|
||||
@ -159,9 +225,9 @@ public class ShopManager {
|
||||
|
||||
Inventory GuiInv = Bukkit.createInventory(null, GuiSize, title);
|
||||
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
for (int i = 0; i < ls.size(); i++) {
|
||||
|
||||
ShopItem item = list.get(i);
|
||||
ShopItem item = ls.get(i);
|
||||
|
||||
ArrayList<String> Lore = new ArrayList<String>();
|
||||
|
||||
@ -220,6 +286,24 @@ public class ShopManager {
|
||||
GUIitem.setItemMeta(meta);
|
||||
GuiInv.setItem(i, GUIitem);
|
||||
}
|
||||
|
||||
ItemStack Item = new ItemStack(Material.ARROW);
|
||||
|
||||
ItemMeta meta = Item.getItemMeta();
|
||||
int pervSlot = getPrevButtonSlot(GuiSize, page);
|
||||
if (pervSlot != -1) {
|
||||
meta.setDisplayName(Jobs.getLanguage().getMessage("command.help.output.prev"));
|
||||
Item.setItemMeta(meta);
|
||||
GuiInv.setItem(pervSlot, Item);
|
||||
}
|
||||
|
||||
int nextSlot = getnextButtonSlot(GuiSize, page);
|
||||
if (nextSlot != -1) {
|
||||
meta.setDisplayName(Jobs.getLanguage().getMessage("command.help.output.next"));
|
||||
Item.setItemMeta(meta);
|
||||
GuiInv.setItem(nextSlot, Item);
|
||||
}
|
||||
|
||||
return GuiInv;
|
||||
}
|
||||
|
||||
@ -235,6 +319,8 @@ public class ShopManager {
|
||||
ArrayList<String> categoriesList = new ArrayList<String>(ConfCategory.getKeys(false));
|
||||
if (categoriesList.size() == 0)
|
||||
return;
|
||||
int i = 0;
|
||||
int y = 1;
|
||||
for (String category : categoriesList) {
|
||||
ConfigurationSection NameSection = ConfCategory.getConfigurationSection(category);
|
||||
|
||||
@ -361,10 +447,19 @@ public class ShopManager {
|
||||
Sitem.setitems(items);
|
||||
}
|
||||
|
||||
if (list.size() >= 54) {
|
||||
Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "[Jobs] To many jobs shop items, max allowed is 54! Only first 54 items will be used!");
|
||||
break;
|
||||
// if (list.size() >= 54) {
|
||||
// Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "[Jobs] To many jobs shop items, max allowed is 54! Only first 54 items will be used!");
|
||||
// break;
|
||||
// }
|
||||
i++;
|
||||
|
||||
if (i > 45) {
|
||||
i = 1;
|
||||
y++;
|
||||
}
|
||||
|
||||
Sitem.setSlot(i);
|
||||
Sitem.setPage(y);
|
||||
list.add(Sitem);
|
||||
}
|
||||
|
||||
@ -375,8 +470,8 @@ public class ShopManager {
|
||||
}
|
||||
|
||||
public void CloseInventories() {
|
||||
for (String one : GuiList) {
|
||||
Player player = Bukkit.getPlayer(one);
|
||||
for (Entry<String, Integer> one : GuiList.entrySet()) {
|
||||
Player player = Bukkit.getPlayer(one.getKey());
|
||||
if (player != null) {
|
||||
player.closeInventory();
|
||||
}
|
||||
|
Binary file not shown.
@ -253,10 +253,10 @@ public class JobsPlayer {
|
||||
|
||||
private Double getPlayerBoost(String JobName, BoostType type) {
|
||||
double Boost = 1.0;
|
||||
if (Perm.hasPermission(player, "jobs.boost." + JobName + "." + type.getName().toLowerCase()) ||
|
||||
Perm.hasPermission(player, "jobs.boost." + JobName + ".all") ||
|
||||
Perm.hasPermission(player, "jobs.boost.all.all") ||
|
||||
Perm.hasPermission(player, "jobs.boost.all." + type.getName().toLowerCase())) {
|
||||
if (player.hasPermission("jobs.boost." + JobName + "." + type.getName().toLowerCase()) ||
|
||||
player.hasPermission("jobs.boost." + JobName + ".all") ||
|
||||
player.hasPermission("jobs.boost.all.all") ||
|
||||
player.hasPermission("jobs.boost.all." + type.getName().toLowerCase())) {
|
||||
Boost = Jobs.getGCManager().Boost.get(type);
|
||||
}
|
||||
return Boost;
|
||||
|
@ -10,6 +10,9 @@ public class ShopItem {
|
||||
|
||||
private double price = 0D;
|
||||
|
||||
private int slot = -1;
|
||||
private int page = -1;
|
||||
|
||||
private int IconId = 1;
|
||||
private int IconData = 0;
|
||||
private int IconAmount = 1;
|
||||
@ -31,6 +34,22 @@ public class ShopItem {
|
||||
this.IconId = IconId;
|
||||
}
|
||||
|
||||
public void setPage(Integer page) {
|
||||
this.page = page;
|
||||
}
|
||||
|
||||
public int getPage() {
|
||||
return this.page;
|
||||
}
|
||||
|
||||
public void setSlot(Integer slot) {
|
||||
this.slot = slot;
|
||||
}
|
||||
|
||||
public int getSlot() {
|
||||
return this.slot;
|
||||
}
|
||||
|
||||
public void setitems(List<JobItems> items) {
|
||||
this.items = items;
|
||||
}
|
||||
|
@ -116,6 +116,10 @@ public abstract class JobsDAO {
|
||||
|
||||
protected abstract void checkUpdate9() throws SQLException;
|
||||
|
||||
protected abstract boolean createDefaultLogBase();
|
||||
|
||||
protected abstract boolean dropDataBase(String name);
|
||||
|
||||
/**
|
||||
* Gets the database prefix
|
||||
* @return the prefix
|
||||
@ -771,11 +775,10 @@ public abstract class JobsDAO {
|
||||
JobsConnection conn = getConnection();
|
||||
if (conn == null)
|
||||
return;
|
||||
PreparedStatement prest = null;
|
||||
try {
|
||||
|
||||
int time = TimeManage.timeInInt();
|
||||
|
||||
PreparedStatement prest = conn.prepareStatement("SELECT * FROM `" + prefix + "log` WHERE `userid` = ? AND `time` = ? ;");
|
||||
prest = conn.prepareStatement("SELECT * FROM `" + prefix + "log` WHERE `userid` = ? AND `time` = ? ;");
|
||||
prest.setInt(1, player.getUserId());
|
||||
prest.setInt(2, time);
|
||||
ResultSet res = prest.executeQuery();
|
||||
@ -783,9 +786,22 @@ public abstract class JobsDAO {
|
||||
Loging.loadToLog(player, res.getString("action"), res.getString("itemname"), res.getInt("count"), res.getDouble("money"), res.getDouble("exp"));
|
||||
}
|
||||
res.close();
|
||||
prest.close();
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
} catch (Exception e) {
|
||||
if (prest != null)
|
||||
try {
|
||||
prest.close();
|
||||
} catch (SQLException e1) {
|
||||
e1.printStackTrace();
|
||||
}
|
||||
this.dropDataBase("log");
|
||||
this.createDefaultLogBase();
|
||||
} finally {
|
||||
if (prest != null)
|
||||
try {
|
||||
prest.close();
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -764,7 +764,7 @@ public class JobsDAOMySQL extends JobsDAO {
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean createDefaultLogBase() {
|
||||
protected boolean createDefaultLogBase() {
|
||||
try {
|
||||
executeSQL("CREATE TABLE `" + getPrefix()
|
||||
+ "log` (`id` int NOT NULL AUTO_INCREMENT PRIMARY KEY, `userid` int, `time` bigint, `action` varchar(20), `itemname` varchar(60), `count` int, `money` double, `exp` double);");
|
||||
@ -804,7 +804,7 @@ public class JobsDAOMySQL extends JobsDAO {
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean dropDataBase(String name) {
|
||||
protected boolean dropDataBase(String name) {
|
||||
try {
|
||||
executeSQL("DROP TABLE IF EXISTS `" + getPrefix() + name + "`;");
|
||||
} catch (SQLException e) {
|
||||
|
@ -851,7 +851,7 @@ public class JobsDAOSQLite extends JobsDAO {
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean createDefaultLogBase() {
|
||||
protected boolean createDefaultLogBase() {
|
||||
try {
|
||||
executeSQL("CREATE TABLE `" + getPrefix()
|
||||
+ "log` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `userid` int, `time` bigint, `action` varchar(20), `itemname` varchar(60), `count` int, `money` double, `exp` double);");
|
||||
@ -881,7 +881,7 @@ public class JobsDAOSQLite extends JobsDAO {
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean dropDataBase(String name) {
|
||||
protected boolean dropDataBase(String name) {
|
||||
try {
|
||||
executeSQL("DROP TABLE IF EXISTS `" + getPrefix() + name + "`;");
|
||||
} catch (SQLException e) {
|
||||
|
@ -96,6 +96,9 @@ public class BufferedEconomy {
|
||||
TaxesPoints += payment.getPoints() * (Jobs.getGCManager().TaxesAmount / 100.0);
|
||||
}
|
||||
|
||||
if (payment.getOfflinePlayer() == null)
|
||||
continue;
|
||||
|
||||
UUID uuid = payment.getOfflinePlayer().getUniqueId();
|
||||
if (paymentCache.containsKey(uuid)) {
|
||||
BufferedPayment existing = paymentCache.get(uuid);
|
||||
@ -160,6 +163,9 @@ public class BufferedEconomy {
|
||||
for (BufferedPayment payment : paymentCache.values()) {
|
||||
i++;
|
||||
|
||||
if (payment.getOfflinePlayer() == null)
|
||||
continue;
|
||||
|
||||
// JobsPayment event
|
||||
JobsPaymentEvent JobsPaymentEvent = new JobsPaymentEvent(payment.getOfflinePlayer(), payment.getAmount(), payment.getPoints());
|
||||
Bukkit.getServer().getPluginManager().callEvent(JobsPaymentEvent);
|
||||
|
@ -67,6 +67,7 @@ import com.gamingmesh.jobs.container.Job;
|
||||
import com.gamingmesh.jobs.container.JobLimitedItems;
|
||||
import com.gamingmesh.jobs.container.JobProgression;
|
||||
import com.gamingmesh.jobs.container.JobsPlayer;
|
||||
import com.gamingmesh.jobs.stuff.Debug;
|
||||
|
||||
public class JobsListener implements Listener {
|
||||
// hook to the main plugin
|
||||
@ -83,15 +84,19 @@ public class JobsListener implements Listener {
|
||||
|
||||
Player player = (Player) event.getWhoClicked();
|
||||
|
||||
if (!Jobs.getShopManager().GuiList.contains(player.getName()))
|
||||
if (!Jobs.getShopManager().GuiList.containsKey(player.getName()))
|
||||
return;
|
||||
|
||||
event.setCancelled(true);
|
||||
|
||||
Debug.D(event.getRawSlot());
|
||||
|
||||
if (event.getSlot() < 0 || event.getSlot() >= Jobs.getShopManager().list.size())
|
||||
int tsize = player.getOpenInventory().getTopInventory().getSize();
|
||||
|
||||
if (event.getRawSlot() < 0 || event.getRawSlot() >= tsize)
|
||||
return;
|
||||
|
||||
Jobs.getShopManager().checkSlot(player, event.getSlot());
|
||||
Jobs.getShopManager().checkSlot(player, event.getRawSlot(), Jobs.getShopManager().GuiList.get(player.getName()));
|
||||
|
||||
}
|
||||
|
||||
@ -102,7 +107,7 @@ public class JobsListener implements Listener {
|
||||
|
||||
Player player = (Player) event.getPlayer();
|
||||
|
||||
if (Jobs.getShopManager().GuiList.contains(player.getName()))
|
||||
if (Jobs.getShopManager().GuiList.containsKey(player.getName()))
|
||||
Jobs.getShopManager().GuiList.remove(player.getName());
|
||||
}
|
||||
|
||||
|
@ -278,7 +278,7 @@ public class JobsPaymentListener implements Listener {
|
||||
return;
|
||||
|
||||
// check if in creative
|
||||
if (player.getGameMode()== GameMode.CREATIVE && !Jobs.getGCManager().payInCreative())
|
||||
if (player.getGameMode() == GameMode.CREATIVE && !Jobs.getGCManager().payInCreative())
|
||||
return;
|
||||
|
||||
if (!Jobs.getPermissionHandler().hasWorldPermission(player, player.getLocation().getWorld().getName()))
|
||||
@ -1080,7 +1080,7 @@ public class JobsPaymentListener implements Listener {
|
||||
if (block == null)
|
||||
continue;
|
||||
|
||||
if (block.getType().equals(Material.FURNACE) && block.hasMetadata(furnaceOwnerMetadata))
|
||||
if (block.getType() == Material.FURNACE && block.hasMetadata(furnaceOwnerMetadata))
|
||||
block.removeMetadata(furnaceOwnerMetadata, plugin);
|
||||
|
||||
if (Jobs.getGCManager().useBlockProtection)
|
||||
@ -1104,12 +1104,14 @@ public class JobsPaymentListener implements Listener {
|
||||
if (block == null)
|
||||
return;
|
||||
|
||||
if (block.getType().equals(Material.FURNACE)) {
|
||||
if (event.isCancelled())
|
||||
return;
|
||||
|
||||
if (block.getType() == Material.FURNACE || block.getType() == Material.BURNING_FURNACE) {
|
||||
if (block.hasMetadata(furnaceOwnerMetadata))
|
||||
block.removeMetadata(furnaceOwnerMetadata, plugin);
|
||||
|
||||
block.setMetadata(furnaceOwnerMetadata, new FixedMetadataValue(plugin, event.getPlayer().getName()));
|
||||
} else if (block.getType().equals(Material.BREWING_STAND)) {
|
||||
} else if (block.getType() == Material.BREWING_STAND) {
|
||||
if (block.hasMetadata(brewingOwnerMetadata))
|
||||
block.removeMetadata(brewingOwnerMetadata, plugin);
|
||||
|
||||
|
Binary file not shown.
@ -1,50 +1,158 @@
|
||||
economy:
|
||||
error:
|
||||
nomoney: Il n''y a plus d''argent dans la banque nationale !
|
||||
nomoney: Il n'y a plus d'argent dans la banque du serveur!
|
||||
limitedItem:
|
||||
error:
|
||||
levelup: '&cVous devez augmenter votre niveau dans le métier [jobname] pour utiliser
|
||||
cet objet!'
|
||||
general:
|
||||
info:
|
||||
toplineseparator: '&7*********************** &6%playername% &7***********************'
|
||||
separator: '&7*******************************************************'
|
||||
admin:
|
||||
error: '&cIl y a eu une erreur pendant la commande.'
|
||||
success: '&eVotre commande a été exécuté avec succès.'
|
||||
error:
|
||||
noHelpPage: '&cIl n''y a pas de page d''aide portant ce numéro!'
|
||||
notNumber: '&eMerci d''utiliser des chiffres!'
|
||||
job: '&cLe métier que vous avez selectionné n''existe pas!'
|
||||
permission: '&cVous n''avez pas la permission de faire cela!'
|
||||
noinfo: '&cAucune information trouvée!'
|
||||
noinfoByPlayer: '&cAucune information trouvée par [%playername%] nom du joueur!'
|
||||
ingame: '&cVous ne pouvez utiliser cette commande qu''en jeu!'
|
||||
fromconsole: '&cCette commande doit être lancée depuis la console!'
|
||||
worldisdisabled: '&cVous ne pouvez pas utiliser cette commande dans ce monde!'
|
||||
command:
|
||||
boost:
|
||||
moneyboost:
|
||||
help:
|
||||
info: Boost les gains d''Exp/Argent pour tous les joueurs
|
||||
info: Booster le gain d'argent pour tous les joueurs
|
||||
args: '[jobname] [rate]'
|
||||
output:
|
||||
allreset: Tous les boosts d''Exp/Argent ont été désactivés.
|
||||
jobsboostreset: Le boost pour %jobname% a été désactivé.
|
||||
nothingtoreset: Il n''y a rien à désactiver.
|
||||
boostalladded: Boost de %boost% ajouté à tous les métiers !
|
||||
boostadded: Boost de &e%boost% &aajouté pour &e%jobname% !
|
||||
infostats: '&c-----> &aTaux d''Exp/argent de x%boost% activé&c <-------'
|
||||
allreset: Tous les boost d'argent ont été désactivés
|
||||
jobsboostreset: Le boost d'argent pour le métier %jobname% a été désactivé
|
||||
nothingtoreset: Il n'y a rien à remettre à zéro
|
||||
boostalladded: Un boost d'argent de %boost% a été ajouté pour tous les métiers!
|
||||
boostadded: Un boost d'argent de &e%boost% &aa été ajouté pour le métier &e%jobname%!
|
||||
infostats: '&c-----> &aBoost d''argent x%boost% activé&c <-------'
|
||||
pointboost:
|
||||
help:
|
||||
info: Booster de points pour tous les joueurs
|
||||
args: '[jobname] [rate]'
|
||||
output:
|
||||
allreset: Tous les boost de points ont été désactivés
|
||||
jobsboostreset: Le boost de points pour le métier %jobname% a été désactivé
|
||||
nothingtoreset: Il n'y a rien a remettre à zéro
|
||||
boostalladded: Un boost de points de %boost% a été ajouté pour tous les métiers!
|
||||
boostadded: Un boost de points de &e%boost% &aa été ajouté pour le métier &e%jobname%!
|
||||
infostats: '&c-----> &aBoost de points x%boost% activé&c <-------'
|
||||
expboost:
|
||||
help:
|
||||
info: Booster d'XP pour tous les joueurs
|
||||
args: '[jobname] [rate]'
|
||||
output:
|
||||
allreset: Tous les boost d'XP ont été désactivés
|
||||
jobsboostreset: Le boost d'XP pour le métier %jobname% a été désactivé
|
||||
nothingtoreset: Il n'y a rien a reset
|
||||
boostalladded: Un boost d'XP de %boost% a été ajouté pour tous les métiers!
|
||||
boostadded: Un boost d'XP de &e%boost% &aa été ajouté pour le métier &e%jobname%!
|
||||
infostats: '&c-----> &aBoost d''XP x%boost% activé&c <-------'
|
||||
bonus:
|
||||
help:
|
||||
info: Voir les bonus de métiers
|
||||
args: '[jobname]'
|
||||
output:
|
||||
topline: '&7**************** &2[argent] &6[points] &e[exp] &7****************'
|
||||
permission: ' &eBonus de permission: %money% %points% %exp%'
|
||||
item: ' &eBonus d''Objet: %money% %points% %exp%'
|
||||
global: ' &eBonus global: %money% %points% %exp%'
|
||||
dynamic: ' &eBonus de paiement dynamique: %money% %points% %exp%'
|
||||
area: ' &eBonus de zone: %money% %points% %exp%'
|
||||
final: ' &eBonus final: %money% %points% %exp%'
|
||||
convert:
|
||||
help:
|
||||
info: Convertit le système de la base de données. Si vous utilisez SQLite, cela sera converti à MySQL et vice-versa.
|
||||
info: Converti le système de la base de données. Si vous utilisez SQLite, cela sera converti à MySQL et vice-versa.
|
||||
args: ''
|
||||
limit:
|
||||
help:
|
||||
info: Montre les limites des métiers
|
||||
args: ''
|
||||
output:
|
||||
lefttime: '&eTemps restant avant la fin de la limite : &2%hour% &eheure(s) &2%min% &emin &2%sec%
|
||||
&esec'
|
||||
lefttime: '&eTemps restant avant la fin de la limite : &2%hour%&eh &2%min%&em
|
||||
&2%sec%&es'
|
||||
moneylimit: '&eLimite : &2%money%&e/&2%totalmoney%'
|
||||
reachedlimit: '&4Vous avez atteint le nombre d''argent gagner max pour cette heure!'
|
||||
reachedlimit2: '&eVous pouvez vérifier votre limite avec &2/jobs limit &ecommand'
|
||||
leftexptime: '&eTemps restant avant la fin de la limite d''XP: &2%hour%&eh &2%min
|
||||
&em &2%sec%&es'
|
||||
explimit: '&eLimite d''XP: &2%exp%&e/&2%totalexp%'
|
||||
leftpointtime: '&eTemps restant avant la fin de la limite de points: &2%hour%&eh
|
||||
&2%min &em &2%sec%&es'
|
||||
pointlimit: '&eLimite de points: &2%current%&e/&2%total%'
|
||||
reachedlimit: '&4Vous avez atteint le nombre maximum d''argent gagné pendant
|
||||
le temps imparti!'
|
||||
reachedlimit2: '&eVous pouvez vérifier votre limite avec la commande &2/jobs
|
||||
limit'
|
||||
reachedExplimit: '&4Vous avez atteint le nombre maximal d''XP gagné pendant
|
||||
le temps imparti!'
|
||||
reachedExplimit2: '&eVous pouvez voir la limite avec la commande &2/jobs limit'
|
||||
reachedPointlimit: '&4Vous avez atteint le nombre maximal de points gagné pendant
|
||||
le temps imparti!'
|
||||
reachedPointlimit2: '&eVous pouvez voir la limite avec la commande &2/jobs limit'
|
||||
notenabled: '&eLa limite n''est pas activée.'
|
||||
admin:
|
||||
error: Erreur dans la commande.
|
||||
success: Votre commande a été exécutée.
|
||||
error:
|
||||
job: Le métier que vous avez selectionné n''existe pas !
|
||||
permission: Vous n''avez pas la permission !
|
||||
help:
|
||||
output:
|
||||
info: Tapez /jobs [cmd] ? pour plus d''information sur une commande.
|
||||
usage: 'Utilisation: %usage%'
|
||||
title: '&e-------&e ======= &6Métiers &e======= &e-------'
|
||||
page: '&e-----&e ====== Page &6[1] &esur &6[2] &e====== &e-----'
|
||||
prev: '&e--- <<<<< &6Page précédente &e|'
|
||||
next: '&e|&6 Page suivante &e>>>> ---'
|
||||
points:
|
||||
help:
|
||||
info: Montrer combien de points a le joueur.
|
||||
args: '[playername]'
|
||||
currentpoints: ' &eNombre de points actuel: &6%currentpoints%'
|
||||
totalpoints: ' &eNombre de points total collecté : &6%totalpoints%'
|
||||
editpoints:
|
||||
help:
|
||||
info: Editer le nombre de points d'un joueur.
|
||||
args: '[set/add/take] [playername] [amount]'
|
||||
output:
|
||||
set: '&eLes points du joueur &6%playername%&e ont été mis à &6%amount%'
|
||||
add: '&eLe joueur &6%playername% &ea reçu &6%amount% &epoints. Il a maintenant
|
||||
&6%total%'
|
||||
take: '&eLe joueur &6%playername% &ea perdu &6%amount% &epoints. Il a maintenant
|
||||
&6%total%'
|
||||
blockinfo:
|
||||
help:
|
||||
info: Montre les infos du bloc que vous regardez.
|
||||
args: ''
|
||||
output:
|
||||
name: ' &eNom du bloc: &6%blockname%'
|
||||
id: ' &eId du bloc: &6%blockid%'
|
||||
data: ' &eData du bloc: &6%blockdata%'
|
||||
usage: ' &eUtilisation: &6%first% &eou &6%second%'
|
||||
stats:
|
||||
help:
|
||||
info: 'Donne votre niveau dans chacun de vos métiers.'
|
||||
info: Donne votre niveau dans chacun de vos métiers.
|
||||
args: '[playername]'
|
||||
error:
|
||||
nojob: Vous n''avez pas de métier.
|
||||
output: 'lvl%joblevel% %jobname% : %jobxp%/%jobmaxxp% xp'
|
||||
shop:
|
||||
help:
|
||||
info: Ouvrir les magasins spéciaux de métiers.
|
||||
args: ''
|
||||
info:
|
||||
title: '&e------- &8Magasin de métier &e-------'
|
||||
currentPoints: '&eVous avez: &6%currentpoints%'
|
||||
price: '&ePrix: &6%price%'
|
||||
reqJobs: '&eMétier requis:'
|
||||
reqJobsList: ' &6%jobsname%&e: &e%level% lvl'
|
||||
NoPermForItem: '&cVous n''avez pas la permission requise pour utiliser cet objet!'
|
||||
NoPermToBuy: '&cVous n''avez pas la permission requise pour acheter cet objet!'
|
||||
NoJobReqForitem: '&cVous n''avez pas le métier requis (&6%jobname%&e) qui nécéssite
|
||||
(&6%joblevel%&e) level'
|
||||
NoPoints: '&cVous n''avez pas assez de points'
|
||||
Paid: '&eVous avez payé &6%amount% &epour cet objet'
|
||||
archive:
|
||||
help:
|
||||
info: Donne tous les métiers en archive par joueur.
|
||||
@ -55,31 +163,55 @@ command:
|
||||
give:
|
||||
help:
|
||||
info: Donne un objet par nom de métier et nom de catégorie d''objet. Le pseudo est facultatif.
|
||||
args: '[Spielername] [Jobname] [Item]'
|
||||
args: '[Nom du joueur] [Métier] [Item]'
|
||||
output:
|
||||
notonline: '&4[%playername%] est hors-ligne !'
|
||||
noitem: '&4Ce nom ne correspond à aucun objet !'
|
||||
info:
|
||||
help:
|
||||
title: '&2*** &eJobs&2 ***'
|
||||
title: '&2*** &eMétier&2 ***'
|
||||
info: Donne combien est payé chaque métier et pour quoi.
|
||||
args: '[jobname] [action]'
|
||||
penalty: '&eCe métier à &c[penalty]% &ede pénalité car il a trop de succès.'
|
||||
bonus: '&eCe métier à &2[bonus]% &ede bonus car il est vraiment délaissé.'
|
||||
args: '[métier] [action]'
|
||||
actions: '&eLes actions possibles sont: &f%actions%'
|
||||
max: ' - &eNiveau Max:&f '
|
||||
material: '&7%material%'
|
||||
levelRange: ' &a(&e%levelFrom% &a- &e%levelUntil% &alevels)'
|
||||
levelFrom: ' &a(from &e%levelFrom% &alevel)'
|
||||
levelUntil: ' &a(until &e%levelUntil% &alevel)'
|
||||
money: ' &2%money%$'
|
||||
points: ' &6%points%points'
|
||||
exp: ' &e%exp%xp'
|
||||
gui:
|
||||
pickjob: '&eChoisissez un métier!'
|
||||
jobinfo: '&e[jobname] info!'
|
||||
actions: '&c&nActions rémunérées:'
|
||||
leftClick: '&bClic gauche pour plus d''infos'
|
||||
rightClick: '&bClic droit pour rejoindre ce métier'
|
||||
leftSlots: '&eNombre de place restante:&f '
|
||||
working: ' &2&lVous êtes déjà embauché'
|
||||
max: '&6Level Max:&f '
|
||||
back: '&e<<< Retour'
|
||||
output:
|
||||
break:
|
||||
info: Casser
|
||||
none: '%jobname% ne donne rien en cassant des blocs.'
|
||||
tntbreak:
|
||||
info: TNT
|
||||
none: '%jobname% ne donne rien en cassant des blocs avec de la TNT.'
|
||||
place:
|
||||
info: Placer
|
||||
none: '%jobname% ne donne rien en plaçant des blocs.'
|
||||
kill:
|
||||
info: Tuer
|
||||
info: TuerMob
|
||||
none: '%jobname% ne donne rien en tuant.'
|
||||
mmkill:
|
||||
info: TuerMM
|
||||
none: '%jobname% ne donne rien en tuant des MM mobs.'
|
||||
fish:
|
||||
info: Pêcher
|
||||
none: '%jobname% ne donne rien en pêchant.'
|
||||
none: '%jobname% ne donne rien en pèchant.'
|
||||
craft:
|
||||
info: Crafter
|
||||
none: '%jobname% ne donne rien en craftant.'
|
||||
@ -89,6 +221,12 @@ command:
|
||||
brew:
|
||||
info: Infuser
|
||||
none: '%jobname% ne donne rien en faisant infuser.'
|
||||
eat:
|
||||
info: Manger
|
||||
none: '%jobname% ne donne rien en mangeant.'
|
||||
dye:
|
||||
info: Teindre
|
||||
none: '%jobname% ne donne rien en teignant des objet.'
|
||||
enchant:
|
||||
info: Enchanter
|
||||
none: '%jobname% ne donne rien en enchantant.'
|
||||
@ -102,17 +240,20 @@ command:
|
||||
info: Apprivoiser
|
||||
none: '%jobname% ne donne rien en apprivoisant.'
|
||||
milk:
|
||||
info: Melken
|
||||
none: '%jobname% bekommt kein Geld für das Melken.'
|
||||
info: Traire
|
||||
none: '%jobname% ne donne rien lors de la traite d''une vache.'
|
||||
shear:
|
||||
info: Scheren
|
||||
none: '%jobname% bekommt kein Geld für das Scheren.'
|
||||
info: Tailler
|
||||
none: '%jobname% ne donne rien en coupant les feuillages avec une cisaille.'
|
||||
explore:
|
||||
info: Explorer
|
||||
none: '%jobname% ne donne rien en explorant.'
|
||||
custom-kill:
|
||||
info: Tuer
|
||||
info: TuerJoueur
|
||||
none: '%jobname% ne donne rien en tuant des joueurs particuliers.'
|
||||
playerinfo:
|
||||
help:
|
||||
info: Donne combien est payé chaque métier et pour quoi pour un autre joueur.
|
||||
info: Donne le montant payé de chaque action pour un certain métier sur un autre joueur.
|
||||
args: '[playername] [jobname] [action]'
|
||||
join:
|
||||
help:
|
||||
@ -127,7 +268,7 @@ command:
|
||||
help:
|
||||
info: Quitter le métier.
|
||||
args: '[jobname]'
|
||||
success: Vous n''exercez plus le métier de %jobname%.
|
||||
success: Vous n'exercez plus le métier de %jobname%.
|
||||
leaveall:
|
||||
help:
|
||||
info: Quitter tous vos métiers.
|
||||
@ -142,6 +283,9 @@ command:
|
||||
output:
|
||||
header: 'Vous pouvez exercer les métiers suivants :'
|
||||
footer: Pour plus d'informations, tapez /jobs info [JobName]
|
||||
totalWorkers: '&6Employés: &f[amount]'
|
||||
penalty: '&4Penalité: &c[amount]%'
|
||||
bonus: '&2Bonus: &a[amount]%'
|
||||
fire:
|
||||
help:
|
||||
info: Renvoie le joueur de son métier.
|
||||
@ -174,7 +318,44 @@ command:
|
||||
nojob: Aucun métier ne porte ce nom.
|
||||
output:
|
||||
topline: '&aTop&e 10 &ades joueurs &e%jobname%'
|
||||
list: '&e%number%&a. &e%playername% &alvl &e%level% &aavec&e %exp% &aexp'
|
||||
list: '&e%number%&a. &e%playername% &alvl &e%level% &aavec&e %exp%&axp'
|
||||
prev: '&e<<<<< Page précédente &2|'
|
||||
next: '&2|&e Page suivante >>>>'
|
||||
show: '&2Montrer la top liste depuis &e[from] &2jusqu''a &e[until]'
|
||||
gtop:
|
||||
help:
|
||||
info: Montrer les 15 meilleurs employés.
|
||||
args: ''
|
||||
error:
|
||||
nojob: Impossible de trouver des informations.
|
||||
output:
|
||||
topline: '&aMontrer les 15 meilleurs employés par métier'
|
||||
list: '&e%number%&a. &e%playername% &alvl &e%level% &aavec&e %exp%&axp'
|
||||
prev: '&e<<<<< Page précédente &2|'
|
||||
next: '&2|&e Page suivante >>>>'
|
||||
show: '&2Montrer la top liste depuis &e[from] &2jusqu''a &e[until]'
|
||||
log:
|
||||
help:
|
||||
info: Affiche les stats.
|
||||
args: '[playername]'
|
||||
output:
|
||||
topline: '&7************************* &6%playername% &7*************************'
|
||||
list: '&7* &6%number%. &3%action%: &6%item% &eqty: %qty% &6argent: %money%&exp:
|
||||
%exp%'
|
||||
bottomline: '&7***********************************************************'
|
||||
prev: '&e<<<<< Page précédente &2|'
|
||||
next: '&2|&e Page suivante >>>>'
|
||||
nodata: '&cDonnées introuvable'
|
||||
glog:
|
||||
help:
|
||||
info: Affiche les stats globales.
|
||||
args: ''
|
||||
output:
|
||||
topline: '&7*********************** &6Stats globales &7***********************'
|
||||
list: '&7* &6%number%. &3%username% &e%action%: &6%item% &eqté: %qty% &6Cubixx:
|
||||
%money% &exp: %exp%'
|
||||
bottomline: '&7**************************************************************'
|
||||
nodata: '&cDonnées introuvable'
|
||||
transfer:
|
||||
help:
|
||||
info: Transfère un joueur d'un métier à un autre.
|
||||
@ -183,10 +364,10 @@ command:
|
||||
target: Vous avez été transféré de %oldjobname% à %newjobname%.
|
||||
promote:
|
||||
help:
|
||||
info: Promeut le joueur de X niveaux dans un métier.
|
||||
info: Promeut le joueur de X niveau(x) dans un métier.
|
||||
args: '[playername] [jobname] [levels]'
|
||||
output:
|
||||
target: Vous avez été promu de %levelsgained% niveaux en %jobname%.
|
||||
target: Vous avez été promu de %levelsgained% niveaux en %jobname%.
|
||||
demote:
|
||||
help:
|
||||
info: Rétrograde le joueur de X niveaux dans un métier.
|
||||
@ -205,17 +386,26 @@ command:
|
||||
args: '[playername] [jobname] [xp]'
|
||||
output:
|
||||
target: Vous avez perdu %xplost% points d'expérience en %jobname%.
|
||||
signupdate:
|
||||
help:
|
||||
info: Mettre à jour manuellement le panneau par son nom
|
||||
args: '[jobname]'
|
||||
reload:
|
||||
help:
|
||||
info: Recharge la configuration.
|
||||
toggle:
|
||||
help:
|
||||
info: Toggles payment output on action bar.
|
||||
info: Changer l'affichage de paiement sur la barre d'action.
|
||||
args: '[actionbar/bossbar]'
|
||||
output:
|
||||
turnedoff: '&4Cette option est désactivée !'
|
||||
paid: '&aVous avez été payé pour : &2[amount]'
|
||||
'on': '&aToggled: &aON'
|
||||
'off': '&aToggled: &4OFF'
|
||||
paid:
|
||||
main: '&aVous avez:'
|
||||
money: '&e[amount] Cubixx'
|
||||
exp: '&7[exp] xp'
|
||||
points: '&6[points] points'
|
||||
'on': '&aChangé: &aON'
|
||||
'off': '&aChangé: &4OFF'
|
||||
message:
|
||||
skillup:
|
||||
broadcast: '%playername% a été promu %titlename% %jobname%.'
|
||||
@ -223,19 +413,40 @@ message:
|
||||
levelup:
|
||||
broadcast: '%playername% est maintenant au niveau %joblevel% %jobname%.'
|
||||
nobroadcast: Vous êtes maintenant au niveau %joblevel% %jobname%.
|
||||
cowtimer: '&eVous devez attendre &6%time% &esec avant d''etre payer.'
|
||||
blocktimer: '&eDu musst &3[time] &eSekunden warten um wieder etwas für das Abbauen zu verdienen!'
|
||||
placeblocktimer: '&eDu musst &6[time] &eSekunden warten um wieder etwas für das Setzen zu
|
||||
verdienen!'
|
||||
cowtimer: '&eVous devez attendre &6%time% &esec avant d''être payé pour ce métier.'
|
||||
blocktimer: '&eVous devez attendre: &3[time] &esec encore pour être payé pour cela!'
|
||||
placeblocktimer: '&eVous ne pouvez placer des blocs que toutes les &6[time] &esec
|
||||
d''intervale au même endroit!'
|
||||
taxes: '&3[amount] &edes taxes du serveur ont été transférées sur ce compte'
|
||||
boostStarted: '&eLe boost métier a commencé!'
|
||||
boostStoped: '&eLe boost métier est terminé!'
|
||||
crafting:
|
||||
fullinventory: Votre inventaire est plein !
|
||||
signs:
|
||||
List: '&0[number].&8[player]&7:&4[level]'
|
||||
SpecialList:
|
||||
'1':
|
||||
'1': '&b*** &81er &b***'
|
||||
'2': '&9[player]'
|
||||
'3': '&8Level [level]'
|
||||
'4': '&b************'
|
||||
'2':
|
||||
'1': '&b*** &82nd &b***'
|
||||
'2': '&9[player]'
|
||||
'3': '&8Level [level]'
|
||||
'4': '&b************'
|
||||
'3':
|
||||
'1': '&b** &83ème &b**'
|
||||
'2': '&9[player]'
|
||||
'3': '&8Level [level]'
|
||||
'4': '&b************'
|
||||
cantcreate: '&4Vous ne pouvez pas créer ce panneau !'
|
||||
cantdestroy: '&4Vous ne pouvez pas détruire ce panneau!'
|
||||
topline: '&e[Jobs]'
|
||||
secondline:
|
||||
join: '&2Rejoindre'
|
||||
leave: '&4Quitter'
|
||||
toggle: '&eBasculer'
|
||||
toggle: '&eChanger'
|
||||
top: '&eTop'
|
||||
browse: '&eListe'
|
||||
stats: '&eStats'
|
||||
@ -243,6 +454,6 @@ signs:
|
||||
info: '&eInfo'
|
||||
archive: '&eArchive'
|
||||
scoreboard:
|
||||
clear: '&eSi vous voulez enlever le scoreboard, tapez &2/jobs top clear'
|
||||
topline: '&2Top &e%jobname%'
|
||||
lines: '&2%number%. &e%playername%'
|
||||
gtopline: '&2Top Général'
|
||||
lines: '&2%number%. &e%playername%'
|
||||
|
@ -1,7 +1,7 @@
|
||||
name: Jobs
|
||||
description: Jobs Plugin for the BukkitAPI
|
||||
main: com.gamingmesh.jobs.JobsPlugin
|
||||
version: 3.4.7
|
||||
version: 3.5.1
|
||||
author: phrstbrn
|
||||
depend: [Vault]
|
||||
softdepend: [CoreProtect, MythicMobs, McMMO]
|
||||
|
Loading…
Reference in New Issue
Block a user