1
0
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:
Zrips 2016-06-25 10:13:06 +03:00
parent c9d6e306f1
commit e7a30ec608
19 changed files with 4123 additions and 1568 deletions

View File

@ -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"/>

File diff suppressed because it is too large Load Diff

View File

@ -522,7 +522,10 @@ public class Jobs {
* @return the number of slots
*/
public static int getUsedSlots(Job job) {
if (usedSlots.containsKey(job))
return usedSlots.get(job);
else
return 0;
}
/**
@ -530,6 +533,7 @@ public class Jobs {
* @param job - the job someone is taking
*/
public static void takeSlot(Job job) {
if (usedSlots.containsKey(job))
usedSlots.put(job, usedSlots.get(job) + 1);
}
@ -538,6 +542,7 @@ public class Jobs {
* @param job - the job someone is leaving
*/
public static void leaveSlot(Job job) {
if (usedSlots.containsKey(job))
usedSlots.put(job, usedSlots.get(job) - 1);
}

View File

@ -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;
}

View File

@ -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");

View File

@ -3,6 +3,7 @@ package com.gamingmesh.jobs.config;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import org.bukkit.Bukkit;
@ -113,7 +114,7 @@ public class NameTranslatorManager {
}
public void readFile() {
YmlMaker ItemFile = new YmlMaker((JavaPlugin) plugin, "TranslatableWords.yml");
YmlMaker ItemFile = new YmlMaker((JavaPlugin) plugin, "TranslatableWords" + File.separator + "Words_" + Jobs.getGCManager().localeString + ".yml");
ItemFile.saveDefaultConfig();
ConfigurationSection section = ItemFile.getConfig().getConfigurationSection("ItemList");
Set<String> keys = section.getKeys(false);
@ -166,10 +167,37 @@ public class NameTranslatorManager {
}
synchronized void load() {
File f = new File(plugin.getDataFolder(), "TranslatableWords.yml");
YamlConfiguration conf = YamlConfiguration.loadConfiguration(f);
CommentedYamlConfiguration write = new CommentedYamlConfiguration();
LocaleReader c = new LocaleReader(conf, write);
File file = new File(plugin.getDataFolder(), "TranslatableWords.yml");
File file2 = new File(plugin.getDataFolder(), "TranslatableWords" + File.separator + "Words_" + Jobs.getGCManager().localeString + ".yml");
if (file.exists())
file.renameTo(file2);
// Just copying default language files, except en, that one will be generated
List<String> languages = new ArrayList<String>();
languages.add("fr");
for (String lang : languages) {
YmlMaker langFile = new YmlMaker((JavaPlugin) plugin, "TranslatableWords" + File.separator + "Words_" + lang + ".yml");
if (langFile != null)
langFile.saveDefaultConfig();
}
languages.add("en");
File customLocaleFile = new File(plugin.getDataFolder(), "TranslatableWords" + File.separator + "Words_" + Jobs.getGCManager().localeString + ".yml");
if (!customLocaleFile.exists() && !Jobs.getGCManager().localeString.equalsIgnoreCase("en"))
languages.add(Jobs.getGCManager().localeString);
for (String lang : languages) {
File f = new File(plugin.getDataFolder(), "TranslatableWords" + File.separator + "Words_" + lang + ".yml");
YamlConfiguration config = YamlConfiguration.loadConfiguration(f);
CommentedYamlConfiguration writer = new CommentedYamlConfiguration();
LocaleReader c = new LocaleReader(config, writer);
c.getC().options().copyDefaults(true);
c.get("ItemList.0.MCName", "air");
c.get("ItemList.0.Name", "Air");
@ -1627,12 +1655,12 @@ public class NameTranslatorManager {
c.get("ColorList.14.Name", "&cRed");
c.get("ColorList.15.MCName", "black");
c.get("ColorList.15.Name", "&0Black");
try {
c.getW().save(f);
} catch (IOException e) {
e.printStackTrace();
}
}
readFile();
}

View File

@ -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();
}

View File

@ -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;

View File

@ -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;
}

View File

@ -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,11 +786,24 @@ public abstract class JobsDAO {
Loging.loadToLog(player, res.getString("action"), res.getString("itemname"), res.getInt("count"), res.getDouble("money"), res.getDouble("exp"));
}
res.close();
} 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();
}
}
}
/**
* Save player-explore information

View File

@ -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) {

View File

@ -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) {

View File

@ -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);

View File

@ -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);
if (event.getSlot() < 0 || event.getSlot() >= Jobs.getShopManager().list.size())
Debug.D(event.getRawSlot());
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());
}

View File

@ -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);

View File

@ -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,7 +364,7 @@ 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%.
@ -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%'
gtopline: '&2Top Général'
lines: '&2%number%. &e%playername%'

View File

@ -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]