Compare commits

..
13 Commits
Author SHA1 Message Date
Thijs Wiefferink 064b129205 Change version to 2.3.2 and update languages
- Russian has been added
- Spelling errors in French have been corrected
2016-08-07 22:21:57 +02:00
Thijs Wiefferink 8111387f32 Improve friend line of /as me, add click hint
Change blue color of hover popup to gold, which will be used as action color
2016-08-07 22:06:09 +02:00
Thijs Wiefferink a4b23bebba Improve line of rented regions in info command 2016-08-07 21:49:44 +02:00
Thijs Wiefferink 7421e685fa Improve robustness of variable replacing in messages
- Once the limit is reached the argument replacer would still continue sometimes (if a the replacement itself triggers the limit and the inserted message increases the size of the message we are building and adds a parameter tag again, like %0%)
- The language tag replacer also stops earlier now, it did not have the above problem though
- Fixed FancyMessageFormat.insertMessage() not checking its parameters
- Message.get() with a limit will now return an empty message if the limit is reached to prevent problems like above.
- Closes #205
2016-08-07 00:09:30 +02:00
Christoph Krüger @Androkai 374b68d8fa Update VaultAPI-repo (#206)
The url of the Vault Maven repository has changed.
2016-08-06 22:36:26 +02:00
Thijs Wiefferink ca7a9664f3 Fix error in info command of rental region 2016-08-02 22:27:55 +02:00
Thijs Wiefferink e957b4fc73 Remove all reflection for sending fancy messages
- Reflection removed
- JSON is now fully escaped instead of lenient escaping
- Sending is now done with /tellraw
2016-08-01 21:31:14 +02:00
Thijs Wiefferink 6493bc4f78 Add empty lines if a page does not fill the screen
Relevant for commands like `/as info all` that can have pages
2016-08-01 21:28:11 +02:00
Thijs Wiefferink 2db1b6a243 Prevent updater throwing errors sometimes when BukkitDev is offline 2016-08-01 20:46:40 +02:00
Thijs Wiefferink 864662a3c4 Add javadocs to limitgroup inner class and setting methods 2016-08-01 20:23:49 +02:00
Thijs Wiefferink 59b960b87c Update languages, set version number to 2.3.1
- Added German translation
- Added French translation
- Added Norwegian translation
2016-08-01 19:36:50 +02:00
Thijs Wiefferink 2de653d73f Add automatic conversion of language files downloaded from Transifex 2016-08-01 18:03:09 +02:00
Thijs Wiefferink 4feee59834 Cleanup info and warning messages. 2016-08-01 16:18:05 +02:00
25 changed files with 2579 additions and 628 deletions

No files matched your search

+1 -1
View File
@@ -4,7 +4,7 @@
<artifactId>areashop</artifactId>
<packaging>jar</packaging>
<name>AreaShop</name>
<version>2.3.0</version> <!-- Main plugin version -->
<version>2.3.2</version> <!-- Main plugin version -->
<parent>
<groupId>me.wiefferink</groupId>
@@ -25,6 +25,7 @@ import me.wiefferink.areashop.messages.Message;
import me.wiefferink.areashop.regions.GeneralRegion;
import net.milkbowl.vault.economy.Economy;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.exception.ExceptionUtils;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.ConfigurationSection;
@@ -217,8 +218,7 @@ public final class AreaShop extends JavaPlugin implements AreaShopInterface {
worldGuardInterface = (WorldGuardInterface)clazz.getConstructor(AreaShopInterface.class).newInstance(this); // Set our handler
}
} catch (final Exception e) {
e.printStackTrace();
getLogger().severe("Could not load the handler for WorldGuard (tried to load "+wgVersion+"), report this problem to the author.");
getLogger().severe("Could not load the handler for WorldGuard (tried to load "+wgVersion+"), report this problem to the author:"+ExceptionUtils.getStackTrace(e));
error = true;
wgVersion = null;
}
@@ -245,8 +245,7 @@ public final class AreaShop extends JavaPlugin implements AreaShopInterface {
worldEditInterface = (WorldEditInterface)clazz.getConstructor(AreaShopInterface.class).newInstance(this); // Set our handler
}
} catch (final Exception e) {
e.printStackTrace();
getLogger().severe("Could not load the handler for WorldEdit (tried to load "+weVersion+"), report this problem to the author.");
getLogger().severe("Could not load the handler for WorldEdit (tried to load "+weVersion+"), report this problem to the author: "+ExceptionUtils.getStackTrace(e));
error = true;
weVersion = null;
}
@@ -664,6 +663,22 @@ public final class AreaShop extends JavaPlugin implements AreaShopInterface {
AreaShop.debug(message);
}
/**
* Print a warning to the console
* @param message The message to print
*/
public static void warn(String... message) {
AreaShop.getInstance().getLogger().warning(StringUtils.join(message, " "));
}
/**
* Print an information message to the console
* @param message The message to print
*/
public static void info(String... message) {
AreaShop.getInstance().getLogger().info(StringUtils.join(message, " "));
}
/**
* Print debug message for periodic task
* @param message The message to print
@@ -42,7 +42,8 @@ public class InfoCommand extends CommandAreaShop {
* @param baseCommand The command to execute for next/previous page
*/
private void showSortedPagedList(CommandSender sender, List<? extends GeneralRegion> regions, RegionGroup filterGroup, String keyHeader, String pageInput, String baseCommand) {
int ITEMS_PER_PAGE = 18;
int MAX_ITEMS = 20;
int ITEMS_PER_PAGE = MAX_ITEMS-2;
int page = 1;
if(pageInput != null && Utils.isNumeric(pageInput)) {
try {
@@ -88,6 +89,7 @@ public class InfoCommand extends CommandAreaShop {
totalPages = 1;
}
page = Math.max(1, Math.min(totalPages, page));
int linesPrinted = 1; // header
for(int i = (page-1)*ITEMS_PER_PAGE; i < page*ITEMS_PER_PAGE && i < regions.size(); i++) {
String state;
GeneralRegion region = regions.get(i);
@@ -107,6 +109,7 @@ public class InfoCommand extends CommandAreaShop {
}
}
plugin.messageNoPrefix(sender, "info-entry"+state, region);
linesPrinted++;
}
Message footer = Message.none();
// Previous button
@@ -127,6 +130,10 @@ public class InfoCommand extends CommandAreaShop {
} else {
footer.append(Message.fromKey("info-pageNoNext"));
}
// Fill up space if the page is not full (aligns header nicely)
for(int i = linesPrinted; i < MAX_ITEMS-1; i++) {
sender.sendMessage(" ");
}
footer.send(sender);
long end = Calendar.getInstance().getTimeInMillis();
}
@@ -291,7 +298,7 @@ public class InfoCommand extends CommandAreaShop {
plugin.messageNoPrefix(sender, "info-regionRented", rent);
plugin.messageNoPrefix(sender, "info-regionExtending", rent);
// Money back
if(UnrentCommand.canUse(sender, buy)) {
if(UnrentCommand.canUse(sender, rent)) {
plugin.messageNoPrefix(sender, "info-regionMoneyBackRentClick", rent);
} else {
plugin.messageNoPrefix(sender, "info-regionMoneyBackRent", rent);
@@ -101,6 +101,8 @@ public class MeCommand extends CommandAreaShop {
if(!foundSome) {
plugin.message(sender, "me-nothing", player.getName());
} else {
plugin.messageNoPrefix(sender, "me-clickHint");
}
}
@@ -39,7 +39,7 @@ public class SignsFeature extends Feature implements Listener {
RegionSign sign = new RegionSign(region, this, signKey);
Location location = sign.getLocation();
if(location == null) {
plugin.getLogger().warning("Sign with key "+signKey+" of region "+region.getName()+" does not have a proper location");
AreaShop.warn("Sign with key "+signKey+" of region "+region.getName()+" does not have a proper location");
continue;
}
signs.put(sign.getStringLocation(), sign);
@@ -83,7 +83,7 @@ public class WorldGuardRegionFlagsFeature extends Feature implements Listener {
wRegion.setPriority(priority);
//AreaShop.debug(" Flag " + flagName + " set: " + value);
} catch(NumberFormatException e) {
plugin.getLogger().warning("The value of flag " + flagName + " is not a number");
AreaShop.warn("The value of flag "+flagName+" is not a number");
result = false;
}
} else if(flagName.equalsIgnoreCase("parent")) {
@@ -96,10 +96,10 @@ public class WorldGuardRegionFlagsFeature extends Feature implements Listener {
wRegion.setParent(parentRegion);
//AreaShop.debug(" Flag " + flagName + " set: " + value);
} catch(ProtectedRegion.CircularInheritanceException e) {
plugin.getLogger().warning("The parent set in the config is not correct (circular inheritance)");
AreaShop.warn("The parent set in the config is not correct (circular inheritance)");
}
} else {
plugin.getLogger().warning("The parent set in the config is not correct (region does not exist)");
AreaShop.warn("The parent set in the config is not correct (region does not exist)");
}
} else {
// Parse all other normal flags (groups are also handled)
@@ -108,7 +108,7 @@ public class WorldGuardRegionFlagsFeature extends Feature implements Listener {
Flag<?> foundFlag = plugin.getWorldGuardHandler().fuzzyMatchFlag(flagName);
if(foundFlag == null) {
plugin.getLogger().warning("Found wrong flag in flagProfiles section: " + flagName + ", check if that is the correct WorldGuard flag");
AreaShop.warn("Found wrong flag in flagProfiles section: "+flagName+", check if that is the correct WorldGuard flag");
continue;
}
RegionGroupFlag groupFlag = foundFlag.getRegionGroupFlag();
@@ -128,7 +128,7 @@ public class WorldGuardRegionFlagsFeature extends Feature implements Listener {
try {
groupValue = plugin.getWorldGuardHandler().parseFlagGroupInput(groupFlag, part.substring(2));
} catch(InvalidFlagFormat e) {
plugin.getLogger().warning("Found wrong group value for flag " + flagName);
AreaShop.warn("Found wrong group value for flag "+flagName);
}
}
} else {
@@ -145,7 +145,7 @@ public class WorldGuardRegionFlagsFeature extends Feature implements Listener {
setFlag(wRegion, foundFlag, flagSetting);
//AreaShop.debug(" Flag " + flagName + " set: " + flagSetting);
} catch(InvalidFlagFormat e) {
plugin.getLogger().warning("Found wrong value for flag " + flagName);
AreaShop.warn("Found wrong value for flag "+flagName);
}
}
if(groupValue != null) {
@@ -664,8 +664,8 @@ public class Updater {
return true;
} catch (final IOException e) {
if (e.getMessage().contains("HTTP response code: 403")) {
this.plugin.getLogger().severe("dev.bukkit.org rejected the API key provided in plugins/Updater/config.yml");
if(e.getMessage() != null && e.getMessage().contains("HTTP response code: 403")) {
this.plugin.getLogger().severe("dev.bukkit.org rejected the API key provided in plugins/Updater/config.yml");
this.plugin.getLogger().severe("Please double-check your configuration to ensure it is correct.");
this.result = UpdateResult.FAIL_APIKEY;
} else {
@@ -80,7 +80,7 @@ public class FileManager {
worldRegionsRequireSaving = new HashSet<>();
File schemFile = new File(schemFolder);
if(!schemFile.exists() & !schemFile.mkdirs()) {
plugin.getLogger().warning("Could not create schematic files directory: " + schemFile.getAbsolutePath());
AreaShop.warn("Could not create schematic files directory: "+schemFile.getAbsolutePath());
}
loadVersions();
}
@@ -329,7 +329,7 @@ public class FileManager {
deleted = false;
}
if(!deleted) {
plugin.getLogger().warning("File could not be deleted: " + file.toString());
AreaShop.warn("File could not be deleted: "+file.toString());
}
}
result = true;
@@ -384,7 +384,7 @@ public class FileManager {
deleted = false;
}
if(!deleted) {
plugin.getLogger().warning("File could not be deleted: " + file.toString());
AreaShop.warn("File could not be deleted: "+file.toString());
}
}
@@ -516,7 +516,7 @@ public class FileManager {
try {
groupsConfig.save(groupsPath);
} catch (IOException e) {
plugin.getLogger().warning("Groups file could not be saved: " + groupsPath);
AreaShop.warn("Groups file could not be saved: "+groupsPath);
}
}
@@ -590,7 +590,7 @@ public class FileManager {
manager.saveChanges();
}
} catch(Exception e) {
plugin.getLogger().warning("WorldGuard regions in world " + world + " could not be saved");
AreaShop.warn("WorldGuard regions in world "+world+" could not be saved");
}
}
}
@@ -681,7 +681,7 @@ public class FileManager {
versions = (HashMap<String,Integer>)input.readObject();
input.close();
} catch (IOException | ClassNotFoundException | ClassCastException e) {
plugin.getLogger().warning("Something went wrong reading file: " + versionPath);
AreaShop.warn("Something went wrong reading file: "+versionPath);
versions = null;
}
}
@@ -697,14 +697,14 @@ public class FileManager {
*/
public void saveVersions() {
if(!(new File(versionPath).exists())) {
plugin.getLogger().info("versions file created, this should happen only after installing or upgrading the plugin");
AreaShop.info("versions file created, this should happen only after installing or upgrading the plugin");
}
try {
ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream(versionPath));
output.writeObject(versions);
output.close();
} catch (IOException e) {
plugin.getLogger().warning("File could not be saved: " + versionPath);
AreaShop.warn("File could not be saved: "+versionPath);
}
}
@@ -749,9 +749,9 @@ public class FileManager {
}
input.close();
output.close();
plugin.getLogger().info("File with default region settings has been saved, should only happen on first startup");
AreaShop.info("File with default region settings has been saved, should only happen on first startup");
} catch(IOException e) {
plugin.getLogger().warning("Something went wrong saving the default region settings: " + defaultFile.getAbsolutePath());
AreaShop.warn("Something went wrong saving the default region settings: "+defaultFile.getAbsolutePath());
}
}
// Load default.yml from the plugin folder, and as backup the default one
@@ -761,7 +761,7 @@ public class FileManager {
) {
defaultConfig = YamlConfiguration.loadConfiguration(custom);
if(defaultConfig.getKeys(false).size() == 0) {
plugin.getLogger().warning("File 'default.yml' is empty, check for errors in the log.");
AreaShop.warn("File 'default.yml' is empty, check for errors in the log.");
result = false;
} else {
defaultConfig.addDefaults(YamlConfiguration.loadConfiguration(normal));
@@ -790,9 +790,9 @@ public class FileManager {
while ((read = input.read(bytes)) != -1) {
output.write(bytes, 0, read);
}
plugin.getLogger().info("Default config file has been saved, should only happen on first startup");
AreaShop.info("Default config file has been saved, should only happen on first startup");
} catch(IOException e) {
plugin.getLogger().warning("Something went wrong saving the config file: " + configFile.getAbsolutePath());
AreaShop.warn("Something went wrong saving the config file: "+configFile.getAbsolutePath());
}
}
// Load config.yml from the plugin folder
@@ -803,7 +803,7 @@ public class FileManager {
) {
config = YamlConfiguration.loadConfiguration(custom);
if(config.getKeys(false).size() == 0) {
plugin.getLogger().warning("File 'config.yml' is empty, check for errors in the log.");
AreaShop.warn("File 'config.yml' is empty, check for errors in the log.");
result = false;
} else {
config.addDefaults(YamlConfiguration.loadConfiguration(normal));
@@ -819,7 +819,7 @@ public class FileManager {
}
}
} catch(IOException e) {
plugin.getLogger().warning("Something went wrong while reading the config.yml file: " + configFile.getAbsolutePath());
AreaShop.warn("Something went wrong while reading the config.yml file: "+configFile.getAbsolutePath());
result = false;
}
Utils.initialize(config);
@@ -839,7 +839,7 @@ public class FileManager {
) {
groupsConfig = YamlConfiguration.loadConfiguration(reader);
} catch(IOException e) {
plugin.getLogger().warning("Could not load groups.yml file: " + groupFile.getAbsolutePath());
AreaShop.warn("Could not load groups.yml file: "+groupFile.getAbsolutePath());
}
}
if(groupsConfig == null) {
@@ -860,7 +860,7 @@ public class FileManager {
File file = new File(regionsPath);
if(!file.exists()) {
if(!file.mkdirs()) {
plugin.getLogger().warning("Could not create region files directory: " + file.getAbsolutePath());
AreaShop.warn("Could not create region files directory: "+file.getAbsolutePath());
return;
}
plugin.setReady(true);
@@ -878,10 +878,10 @@ public class FileManager {
) {
config = YamlConfiguration.loadConfiguration(reader);
if(config.getKeys(false).size() == 0) {
plugin.getLogger().warning("Region file '"+regionFile.getName()+"' is empty, check for errors in the log.");
AreaShop.warn("Region file '"+regionFile.getName()+"' is empty, check for errors in the log.");
}
} catch(IOException e) {
plugin.getLogger().warning("Something went wrong reading region file: " + regionFile.getAbsolutePath());
AreaShop.warn("Something went wrong reading region file: "+regionFile.getAbsolutePath());
continue;
}
// Construct the correct type of region
@@ -921,8 +921,8 @@ public class FileManager {
for(GeneralRegion region : noRegion) {
noRegionNames.add(region.getName());
}
plugin.getLogger().warning("AreaShop regions that are missing their WorldGuard region: " + Utils.createCommaSeparatedList(noRegionNames));
plugin.getLogger().warning("Remove these regions from AreaShop with '/as del' or recreate their regions in WorldGuard.");
AreaShop.warn("AreaShop regions that are missing their WorldGuard region: "+Utils.createCommaSeparatedList(noRegionNames));
AreaShop.warn("Remove these regions from AreaShop with '/as del' or recreate their regions in WorldGuard.");
}
boolean noWorldRegions = !noWorld.isEmpty();
while(!noWorld.isEmpty()) {
@@ -938,18 +938,18 @@ public class FileManager {
for(GeneralRegion region : noRegion) {
noWorldNames.add(region.getName());
}
plugin.getLogger().warning("World " + missingWorld + " is not loaded, the following AreaShop regions are not functional now: " + Utils.createCommaSeparatedList(noWorldNames));
AreaShop.warn("World "+missingWorld+" is not loaded, the following AreaShop regions are not functional now: "+Utils.createCommaSeparatedList(noWorldNames));
noWorld.removeAll(toDisplay);
}
if(noWorldRegions) {
plugin.getLogger().warning("Remove these regions from AreaShop with '/as del' or load the world(s) on the server again.");
AreaShop.warn("Remove these regions from AreaShop with '/as del' or load the world(s) on the server again.");
}
if(!incorrectDuration.isEmpty()) {
List<String> incorrectDurationNames = new ArrayList<>();
for(GeneralRegion region : incorrectDuration) {
incorrectDurationNames.add(region.getName());
}
plugin.getLogger().warning("The following regions have an incorrect time format as duration: "+Utils.createCommaSeparatedList(incorrectDurationNames));
AreaShop.warn("The following regions have an incorrect time format as duration: "+Utils.createCommaSeparatedList(incorrectDurationNames));
}
}
}.runTask(plugin);
@@ -969,7 +969,7 @@ public class FileManager {
if(fileStatus != null && fileStatus == AreaShop.versionFilesCurrent) {
return;
}
plugin.getLogger().info("Updating AreaShop data to the latest format:");
AreaShop.info("Updating AreaShop data to the latest format:");
// Update to YAML based format
if(fileStatus == null || fileStatus < 2) {
@@ -984,7 +984,7 @@ public class FileManager {
if(rentFile.exists()) {
rentFileFound = true;
if(!oldFolderFile.exists() & !oldFolderFile.mkdirs()) {
plugin.getLogger().warning("Could not create directory: " + oldFolderFile.getAbsolutePath());
AreaShop.warn("Could not create directory: "+oldFolderFile.getAbsolutePath());
}
if(versions.get("rents") == null) {
@@ -997,23 +997,23 @@ public class FileManager {
rents = (HashMap<String,HashMap<String,String>>)input.readObject();
input.close();
} catch (IOException | ClassNotFoundException | ClassCastException e) {
plugin.getLogger().warning(" Error: Something went wrong reading file: " + rentPath);
AreaShop.warn(" Error: Something went wrong reading file: "+rentPath);
}
// Delete the file if it is totally wrong
if(rents == null) {
try {
if(!rentFile.delete()) {
plugin.getLogger().warning("Could not delete file: " + rentFile.getAbsolutePath());
AreaShop.warn("Could not delete file: "+rentFile.getAbsolutePath());
}
} catch(Exception e) {
plugin.getLogger().warning("Could not delete file: " + rentFile.getAbsolutePath());
AreaShop.warn("Could not delete file: "+rentFile.getAbsolutePath());
}
} else {
// Move old file
try {
Files.move(new File(rentPath), new File(oldFolderPath + "rents"));
} catch (Exception e) {
plugin.getLogger().warning(" Could not create a backup of '" + rentPath + "', check the file permissions (conversion to next version continues)");
AreaShop.warn(" Could not create a backup of '"+rentPath+"', check the file permissions (conversion to next version continues)");
}
// Check if conversion is needed
if(versions.get("rents") < 1) {
@@ -1038,7 +1038,7 @@ public class FileManager {
// Change to version 0
versions.put("rents", 0);
}
plugin.getLogger().info(" Updated version of '" + buyPath + "' from -1 to 0 (switch to using lowercase region names, adding default schematic enabling and profile)");
AreaShop.info(" Updated version of '"+buyPath+"' from -1 to 0 (switch to using lowercase region names, adding default schematic enabling and profile)");
}
if(versions.get("rents") < 1) {
for(String rentName : rents.keySet()) {
@@ -1052,13 +1052,13 @@ public class FileManager {
// Change version to 1
versions.put("rents", 1);
}
plugin.getLogger().info(" Updated version of '" + rentPath + "' from 0 to 1 (switch to UUID's for player identification)");
AreaShop.info(" Updated version of '"+rentPath+"' from 0 to 1 (switch to UUID's for player identification)");
}
}
// Save rents to new format
File regionsFile = new File(regionsPath);
if(!regionsFile.exists() & !regionsFile.mkdirs()) {
plugin.getLogger().warning("Could not create directory: " + regionsFile.getAbsolutePath());
AreaShop.warn("Could not create directory: "+regionsFile.getAbsolutePath());
return;
}
for(HashMap<String, String> rent : rents.values()) {
@@ -1094,10 +1094,10 @@ public class FileManager {
try {
config.save(new File(regionsPath + File.separator + rent.get("name").toLowerCase() + ".yml"));
} catch (IOException e) {
plugin.getLogger().warning(" Error: Could not save region file while converting: " + regionsPath + File.separator + rent.get("name").toLowerCase() + ".yml");
AreaShop.warn(" Error: Could not save region file while converting: "+regionsPath+File.separator+rent.get("name").toLowerCase()+".yml");
}
}
plugin.getLogger().info(" Updated rent regions to new .yml format (check the /regions folder)");
AreaShop.info(" Updated rent regions to new .yml format (check the /regions folder)");
}
// Change version number
@@ -1108,7 +1108,7 @@ public class FileManager {
if(buyFile.exists()) {
buyFileFound = true;
if(!oldFolderFile.exists() & !oldFolderFile.mkdirs()) {
plugin.getLogger().warning("Could not create directory: " + oldFolderFile.getAbsolutePath());
AreaShop.warn("Could not create directory: "+oldFolderFile.getAbsolutePath());
return;
}
@@ -1122,23 +1122,23 @@ public class FileManager {
buys = (HashMap<String,HashMap<String,String>>)input.readObject();
input.close();
} catch (IOException | ClassNotFoundException | ClassCastException e) {
plugin.getLogger().warning(" Something went wrong reading file: " + buyPath);
AreaShop.warn(" Something went wrong reading file: "+buyPath);
}
// Delete the file if it is totally wrong
if(buys == null) {
try {
if(!buyFile.delete()) {
plugin.getLogger().warning("Could not delete file: " + buyFile.getAbsolutePath());
AreaShop.warn("Could not delete file: "+buyFile.getAbsolutePath());
}
} catch(Exception e) {
plugin.getLogger().warning("Could not delete file: " + buyFile.getAbsolutePath());
AreaShop.warn("Could not delete file: "+buyFile.getAbsolutePath());
}
} else {
// Backup current file
try {
Files.move(new File(buyPath), new File(oldFolderPath + "buys"));
} catch (Exception e) {
plugin.getLogger().warning(" Could not create a backup of '" + buyPath + "', check the file permissions (conversion to next version continues)");
AreaShop.warn(" Could not create a backup of '"+buyPath+"', check the file permissions (conversion to next version continues)");
}
// Check if conversion is needed
if(versions.get("buys") < 1) {
@@ -1163,7 +1163,7 @@ public class FileManager {
// Change to version 0
versions.put("buys", 0);
}
plugin.getLogger().info(" Updated version of '" + buyPath + "' from -1 to 0 (switch to using lowercase region names, adding default schematic enabling and profile)");
AreaShop.info(" Updated version of '"+buyPath+"' from -1 to 0 (switch to using lowercase region names, adding default schematic enabling and profile)");
}
if(versions.get("buys") < 1) {
for(String buyName : buys.keySet()) {
@@ -1177,14 +1177,14 @@ public class FileManager {
// Change version to 1
versions.put("buys", 1);
}
plugin.getLogger().info(" Updated version of '" + buyPath + "' from 0 to 1 (switch to UUID's for player identification)");
AreaShop.info(" Updated version of '"+buyPath+"' from 0 to 1 (switch to UUID's for player identification)");
}
}
// Save buys to new format
File regionsFile = new File(regionsPath);
if(!regionsFile.exists() & !regionsFile.mkdirs()) {
plugin.getLogger().warning("Could not create directory: " + regionsFile.getAbsolutePath());
AreaShop.warn("Could not create directory: "+regionsFile.getAbsolutePath());
}
for(HashMap<String, String> buy : buys.values()) {
YamlConfiguration config = new YamlConfiguration();
@@ -1217,10 +1217,10 @@ public class FileManager {
try {
config.save(new File(regionsPath + File.separator + buy.get("name").toLowerCase() + ".yml"));
} catch (IOException e) {
plugin.getLogger().warning(" Error: Could not save region file while converting: " + regionsPath + File.separator + buy.get("name").toLowerCase() + ".yml");
AreaShop.warn(" Error: Could not save region file while converting: "+regionsPath+File.separator+buy.get("name").toLowerCase()+".yml");
}
}
plugin.getLogger().info(" Updated buy regions to new .yml format (check the /regions folder)");
AreaShop.info(" Updated buy regions to new .yml format (check the /regions folder)");
}
// Change version number
@@ -1248,7 +1248,7 @@ public class FileManager {
// Update versions file to 2
versions.put(AreaShop.versionFiles, 2);
saveVersions();
plugin.getLogger().info(" Updated to YAML based storage (v1 to v2)");
AreaShop.info(" Updated to YAML based storage (v1 to v2)");
}
}
@@ -1272,7 +1272,7 @@ public class FileManager {
// Update versions file to 3
versions.put(AreaShop.versionFiles, 3);
saveVersions();
plugin.getLogger().info(" Added last active time to regions (v2 to v3)");
AreaShop.info(" Added last active time to regions (v2 to v3)");
}
}
@@ -1,108 +0,0 @@
package me.wiefferink.areashop.messages;
import org.apache.commons.lang.Validate;
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Collection;
/**
* Class made by glan3b (Github: https://github.com/glen3b) for the Fanciful project (Github: https://github.com/mkremins/fanciful)
*/
/**
* Represents a wrapper around an array class of an arbitrary reference type,
* which properly implements "value" hash code and equality functions.
* <p>
* This class is intended for use as a key to a map.
* </p>
* @param <E> The type of elements in the array.
* @author Glen Husman
* @see Arrays
*/
public final class ArrayWrapper<E> {
/**
* Creates an array wrapper with some elements.
* @param elements The elements of the array.
*/
public ArrayWrapper(E... elements) {
setArray(elements);
}
private E[] _array;
/**
* Retrieves a reference to the wrapped array instance.
* @return The array wrapped by this instance.
*/
public E[] getArray() {
return _array;
}
/**
* Set this wrapper to wrap a new array instance.
* @param array The new wrapped array.
*/
public void setArray(E[] array) {
Validate.notNull(array, "The array must not be null.");
_array = array;
}
/**
* Determines if this object has a value equivalent to another object.
* @see Arrays#equals(Object[], Object[])
*/
@SuppressWarnings("rawtypes")
@Override
public boolean equals(Object other) {
if(!(other instanceof ArrayWrapper)) {
return false;
}
return Arrays.equals(_array, ((ArrayWrapper)other)._array);
}
/**
* Gets the hash code represented by this objects value.
* @return This object's hash code.
* @see Arrays#hashCode(Object[])
*/
@Override
public int hashCode() {
return Arrays.hashCode(_array);
}
/**
* Converts an iterable element collection to an array of elements.
* The iteration order of the specified object will be used as the array element order.
* @param list The iterable of objects which will be converted to an array.
* @param c The type of the elements of the array.
* @param <T> The type
* @return An array of elements in the specified iterable.
*/
@SuppressWarnings("unchecked")
public static <T> T[] toArray(Iterable<? extends T> list, Class<T> c) {
int size = -1;
if(list instanceof Collection<?>) {
@SuppressWarnings("rawtypes")
Collection coll = (Collection)list;
size = coll.size();
}
if(size < 0) {
size = 0;
// Ugly hack: Count it ourselves
for(@SuppressWarnings("unused") T element : list) {
size++;
}
}
T[] result = (T[])Array.newInstance(c, size);
int i = 0;
for(T element : list) { // Assumes iteration order is consistent
result[i++] = element; // Assign array element at index THEN increment counter
}
return result;
}
}
@@ -88,10 +88,11 @@ public class FancyMessageFormat {
LinkedList<InteractiveMessagePart> message = parse(lines);
StringBuilder sb = new StringBuilder();
sb.append("[");
if(message.size() == 1) {
sb.append(message.getFirst().toJSON());
} else if(message.size() > 0) {
sb.append("{text=\"\",extra:[");
sb.append("{\"text\":\"\",\"extra\":[");
for(InteractiveMessagePart messagePart : message) {
sb.append(messagePart.toJSON());
sb.append(',');
@@ -99,6 +100,7 @@ public class FancyMessageFormat {
sb.deleteCharAt(sb.length()-1);
sb.append("]}");
}
sb.append("]");
return sb.toString();
}
@@ -149,7 +151,13 @@ public class FancyMessageFormat {
* @param end The end of the variable to replace
*/
public static void insertMessage(List<String> message, List<String> insert, int line, int start, int end) {
if(insert == null || line < 0 || line >= message.size() || start < 0 || end < 0) {
return;
}
String lineContent = message.remove(line);
if(start > lineContent.length() || end > lineContent.length()) {
return;
}
if(isTaggedInteractive(lineContent)) {
lineContent = lineContent.replace("", "");
message.add(line, lineContent.substring(0, start)+convertToConsole(insert)+lineContent.substring(end));
@@ -556,13 +564,13 @@ public class FancyMessageFormat {
String toJSON() {
StringBuilder sb = new StringBuilder();
sb.append('{');
sb.append("text:").append(quoteStringJson(text));
sb.append("\"text\":").append(quoteStringJson(text));
if(color != null && color != Color.WHITE) {
sb.append(",color:").append(color.jsonValue);
sb.append(",\"color\":\"").append(color.jsonValue).append("\"");
}
for(FormatType formatting : formatTypes) {
sb.append(',');
sb.append(formatting.jsonKey).append(':');
sb.append(",\"");
sb.append(formatting.jsonKey).append("\":");
sb.append("true");
}
sb.append('}');
@@ -619,7 +627,7 @@ public class FancyMessageFormat {
sb.deleteCharAt(sb.length()-1);
} else {
sb.append('{');
sb.append("text=\"\",extra:[");
sb.append("\"text\":\"\",\"extra\":[");
for(TextMessagePart textPart : content) {
sb.append(textPart.toJSON());
sb.append(',');
@@ -629,16 +637,16 @@ public class FancyMessageFormat {
}
if(clickType != null) {
sb.append(',');
sb.append("clickEvent:{");
sb.append("action:").append(clickType.getJsonKey()).append(',');
sb.append("value:").append(quoteStringJson(clickContent));
sb.append("\"clickEvent\":{");
sb.append("\"action\":\"").append(clickType.getJsonKey()).append("\",");
sb.append("\"value\":").append(quoteStringJson(clickContent));
sb.append('}');
}
if(hoverType != null) {
sb.append(',');
sb.append("hoverEvent:{");
sb.append("action:").append(hoverType.getJsonKey()).append(',');
sb.append("value:");
sb.append("\"hoverEvent\":{");
sb.append("\"action\":\"").append(hoverType.getJsonKey()).append("\",");
sb.append("\"value\":");
if(hoverContent.size() == 1) {
TextMessagePart hoverPart = hoverContent.getFirst();
if(hoverPart.hasFormatting()) {
@@ -1,100 +0,0 @@
package me.wiefferink.areashop.messages;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import java.lang.reflect.*;
import java.util.logging.Level;
/**
* Methods written by the Fanciful project (Github: https://github.com/mkremins/fanciful)
*/
public class FancyMessageSender {
private static Constructor<?> nmsPacketPlayOutChatConstructor;
public static boolean sendJSON(Player player, String jsonString) {
try {
Object handle = Reflection.getHandle(player);
Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle);
Reflection.getMethod(connection.getClass(), "sendPacket", Reflection.getNMSClass("Packet")).invoke(connection, createChatPacket(jsonString));
return true;
} catch(IllegalArgumentException e) {
Bukkit.getLogger().log(Level.WARNING, "Argument could not be passed.", e);
} catch(IllegalAccessException e) {
Bukkit.getLogger().log(Level.WARNING, "Could not access method.", e);
} catch(InstantiationException e) {
Bukkit.getLogger().log(Level.WARNING, "Underlying class is abstract.", e);
} catch(InvocationTargetException e) {
Bukkit.getLogger().log(Level.WARNING, "A error has occured durring invoking of method.", e);
} catch(NoSuchMethodException e) {
Bukkit.getLogger().log(Level.WARNING, "Could not find method.", e);
} catch(ClassNotFoundException e) {
Bukkit.getLogger().log(Level.WARNING, "Could not find class.", e);
}
return false;
}
// The ChatSerializer's instance of Gson
private static Object nmsChatSerializerGsonInstance;
private static Method fromJsonMethod;
private static Object createChatPacket(String json) throws IllegalArgumentException, IllegalAccessException, InstantiationException, InvocationTargetException, NoSuchMethodException, ClassNotFoundException {
if(nmsChatSerializerGsonInstance == null) {
// Find the field and its value, completely bypassing obfuscation
Class<?> chatSerializerClazz;
String version = Reflection.getVersion();
if(version == null || version.length() < 2) {
throw new RuntimeException("Could not get NMS version, found: "+version);
}
version = version.substring(1, version.length()-1); // Strip v and the . at the end
String[] parts = version.split("_");
if(parts.length < 3) {
throw new RuntimeException("Not enough parts in the version, found: "+version);
}
int majorVersion = Integer.parseInt(parts[0]);
int minorVersion = Integer.parseInt(parts[1]);
int revision = Integer.parseInt(parts[2].substring(1));
if((majorVersion <= 1 && minorVersion < 8) || (majorVersion == 1 && minorVersion == 8 && revision == 1)) {
chatSerializerClazz = Reflection.getNMSClass("ChatSerializer");
} else {
chatSerializerClazz = Reflection.getNMSClass("IChatBaseComponent$ChatSerializer");
}
if(chatSerializerClazz == null) {
throw new ClassNotFoundException("Can't find the ChatSerializer class");
}
for(Field declaredField : chatSerializerClazz.getDeclaredFields()) {
if(Modifier.isFinal(declaredField.getModifiers()) && Modifier.isStatic(declaredField.getModifiers()) && declaredField.getType().getName().endsWith("Gson")) {
// We've found our field
declaredField.setAccessible(true);
nmsChatSerializerGsonInstance = declaredField.get(null);
fromJsonMethod = nmsChatSerializerGsonInstance.getClass().getMethod("fromJson", String.class, Class.class);
break;
}
}
}
// Since the method is so simple, and all the obfuscated methods have the same name, it's easier to reimplement 'IChatBaseComponent a(String)' than to reflectively call it
// Of course, the implementation may change, but fuzzy matches might break with signature changes
Object serializedChatComponent = fromJsonMethod.invoke(nmsChatSerializerGsonInstance, json, Reflection.getNMSClass("IChatBaseComponent"));
if(nmsPacketPlayOutChatConstructor == null) {
try {
nmsPacketPlayOutChatConstructor = Reflection.getNMSClass("PacketPlayOutChat").getDeclaredConstructor(Reflection.getNMSClass("IChatBaseComponent"));
nmsPacketPlayOutChatConstructor.setAccessible(true);
} catch(NoSuchMethodException e) {
Bukkit.getLogger().log(Level.SEVERE, "Could not find Minecraft method or constructor.", e);
} catch(SecurityException e) {
Bukkit.getLogger().log(Level.WARNING, "Could not access constructor.", e);
}
}
return nmsPacketPlayOutChatConstructor.newInstance(serializedChatComponent);
}
}
@@ -10,7 +10,7 @@ import java.util.*;
public class LanguageManager {
private AreaShop plugin = null;
private String languages[] = {"EN", "NL"};
private String languages[] = {"EN", "NL", "FR", "DE", "NO", "RU"};
private Map<String, List<String>> currentLanguage, defaultLanguage;
/**
@@ -41,15 +41,13 @@ public class LanguageManager {
langFolder = new File(plugin.getDataFolder()+File.separator+AreaShop.languageFolder);
if(!langFolder.exists()) {
if(!langFolder.mkdirs()) {
plugin.getLogger().warning("Could not create language directory: "+langFolder.getAbsolutePath());
AreaShop.warn("Could not create language directory: "+langFolder.getAbsolutePath());
return;
}
}
// Create the language files, overwrites if a file already exists
// Overriding is necessary because otherwise with an update the new lang
// files would not be used, when translating your own use another
// file name as the default
// Overriding is necessary because otherwise with an update the new lang files would not be used
File langFile;
for(String language : languages) {
langFile = new File(plugin.getDataFolder()+File.separator+AreaShop.languageFolder+File.separator+language+".yml");
@@ -58,7 +56,7 @@ public class LanguageManager {
OutputStream output = new FileOutputStream(langFile)
) {
if(input == null) {
plugin.getLogger().warning("Could not save default language to the '"+AreaShop.languageFolder+"' folder: "+language+".yml");
AreaShop.warn("Could not save default language to the '"+AreaShop.languageFolder+"' folder: "+language+".yml");
continue;
}
int read;
@@ -69,7 +67,7 @@ public class LanguageManager {
input.close();
output.close();
} catch(IOException e) {
plugin.getLogger().warning("Something went wrong saving a default language file: "+langFile.getPath());
AreaShop.warn("Something went wrong saving a default language file: "+langFile.getPath());
}
}
@@ -81,27 +79,57 @@ public class LanguageManager {
* @return Map with the messages loaded from the file
*/
public Map<String, List<String>> loadLanguage(String key) {
return loadLanguage(key, true);
}
/**
* Loads the specified language
* @param key The language to load
* @param convert try conversion or not
* @return Map with the messages loaded from the file
*/
private Map<String, List<String>> loadLanguage(String key, boolean convert) {
Map<String, List<String>> result = new HashMap<>();
// Load the strings
boolean isTransifexFile = false;
File file = new File(plugin.getDataFolder()+File.separator+AreaShop.languageFolder+File.separator+key+".yml");
try(
InputStreamReader reader = new InputStreamReader(new FileInputStream(file), Charsets.UTF_8)
) {
YamlConfiguration ymlFile = YamlConfiguration.loadConfiguration(reader);
// Detect empty language files, happens when the YAML parser prints an exception (it does return an empty YamlConfiguration though)
if(ymlFile.getKeys(false).isEmpty()) {
plugin.getLogger().warning("Language file "+key+".yml has zero messages.");
AreaShop.warn("Language file "+key+".yml has zero messages.");
return result;
}
for(String messageKey : ymlFile.getKeys(false)) {
if(ymlFile.isList(messageKey)) {
result.put(messageKey, new ArrayList<>(ymlFile.getStringList(messageKey)));
} else {
result.put(messageKey, new ArrayList<>(Collections.singletonList(ymlFile.getString(messageKey))));
// Detect language files downloaded from Transifex and convert them
if(ymlFile.getKeys(false).size() == 1) {
for(String languageKey : ymlFile.getKeys(false)) {
if(ymlFile.isConfigurationSection(languageKey)) {
isTransifexFile = convert;
}
}
}
// Retrieve the messages from the YAML file and create the result
if(!isTransifexFile) {
for(String messageKey : ymlFile.getKeys(false)) {
if(ymlFile.isList(messageKey)) {
result.put(messageKey, new ArrayList<>(ymlFile.getStringList(messageKey)));
} else {
result.put(messageKey, new ArrayList<>(Collections.singletonList(ymlFile.getString(messageKey))));
}
}
}
} catch(IOException e) {
plugin.getLogger().warning("Could not load set language file: "+file.getAbsolutePath());
AreaShop.warn("Could not load set language file: "+file.getAbsolutePath());
}
if(isTransifexFile) {
if(!Transifex.convertFrom(file)) {
AreaShop.warn("Failed to convert "+file.getName()+" from the Transifex layout to the AreaShop layout, check the errors above");
}
return loadLanguage(key, false);
}
return result;
}
@@ -3,6 +3,8 @@ package me.wiefferink.areashop.messages;
import me.wiefferink.areashop.AreaShop;
import me.wiefferink.areashop.Utils;
import me.wiefferink.areashop.regions.GeneralRegion;
import org.apache.commons.lang.exception.ExceptionUtils;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@@ -84,6 +86,9 @@ public class Message {
* @return Message as a list
*/
private List<String> get(Limit limit) {
if(limit.reached()) {
return new ArrayList<>();
}
executeReplacements(limit);
return message;
}
@@ -182,12 +187,13 @@ public class Message {
AreaShop.getInstance().getLogger().severe("Message with key "+key+" could not be send, results in a JSON string that is too big to send to the client, start of the message: "+Utils.getMessageStart(this, 100));
return this;
}
boolean result = FancyMessageSender.sendJSON((Player)target, jsonString);
boolean result = Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "tellraw "+((Player)target).getName()+" "+jsonString);
sendPlain = !result;
fancyWorks = result;
} catch(Exception e) {
fancyWorks = false;
AreaShop.getInstance().getLogger().warning("Sending fancy message did not work, falling back to plain messages. Message key: "+key);
AreaShop.debug(ExceptionUtils.getStackTrace(e));
}
}
if(sendPlain) { // Fancy messages disabled or broken
@@ -289,7 +295,7 @@ public class Message {
* - Else the parameter will replace its number surrounded with VARIABLESTART and VARIABLEEND
*/
private void replaceArgumentVariables(Limit limit) {
if(message == null || message.size() == 0 || replacements == null) {
if(message == null || message.size() == 0 || replacements == null || limit.reached()) {
return;
}
boolean result = false;
@@ -302,8 +308,15 @@ public class Message {
} else if(param instanceof Message) {
Pattern variables = Pattern.compile(Pattern.quote(VARIABLESTART)+number+Pattern.quote(VARIABLEEND));
Matcher matches = variables.matcher(message.get(i));
if(matches.find()) {
FancyMessageFormat.insertMessage(message, ((Message)param).get(limit), i, matches.start(), matches.end());
if(matches.find()) { // Only replaces one occurance of the variable, others will be done next round
int startDiff = message.size()-i;
List<String> insertMessage = ((Message)param).get(limit);
if(limit.reached()) {
return;
}
FancyMessageFormat.insertMessage(message, insertMessage, i, matches.start(), matches.end());
// Skip to end of insert
i = message.size()-startDiff;
}
number++;
} else {
@@ -319,7 +332,7 @@ public class Message {
* Replace all language variables in a message
*/
private void replaceLanguageVariables(Limit limit) {
if(message == null || message.size() == 0) {
if(message == null || message.size() == 0 || limit.reached()) {
return;
}
@@ -349,8 +362,12 @@ public class Message {
// Insert message
int startDiff = message.size()-i;
FancyMessageFormat.insertMessage(message, insert.get(limit), i, matches.start(), matches.end());
// Skip to end of insert, language tags already replaced
List<String> insertMessage = insert.get(limit);
if(limit.reached()) {
return;
}
FancyMessageFormat.insertMessage(message, insertMessage, i, matches.start(), matches.end());
// Skip to end of insert
i = message.size()-startDiff;
}
}
@@ -1,219 +0,0 @@
package me.wiefferink.areashop.messages;
import org.bukkit.Bukkit;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
/**
* Class made by glan3b (Github: https://github.com/glen3b) for the Fanciful project (Github: https://github.com/mkremins/fanciful)
*/
/**
* A class containing static utility methods and caches which are intended as reflective conveniences.
* Unless otherwise noted, upon failure methods will return {@code null}.
*/
public final class Reflection {
private static String _versionString;
private Reflection() {
}
/**
* Gets the version string from the package name of the CraftBukkit server implementation.
* This is needed to bypass the JAR package name changing on each update.
* @return The version string of the OBC and NMS packages, <em>including the trailing dot</em>.
*/
public synchronized static String getVersion() {
if(_versionString == null) {
if(Bukkit.getServer() == null) {
// The server hasn't started, static initializer call?
return null;
}
String name = Bukkit.getServer().getClass().getPackage().getName();
_versionString = name.substring(name.lastIndexOf('.')+1)+".";
}
return _versionString;
}
/**
* Stores loaded classes from the {@code net.minecraft.server} package.
*/
private static final Map<String, Class<?>> _loadedNMSClasses = new HashMap<String, Class<?>>();
/**
* Stores loaded classes from the {@code org.bukkit.craftbukkit} package (and subpackages).
*/
private static final Map<String, Class<?>> _loadedOBCClasses = new HashMap<String, Class<?>>();
/**
* Gets a {@link Class} object representing a type contained within the {@code net.minecraft.server} versioned package.
* The class instances returned by this method are cached, such that no lookup will be done twice (unless multiple threads are accessing this method simultaneously).
* @param className The name of the class, excluding the package, within NMS.
* @return The class instance representing the specified NMS class, or {@code null} if it could not be loaded.
*/
public synchronized static Class<?> getNMSClass(String className) {
if(_loadedNMSClasses.containsKey(className)) {
return _loadedNMSClasses.get(className);
}
String fullName = "net.minecraft.server."+getVersion()+className;
Class<?> clazz = null;
try {
clazz = Class.forName(fullName);
} catch(Exception e) {
e.printStackTrace();
_loadedNMSClasses.put(className, null);
return null;
}
_loadedNMSClasses.put(className, clazz);
return clazz;
}
/**
* Gets a {@link Class} object representing a type contained within the {@code org.bukkit.craftbukkit} versioned package.
* The class instances returned by this method are cached, such that no lookup will be done twice (unless multiple threads are accessing this method simultaneously).
* @param className The name of the class, excluding the package, within OBC. This name may contain a subpackage name, such as {@code inventory.CraftItemStack}.
* @return The class instance representing the specified OBC class, or {@code null} if it could not be loaded.
*/
public synchronized static Class<?> getOBCClass(String className) {
if(_loadedOBCClasses.containsKey(className)) {
return _loadedOBCClasses.get(className);
}
String fullName = "org.bukkit.craftbukkit."+getVersion()+className;
Class<?> clazz = null;
try {
clazz = Class.forName(fullName);
} catch(Exception e) {
e.printStackTrace();
_loadedOBCClasses.put(className, null);
return null;
}
_loadedOBCClasses.put(className, clazz);
return clazz;
}
/**
* Attempts to get the NMS handle of a CraftBukkit object.
* <p>
* The only match currently attempted by this method is a retrieval by using a parameterless {@code getHandle()} method implemented by the runtime type of the specified object.
* </p>
* @param obj The object for which to retrieve an NMS handle.
* @return The NMS handle of the specified object, or {@code null} if it could not be retrieved using {@code getHandle()}.
*/
public synchronized static Object getHandle(Object obj) {
try {
return getMethod(obj.getClass(), "getHandle").invoke(obj);
} catch(Exception e) {
e.printStackTrace();
return null;
}
}
private static final Map<Class<?>, Map<String, Field>> _loadedFields = new HashMap<Class<?>, Map<String, Field>>();
/**
* Retrieves a {@link Field} instance declared by the specified class with the specified name.
* Java access modifiers are ignored during this retrieval. No guarantee is made as to whether the field
* returned will be an instance or static field.
* <p>
* A global caching mechanism within this class is used to store fields. Combined with synchronization, this guarantees that
* no field will be reflectively looked up twice.
* </p>
* <p>
* If a field is deemed suitable for return, {@link Field#setAccessible(boolean) setAccessible} will be invoked with an argument of {@code true} before it is returned.
* This ensures that callers do not have to check or worry about Java access modifiers when dealing with the returned instance.
* </p>
* @param clazz The class which contains the field to retrieve.
* @param name The declared name of the field in the class.
* @return A field object with the specified name declared by the specified class.
* @see Class#getDeclaredField(String)
*/
public synchronized static Field getField(Class<?> clazz, String name) {
Map<String, Field> loaded;
if(!_loadedFields.containsKey(clazz)) {
loaded = new HashMap<String, Field>();
_loadedFields.put(clazz, loaded);
} else {
loaded = _loadedFields.get(clazz);
}
if(loaded.containsKey(name)) {
// If the field is loaded (or cached as not existing), return the relevant value, which might be null
return loaded.get(name);
}
try {
Field field = clazz.getDeclaredField(name);
field.setAccessible(true);
loaded.put(name, field);
return field;
} catch(Exception e) {
// Error loading
e.printStackTrace();
// Cache field as not existing
loaded.put(name, null);
return null;
}
}
/**
* Contains loaded methods in a cache.
* The map maps [types to maps of [method names to maps of [parameter types to method instances]]].
*/
private static final Map<Class<?>, Map<String, Map<ArrayWrapper<Class<?>>, Method>>> _loadedMethods = new HashMap<Class<?>, Map<String, Map<ArrayWrapper<Class<?>>, Method>>>();
/**
* Retrieves a {@link Method} instance declared by the specified class with the specified name and argument types.
* Java access modifiers are ignored during this retrieval. No guarantee is made as to whether the field
* returned will be an instance or static field.
* <p>
* A global caching mechanism within this class is used to store method. Combined with synchronization, this guarantees that
* no method will be reflectively looked up twice.
* </p>
* <p>
* If a method is deemed suitable for return, {@link Method#setAccessible(boolean) setAccessible} will be invoked with an argument of {@code true} before it is returned.
* This ensures that callers do not have to check or worry about Java access modifiers when dealing with the returned instance.
* </p>
* <p>
* This method does <em>not</em> search superclasses of the specified type for methods with the specified signature.
* Callers wishing this behavior should use {@link Class#getDeclaredMethod(String, Class...)}.
* @param clazz The class which contains the method to retrieve.
* @param name The declared name of the method in the class.
* @param args The formal argument types of the method.
* @return A method object with the specified name declared by the specified class.
*/
public synchronized static Method getMethod(Class<?> clazz, String name,
Class<?>... args) {
if(!_loadedMethods.containsKey(clazz)) {
_loadedMethods.put(clazz, new HashMap<String, Map<ArrayWrapper<Class<?>>, Method>>());
}
Map<String, Map<ArrayWrapper<Class<?>>, Method>> loadedMethodNames = _loadedMethods.get(clazz);
if(!loadedMethodNames.containsKey(name)) {
loadedMethodNames.put(name, new HashMap<ArrayWrapper<Class<?>>, Method>());
}
Map<ArrayWrapper<Class<?>>, Method> loadedSignatures = loadedMethodNames.get(name);
ArrayWrapper<Class<?>> wrappedArg = new ArrayWrapper<Class<?>>(args);
if(loadedSignatures.containsKey(wrappedArg)) {
return loadedSignatures.get(wrappedArg);
}
for(Method m : clazz.getMethods()) {
if(m.getName().equals(name) && Arrays.equals(args, m.getParameterTypes())) {
m.setAccessible(true);
loadedSignatures.put(wrappedArg, m);
return m;
}
}
loadedSignatures.put(wrappedArg, null);
return null;
}
}
@@ -0,0 +1,120 @@
package me.wiefferink.areashop.messages;
import me.wiefferink.areashop.AreaShop;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.exception.ExceptionUtils;
import java.io.*;
public class Transifex {
public static boolean convertFrom(File inputFile) {
if(inputFile == null || !inputFile.exists() || !inputFile.isFile()) {
warn("Could not convert Transifix file, it does not exist");
return false;
}
AreaShop.debug("Transifex conversion of", inputFile.getAbsolutePath());
File newFile = new File(inputFile.getAbsolutePath()+".new");
try(
BufferedReader reader = new BufferedReader(new FileReader(inputFile));
BufferedWriter writer = new BufferedWriter(new FileWriter(newFile))
) {
// Create target file
newFile.createNewFile();
// Add translation strings
String line = reader.readLine();
boolean first = true;
String lastLineStart = null;
while(line != null) {
// Skip line with the language on it
if(first) {
first = false;
line = reader.readLine();
continue;
}
// Skip comment lines (normally there are none)
if(line.startsWith("#")) {
line = reader.readLine();
continue;
}
// Strip whitespace at the front
if(line.length() > 2) {
line = line.substring(2);
}
// Add empty lines between messages of a different type (the part before - decides the type)
if(lastLineStart != null && !line.trim().isEmpty() && !line.startsWith(lastLineStart) && !line.trim().startsWith("-")) {
writer.newLine();
}
// Write line to the new file
if(!line.trim().isEmpty()) {
// Detect special fancyformat lines
if(line.contains("\\n")) {
String[] specials = line.split("\\\\n");
//print("Contains newline: "+line+", split into "+specials.length+" parts");
// Write identifier
writer.write(specials[0].substring(0, specials[0].indexOf(":")+1));
writer.newLine();
// Strip identifier from first part
specials[0] = specials[0].substring(specials[0].indexOf(":")+3);
// Write special lines
for(String special : specials) {
writer.write(" - \"");
if(special.startsWith("\\t")) {
special = special.substring(2);
writer.write(" ");
}
writer.write(special);
if(!special.endsWith("\"")) {
writer.write("\"");
}
writer.newLine();
}
} else {
// Simply copy the line
writer.write(line);
writer.newLine();
}
}
// Update last line start
String[] splittedLine = line.split("-");
if(splittedLine.length > 0 && !line.trim().isEmpty()) {
lastLineStart = splittedLine[0];
}
line = reader.readLine();
}
} catch(IOException e) {
warn("Could not convert Transifix file:", ExceptionUtils.getStackTrace(e));
newFile.delete();
return false;
}
// Move current file to .old, move new file to original location
File oldFile = new File(inputFile.getAbsolutePath()+".transifex");
if(oldFile.exists() && oldFile.isFile()) {
if(!oldFile.delete()) {
warn("Could not remove existing old file:", oldFile.getAbsolutePath());
return false;
}
}
if(!inputFile.renameTo(oldFile)) {
warn("Could not move input file to .old, from", inputFile.getAbsolutePath(), "to", oldFile.getAbsolutePath());
return false;
}
if(!newFile.renameTo(inputFile)) {
warn("Could not move new file to original file location, from", newFile.getAbsolutePath(), "to", inputFile.getAbsolutePath());
oldFile.renameTo(inputFile); // Try to recover original file
return false;
}
AreaShop.info("Converted "+inputFile.getName()+" from the Transifex layout to the AreaShop layout, original saved in "+oldFile.getName());
return true;
}
/**
* Print a warning to the console
* @param message The message to print
*/
private static void warn(String... message) {
AreaShop.warn("[Transifex language file conversion]", StringUtils.join(message, " "));
}
}
@@ -337,7 +337,7 @@ public class BuyRegion extends GeneralRegion {
r = plugin.getEconomy().depositPlayer(oldOwnerName, getWorldName(), getResellPrice());
}
if(r == null || !r.transactionSuccess()) {
plugin.getLogger().warning("Something went wrong with paying '" + oldOwnerName + "' " + getFormattedPrice() + " for his resell of region " + getName() + " to " + player.getName());
AreaShop.warn("Something went wrong with paying '"+oldOwnerName+"' "+getFormattedPrice()+" for his resell of region "+getName()+" to "+player.getName());
}
// Resell is done, disable that now
disableReselling();
@@ -389,7 +389,7 @@ public class BuyRegion extends GeneralRegion {
r = plugin.getEconomy().depositPlayer(landlordName, getWorldName(), getPrice());
}
if(r != null && !r.transactionSuccess()) {
plugin.getLogger().warning("Something went wrong with paying '" + landlordName + "' " + getFormattedPrice() + " for his sell of region " + getName() + " to " + player.getName());
AreaShop.warn("Something went wrong with paying '"+landlordName+"' "+getFormattedPrice()+" for his sell of region "+getName()+" to "+player.getName());
}
}
@@ -504,7 +504,7 @@ public class BuyRegion extends GeneralRegion {
error = true;
}
if(error || response == null || !response.transactionSuccess()) {
plugin.getLogger().warning("Something went wrong with paying back money to " + getPlayerName() + " while selling region " + getName());
AreaShop.warn("Something went wrong with paying back money to "+getPlayerName()+" while selling region "+getName());
}
}
}
@@ -541,7 +541,7 @@ public class BuyRegion extends GeneralRegion {
long lastPlayed = getLastActiveTime();
//AreaShop.debug("currentTime=" + Calendar.getInstance().getTimeInMillis() + ", getLastPlayed()=" + lastPlayed + ", timeInactive=" + (Calendar.getInstance().getTimeInMillis()-player.getLastPlayed()) + ", inactiveSetting=" + inactiveSetting);
if(Calendar.getInstance().getTimeInMillis() > (lastPlayed + inactiveSetting)) {
plugin.getLogger().info("Region " + getName() + " unrented because of inactivity for player " + getPlayerName());
AreaShop.info("Region "+getName()+" unrented because of inactivity for player "+getPlayerName());
AreaShop.debug("currentTime=" + Calendar.getInstance().getTimeInMillis() + ", getLastPlayed()=" + lastPlayed + ", timeInactive=" + (Calendar.getInstance().getTimeInMillis()-player.getLastPlayed()) + ", inactiveSetting=" + inactiveSetting);
return this.sell(true, null);
}
@@ -700,8 +700,8 @@ public abstract class GeneralRegion implements GeneralRegionInterface, Comparabl
File parent = saveFile.getParentFile();
if (parent != null && !parent.exists()) {
if (!parent.mkdirs()) {
plugin.getLogger().warning("Did not save region " + getName() + ", schematic directory could not be created: " + saveFile);
return false;
AreaShop.warn("Did not save region "+getName()+", schematic directory could not be created: "+saveFile);
return false;
}
}
boolean result = plugin.getWorldEditHandler().saveRegionBlocks(saveFile, this);
@@ -724,7 +724,7 @@ public abstract class GeneralRegion implements GeneralRegionInterface, Comparabl
// The path to save the schematic
File restoreFile = new File(plugin.getFileManager().getSchematicFolder() + File.separator + fileName + AreaShop.schematicExtension);
if(!restoreFile.exists() || !restoreFile.isFile()) {
plugin.getLogger().info("Did not restore region " + getName() + ", schematic file does not exist: " + restoreFile);
AreaShop.info("Did not restore region "+getName()+", schematic file does not exist: "+restoreFile);
return false;
}
boolean result = plugin.getWorldEditHandler().restoreRegionBlocks(restoreFile, this);
@@ -794,7 +794,7 @@ public abstract class GeneralRegion implements GeneralRegionInterface, Comparabl
/**
* Teleport a player to the region
* Teleport a player to the region or sign
* @param player Player that should be teleported
* @param toSign true to teleport to the first sign of the region, false for teleporting to the region itself
* @param checkPermissions Set to true if teleport permissions should be checked, false otherwise
@@ -884,7 +884,7 @@ public abstract class GeneralRegion implements GeneralRegionInterface, Comparabl
int vertical = Integer.parseInt(configSetting);
middle = middle.setY(vertical);
} catch(NumberFormatException e) {
plugin.getLogger().warning("Could not parse general.teleportLocationY: '"+configSetting+"'");
AreaShop.warn("Could not parse general.teleportLocationY: '"+configSetting+"'");
}
}
startLocation = new Location(getWorld(), middle.getX(), middle.getY(), middle.getZ(), player.getLocation().getYaw(), player.getLocation().getPitch());
@@ -1123,9 +1123,22 @@ public abstract class GeneralRegion implements GeneralRegionInterface, Comparabl
return false;
}
}
/**
* Teleport a player to the region or sign when he has permissions for it
* @param player Player that should be teleported
* @param toSign true to teleport to the first sign of the region, false for teleporting to the region itself
* @return true if the teleport succeeded, otherwise false
*/
public boolean teleportPlayer(Player player, boolean toSign) {
return teleportPlayer(player, toSign, true);
}
/**
* Teleport a player to the region when he has permissions for it
* @param player Player that should be teleported
* @return true if the teleport succeeded, otherwise false
*/
public boolean teleportPlayer(Player player) {
return teleportPlayer(player, false, true);
}
@@ -1195,7 +1208,16 @@ public abstract class GeneralRegion implements GeneralRegionInterface, Comparabl
// CONFIG
public boolean getBooleanSetting(String path) { // Handles strings as booleans
/**
* Get a boolean setting for this region, defined as follows
* - If the region has the setting in its own file (/regions/regionName.yml), use that
* - If the region has groups, use the setting defined by the most important group, if any
* - Otherwise fallback to the default.yml file setting
* @param path The path to get the setting of
* @return The value of the setting (strings are handled as booleans)
*/
public boolean getBooleanSetting(String path) {
if(config.isSet(path)) {
if(config.isString(path)) {
return config.getString(path).equalsIgnoreCase("true");
@@ -1225,7 +1247,15 @@ public abstract class GeneralRegion implements GeneralRegionInterface, Comparabl
}
return this.getFileManager().getDefaultSettings().getBoolean(path);
}
/**
* Get a boolean setting for this region, defined as follows
* - If the region has the setting in its own file (/regions/regionName.yml), use that
* - If the region has groups, use the setting defined by the most important group, if any
* - Otherwise fallback to the default.yml file setting
* @param path The path to get the setting of
* @return The value of the setting (strings are handled as booleans)
*/
public int getIntegerSetting(String path) {
if(config.isSet(path)) {
return config.getInt(path);
@@ -1245,7 +1275,15 @@ public abstract class GeneralRegion implements GeneralRegionInterface, Comparabl
}
return this.getFileManager().getDefaultSettings().getInt(path);
}
/**
* Get a double setting for this region, defined as follows
* - If the region has the setting in its own file (/regions/regionName.yml), use that
* - If the region has groups, use the setting defined by the most important group, if any
* - Otherwise fallback to the default.yml file setting
* @param path The path to get the setting of
* @return The value of the setting
*/
public double getDoubleSetting(String path) {
if(config.isSet(path)) {
return config.getDouble(path);
@@ -1265,7 +1303,15 @@ public abstract class GeneralRegion implements GeneralRegionInterface, Comparabl
}
return this.getFileManager().getDefaultSettings().getDouble(path);
}
/**
* Get a long setting for this region, defined as follows
* - If the region has the setting in its own file (/regions/regionName.yml), use that
* - If the region has groups, use the setting defined by the most important group, if any
* - Otherwise fallback to the default.yml file setting
* @param path The path to get the setting of
* @return The value of the setting
*/
public long getLongSetting(String path) {
if(config.isSet(path)) {
return config.getLong(path);
@@ -1285,7 +1331,15 @@ public abstract class GeneralRegion implements GeneralRegionInterface, Comparabl
}
return this.getFileManager().getDefaultSettings().getLong(path);
}
/**
* Get a string setting for this region, defined as follows
* - If the region has the setting in its own file (/regions/regionName.yml), use that
* - If the region has groups, use the setting defined by the most important group, if any
* - Otherwise fallback to the default.yml file setting
* @param path The path to get the setting of
* @return The value of the setting
*/
public String getStringSetting(String path) {
if(config.isSet(path)) {
return config.getString(path);
@@ -1305,7 +1359,15 @@ public abstract class GeneralRegion implements GeneralRegionInterface, Comparabl
}
return this.getFileManager().getDefaultSettings().getString(path);
}
/**
* Get a string list setting for this region, defined as follows
* - If the region has the setting in its own file (/regions/regionName.yml), use that
* - If the region has groups, use the setting defined by the most important group, if any
* - Otherwise fallback to the default.yml file setting
* @param path The path to get the setting of
* @return The value of the setting
*/
public List<String> getStringListSetting(String path) {
if(config.isSet(path)) {
return config.getStringList(path);
@@ -1325,7 +1387,12 @@ public abstract class GeneralRegion implements GeneralRegionInterface, Comparabl
}
return this.getFileManager().getDefaultSettings().getStringList(path);
}
/**
* Set a setting in the file of the region itself
* @param path The path to set
* @param value The value to set it to, null to remove the setting
*/
public void setSetting(String path, Object value) {
config.set(path, value);
this.saveRequired();
@@ -1372,10 +1439,10 @@ public abstract class GeneralRegion implements GeneralRegionInterface, Comparabl
if(player.hasPermission("areashop.limits." + group) && this.matchesLimitGroup(group)) {
String pathPrefix = "limitGroups."+group+".";
if(!plugin.getConfig().isInt(pathPrefix+"total")) {
plugin.getLogger().warning("Limit group "+group+" in the config.yml file does not correctly specify the number of total regions (should be specified as total: <number>)");
AreaShop.warn("Limit group "+group+" in the config.yml file does not correctly specify the number of total regions (should be specified as total: <number>)");
}
if(!plugin.getConfig().isInt(pathPrefix+typePath)) {
plugin.getLogger().warning("Limit group "+group+" in the config.yml file does not correctly specify the number of "+typePath+" regions (should be specified as "+typePath+": <number>)");
AreaShop.warn("Limit group "+group+" in the config.yml file does not correctly specify the number of "+typePath+" regions (should be specified as "+typePath+": <number>)");
}
int totalLimit = plugin.getConfig().getInt("limitGroups." + group + ".total");
int typeLimit = plugin.getConfig().getInt("limitGroups." + group + "."+typePath);
@@ -1460,18 +1527,43 @@ public abstract class GeneralRegion implements GeneralRegionInterface, Comparabl
this.current = current;
this.limitingGroup = limitingGroup;
}
/**
* Check if the action is allowed
* @return true if the actions is allowed, otherwise false
*/
public boolean actionAllowed() {
return actionAllowed;
}
}
/**
* Get the type of the factor that is limiting the action, assuming actionAllowed() is false
* @return The type of the limiting factor
*/
public LimitType getLimitingFactor() {
return limitingFactor;
}
/**
* Get the maximum number of the group that is the limiting factor, assuming actionAllowed() is false
* @return The maximum
*/
public int getMaximum() {
return maximum;
}
/**
* Get the current number of regions in the group that is the limiting factor, assuming actionAllowed() is false
* @return The current number of regions the player has
*/
public int getCurrent() {
return current;
}
/**
* Get the name of the group that is limiting the action, assuming actionAllowed() is false
* @return The name of the group
*/
public String getLimitingGroup() {
return limitingGroup;
}
@@ -1597,11 +1689,11 @@ public abstract class GeneralRegion implements GeneralRegionInterface, Comparabl
if(!result) {
printed = true;
if(error != null) {
plugin.getLogger().warning("Command execution failed, command=" + command + ", error=" + error + ", stacktrace:");
plugin.getLogger().warning(stacktrace);
plugin.getLogger().warning("--- End of stacktrace ---");
AreaShop.warn("Command execution failed, command="+command+", error="+error+", stacktrace:");
AreaShop.warn(stacktrace);
AreaShop.warn("--- End of stacktrace ---");
} else {
plugin.getLogger().warning("Command execution failed, command=" + command);
AreaShop.warn("Command execution failed, command="+command);
}
}
if(!printed) {
@@ -514,7 +514,7 @@ public class RentRegion extends GeneralRegion {
r = plugin.getEconomy().depositPlayer(landlordName, getWorldName(), price);
}
if(r == null || !r.transactionSuccess()) {
plugin.getLogger().warning("Something went wrong with paying '"+landlordName+"' "+Utils.formatCurrency(price)+" for his rent of region "+getName()+" to "+player.getName());
AreaShop.warn("Something went wrong with paying '"+landlordName+"' "+Utils.formatCurrency(price)+" for his rent of region "+getName()+" to "+player.getName());
}
}
@@ -654,7 +654,7 @@ public class RentRegion extends GeneralRegion {
error = true;
}
if(error || r == null || !r.transactionSuccess()) {
plugin.getLogger().warning("Something went wrong with paying back to " + getPlayerName() + " money while unrenting region " + getName());
AreaShop.warn("Something went wrong with paying back to "+getPlayerName()+" money while unrenting region "+getName());
}
}
}
@@ -694,7 +694,7 @@ public class RentRegion extends GeneralRegion {
long lastPlayed = getLastActiveTime();
//AreaShop.debug("currentTime=" + Calendar.getInstance().getTimeInMillis() + ", getLastPlayed()=" + lastPlayed + ", timeInactive=" + (Calendar.getInstance().getTimeInMillis()-player.getLastPlayed()) + ", inactiveSetting=" + inactiveSetting);
if(Calendar.getInstance().getTimeInMillis() > (lastPlayed + inactiveSetting)) {
plugin.getLogger().info("Region " + getName() + " unrented because of inactivity for player " + getPlayerName());
AreaShop.info("Region "+getName()+" unrented because of inactivity for player "+getPlayerName());
AreaShop.debug("currentTime=" + Calendar.getInstance().getTimeInMillis() + ", getLastPlayed()=" + lastPlayed + ", timeInactive=" + (Calendar.getInstance().getTimeInMillis()-player.getLastPlayed()) + ", inactiveSetting=" + inactiveSetting);
return this.unRent(true, null);
}
+541
View File
@@ -0,0 +1,541 @@
# ╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗
# ║ Language file of the AreaShop plugin created by NLThijs48, Github can be found at https://github.com/NLthijs48/AreaShop ║
# ║ Language: German, Version: V2.3.2, Percentage translated: 96% ║
# ║ This file will be overwritten at each startup/reload of the plugin, if you want to change anything then do the following: ║
# ║ 1: Make a copy of this file ║
# ║ 2: Rename it to <servername>.yml (don't use a language code as filename, could otherwise be overwritten in future updates) ║
# ║ 3: Change the 'language' setting in config.yml to '<servername>', do not include '.yml' ║
# ║ 4: Change the strings in the new file to your liking and save the file ║
# ║ 5: Use '/as reload' or reload/restart your server to see the changes ║
# ╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝
button: "[bold]<%0%>[/bold]"
command:
- "[bold]%0%[/bold]"
- " hover: %lang:action|Benutze %1%|%"
- " command: %1%"
helpCommand:
- "[gold]%0% [gray]-[reset]"
- " hover: %lang:action|Benutze %0%|%"
- " command: %0%"
region: "%lang:tRegion|%region%|%"
tRegion:
- "[bold]%0%[/bold]"
- " hover: Region %0%"
- " hover: %lang:action|Region information|%"
- " command: /areashop info region %0%"
player: "%lang:tPlayer|%player%|%"
tPlayer:
- "[bold]%0%[/bold]"
- " hover: Spieler %0%"
- " hover: %lang:action|Regionen von%0%|%"
- " command: /areashop info player %0%"
landlord:
- "[bold]%landlord%[/bold]"
- " hover: Vermieter %landlord%"
- " hover: %lang:action|Regionen von %landlord%|%"
- " command: /areashop info player %landlord%"
total-maximum: "Du kannst nicht mehr als %0% Region(en) mieten/kaufen (Du hast bereits %1% in Gruppe '%2%')."
general-notReady: "AreaShop ist noch nicht vollständig geladen, bitte warten."
general-noWorld: "Du kannst das nicht machen, die Welt von %lang:region% ist derzeit nicht verfügbar (Welt '%world%')."
general-noRegion: "Du kannst das nicht machen, die WorldGuard Region ist derzeit nicht verfügbar (region %lang:region%)."
general-noEconomy: "AreaShop kann kein (korrekt) installiertes Economy-Plugin finden, bitte informiere den Serverinhaber darüber."
general-cancelled: "%0%"
cmd-notValid: "Der Befehl ist ungültig, nutze '/as help' für weitere Informationen."
cmd-onlyByPlayer: "Dieser Befehl kann nur von einem Spieler benutzt werden."
cmd-weOnlyByPlayer: "Eine WorldEdit-Selektion kann nur von einem Spieler gewählt werden, gib die Region als extra Argument an."
cmd-noSelection: "Du hast mit WorldEdit nichts markiert."
cmd-noRegionsFound: "In deiner Selektion wurden keine in AreaShop registrierten Regionen gefunden."
cmd-noWERegionsFound: "Es wurden keine WorldEdit-Regionen gefunden, die sich mit deiner Selektion überschneiden."
cmd-notRegistered: "Die angegebene Region ist in AreaShop nicht verfügbar: %0%."
cmd-noRegionsAtLocation: "Keine Regionen an deiner Position gefunden, gib die Region als Argument an."
cmd-moreRegionsAtLocation: "Mehr als eine Region wurde an deiner Position gefunden, gib die Region als Argument an."
cmd-automaticRegionOnlyByPlayer: "Die Automatische Auswahl einer Region ist nur für Spieler möglich, gib die Region als Argument an."
help-header: "Hilfeseite mit Befehlen, die du ausführen kannst."
help-noPermission: "Du hast keine Permissions, um diese Hilfeseite anzuzeigen."
help-alias: "Befehlsaliase: /areashop, /as."
help-help: "%lang:helpCommand|/as help|% Zeigt diese HilfeSeite.."
help-info: "%lang:helpCommand|/as info|% Zeigt Infos über aktuelle Regionen."
help-rent: "%lang:helpCommand|/as rent|% Miete eine Region oder verlängere deine derzeitige Miete."
help-buy: "%lang:helpCommand|/as buy|% Kaufe eine Region."
help-unrent: "%lang:helpCommand|/as unrent|% Breche eine Miete für eine Region ab."
help-sell: "%lang:helpCommand|/as sell|% Verkaufe eine Region."
help-reload: "%lang:helpCommand|/as reload|% Lade alle Dateien sowie Regionen neu."
help-setrestore: "%lang:helpCommand|/as setrestore|% Aktiviere das Zurücksetzen und wähle ein Profil."
help-setprice: "%lang:helpCommand|/as setprice|% Ändere die Preis einer Region."
help-setduration: "%lang:helpCommand|/as setduration|% Ändere die Dauer einer gemieteten Region."
help-teleport: "%lang:helpCommand|/as tp|% Teleportiere zu einer kauf- oder mietbaren Region."
help-setteleport: "%lang:helpCommand|/as settp|% Setze die Teleport Position von einer Region."
help-find: "%lang:helpCommand|/as find|% Finde eine kauf- oder mietbare Region."
help-groupadd: "%lang:helpCommand|/as groupadd|% Füge eine Region zu einer Gruppe hinzu."
help-groupdel: "%lang:helpCommand|/as groupdel|% Lösche eine Region von einer Gruppe."
help-grouplist: "%lang:helpCommand|/as grouplist|% Liste alle Gruppen auf, welche derzeit Registriert sind."
help-groupinfo: "%lang:helpCommand|/as groupinfo|% Zeigt Informationen über eine Gruppe an."
help-schemevent: "%lang:helpCommand|/as schemevent|% Löst ein Schematic Event für eine Region aus."
help-add: "%lang:helpCommand|/as add|% Registriere eine Region zum mieten oder kaufen."
help-del: "%lang:helpCommand|/as del|% Lösche eine registrierte Region von AreaShop"
help-addsign: "%lang:helpCommand|/as addsign|% Füge ein Schild zu einer existierenden Region hinzu."
help-delsign: "%lang:helpCommand|/as delsign|% Lösche das Schild auf das du Schaust."
help-me: "%lang:helpCommand|/as me|% Liste alle Regionen, welche zu besitzt auf, sowie deren Ablaufdatum."
help-setowner: "%lang:helpCommand|/as setowner|% Setze den Besitzer einer Region oder verlängere die Miete."
help-resell: "%lang:helpCommand|/as resell|% Setzt eine Tegion in den resell Modus."
help-stopResell: "%lang:helpCommand|/as stopresell|% Setzt eine Region zurück in den Verkauft Modus."
help-addFriend: "%lang:helpCommand|/as addfriend|% Fügt einen Freund zu einer Region hinzu."
help-delFriend: "%lang:helpCommand|/as delfriend|% Löscht einen Freund von einer Region."
help-linksigns: "%lang:helpCommand|/as linksigns|% Benutze Massenschild Verlinkungs Modus."
help-stack: "%lang:helpCommand|/as stack|% Erstelle mehrere Regionen und füge sie hinzu."
help-setlandlord: "%lang:helpCommand|/as setlandlord|% Setzt den Vermieter einer Region."
rent-help: "/as rent [Region], Wenn kein Regionsname angegeben wird, wird die Region genutzt, in der du dich gerade befindest."
rent-noPermission: "Du bist nicht berechtigt, diese Region zu mieten."
rent-maximum: "Du kannst nicht mehr als %0% Region(en) mieten (Du hast bereits %1% in Gruppe '%2%')."
rent-maximumExtend: "Du kannst diese Miete nicht verlängern weil du mehr als %0% Region(en) hast. (Du hast bereits %1% in Gruppe '%2%')."
rent-payError: "Die Bezahlung hat nicht funktioniert. Bitte versuche es später noch einmal."
rent-rented: "Du hast die Region %lang:region% gemietet bis zum %until%. Du kannst deine Mieter verlängern, in dem du auf das Schild klickst, oder du /as rent eingibts."
rent-extended: "Du hast Deine Miete von %lang:region% bis zum %until% verlängert."
rent-extendedToMax: "Du hast Deine Miete von %lang:region% bis zum %until% verlängert. (Das ist die maximal zulässige Mietdauer von %maxrenttime%)."
rent-lowMoneyExtend: "Du hast nicht genug Geld um die Miete zu verlängern. (Du hast %0% und benötigst %price%)."
rent-lowMoneyRent: "Du hast nicht genug Geld um die Region %lang:region% zu mieten. (Du hast %0% und benötigst %price%)."
rent-someoneElse: "Die Region %lang:region% ist bereits vermietet."
rent-notRentable: "Diese Region ist nicht mietbar."
rent-maxExtends: "Du kannst diese Miete nicht weiter verlängern. (Zulässig sind %maxextends% Verlängerungen). Nachdem die Miete abgelaufen ist, kannst du die Region %lang:region% erneut mieten."
rent-maxRentTime: "Du kannst die Region%lang:region% nicht noch mehr im Voraus mieten. Die maximale Zeit beträgt %maxrenttime% und du hast diese Region im Moment für %timeleft% gemietet."
rent-restrictedToWorld: "Du musst dich in der Welt '%world%' befinden, um die Region %lang:region% mieten zu können (Du befindest Dich in der Welt '%0%')."
rent-restrictedToRegion: "Du musst innerhalb der Region %lang:region% sein, um diese mieten zu können."
rent-expireWarning: "Deine Region %lang:region% hat %timeleft% übrig. Beachte, dass du sie rechtzeitig verlängerst, wenn du sie behalten willst."
rent-alreadyAtFull: "Die Region %lang:region% ist bereits auf oder über der maximalen Mietzeit, Du kannst diese noch nicht verlängern."
buy-help: "/as buy [Regionname], Wenn kein Regionsname angegeben wird, wird die Region genutzt, in der du dich gerade befindest."
buy-noPermission: "Du bist nicht berechtigt, eine Region zu kaufen."
buy-noPermissionResell: "Du hast keine Berechtigung eine Region im Weiterverkaufs-Modus zu kaufen."
buy-noPermissionNoResell: "Du hast keine Berechtigung um eine Region zu kaufen, die nicht im Weiterverkaufs-Modus ist."
buy-notBuyable: "Die Region %lang:region% ist nicht zum Kaufen verfügbar."
buy-maximum: "Du kannst nicht mehr als %0% Region(en) erwerben (Du hast bereits %1% in Gruppe '%2%')."
buy-payError: "Die Bezahlung hat nicht funktioniert. Bitte versuche es später noch einmal."
buy-succes: "Du hast %lang:region% erfolgreich gekauft."
buy-successResale: "Du hast %lang:region% erfolgreich von %lang:tPlayer|%0%|% gekauft."
buy-successSeller: "Deine Region %lang:region% wurde an %lang:player% für %0% verkauft."
buy-lowMoney: "Du hast nicht genug Geld um die Region %lang:region% zu kaufen. (Du hast %0% und benötigst %price%)."
buy-lowMoneyResell: "Du hast nicht genug Geld um die Region %lang:region% zu kaufen. (Du hast %0% und benötigst %resellprice%)."
buy-yours: "Du besitzt die Region %lang:region% bereits."
buy-someoneElse: "Jemand anderes hat die Region %lang:region% bereits gekauft."
buy-restrictedToWorld: "Du musst Dich in der Welt '%world%' befinden, um die Region %lang:region% kaufen zu können. (Du befindest Dich in der Welt '%0%')."
buy-restrictedToRegion: "Du musst innerhalb der Region %lang:region% sein, um diese kaufen zu können."
unrent-help: "/as unrent [Region], Wenn kein Regionsname angegeben wird, wird die Region genutzt, in der Du Dich gerade befindest."
unrent-noPermission: "Du bist nicht berechtigt, den Mietvertrag zu kündigen."
unrent-noPermissionOther: "Du bist nicht berechtigt, den Mietvertrag einer anderen Region zu kündigen."
unrent-notRegistered: "Die Region kann nicht entmietet werden, weil sie nicht für Vermietungen registriert ist."
unrent-notRented: "Die Region kann nicht entmietet werden, weil sie nicht gemietet ist."
unrent-unrented: "Die Region %lang:region% ist nun nicht mehr an %lang:player% vermietet."
unrent-expired: "Deine Miete von %lang:region% ist abgelaufen."
sell-help: "/as sell [Region], Wenn kein Regionsname angegeben wird, wird die Region genutzt, in der Du dich gerade befindest."
sell-notRegistered: "Die Region kann nicht verkauft werden, da sie nicht für den Verkauf registriert ist."
sell-notBought: "Die Region kann nicht verkauft werden, da sie keinen Eigentümer hat."
sell-sold: "Die Region %lang:region% von %lang:player% wurde verkauft."
sell-noPermission: "Du bist nicht berechtigt, diese Region zu verkaufen."
sell-noPermissionOther: "Du bist nicht berechtigt, eine Region zu verkaufen."
reload-reloading: "Alle Dateien wurden neu geladen, nun werden alle Mieten überprüft und alle Regionen aktualisiert."
reload-updateStart: "[gray]Aktualisiere %0% Regionen mit %1% Regionen pro Sekunde."
reload-updateComplete: "[gray]Regionen erfolgreich aktualisiert."
reload-noPermission: "Du hast keine Berechtigungen um die Konfigurationsdateien neu zu laden."
reload-updateCommandChanged: "'/as updaterents' und '/as updatebuys' wurden entfernt, bitte benutze '/as reload' um die Regionen neu zu laden."
info-help:
- "/as info[break]"
- "%lang:command|all|/as info all|%"
- "%lang:command|rented|/as info rented|% [Gruppe] [Seite]"
- "%lang:command|forrent|/as info forrent|% [Gruppe] [Seite]"
- "%lang:command|sold|/as info sold|% [Gruppe] [Seite]"
- "%lang:command|forsale|/as info forsale|% [Gruppe] [Seite]"
- "%lang:command|reselling|/as info reselling|% [Gruppe] [Seite]"
- "%lang:command|nogroup|/as info nogroup|% [Seite]"
- "%lang:command|region|/as info region|% [Region]"
info-noPermission: "Du hast keine Berechtigung, Informationen über Regionen zu erhalten."
info-allHeader: "Alle Regionen%0%:"
info-rentedHeader: "Gemietete Regionen%0%:"
info-forrentHeader: "Mietbare Regionen%0%:"
info-forsaleHeader: "Kaufbare Regionen%0%:"
info-soldHeader: "Verkaufte Regionen%0%:"
info-resellingHeader: "Weiterverkaufbare Regionen%0%:"
info-nogroupHeader: "Regionen ohne Gruppe%0%:"
info-limitedToGroup: " (begrenzt auf Gruppe %0%)"
info-nogroupNone: "Es gibt keine Regionen ohne Gruppe."
info-noFiltergroup: "Gruppe '%0%' existiert nicht und kann deshalb nicht genutzt werden um die Ergebnisse zu limitieren."
info-noRegions: "Es wurden keine Regionen gefunden."
info-wrongPage: "%0% ist keine korrekte Seitenzahl."
info-pageNoPrevious:
- " [darkgray][bold]◄Vorherige[/bold] "
- " hover: Das ist bereits die erste Seite."
info-pageNoNext:
- " [darkgray][bold]Nächste►[/bold]"
- " hover: Das ist bereits die letzte Seite."
info-playerHelp: "/as info player <Spielername>."
info-playerRents: "Gemietete Regionen von %lang:tPlayer|%0%|%: [gray]%1%"
info-playerNoRents: "%lang:tPlayer|%0%|% hat bisher keine Region(en) gemietet."
info-playerBuys: "Gekaufte Regionen von %lang:tPlayer|%0%|%: [gray]%1%."
info-playerNoBuys: "%lang:tPlayer|%0%|% hat bisher keine Region(en) gekauft."
info-regionHelp: "/as info region [Region], Wenn kein Regionsname angegeben wird, wird die Region genutzt, in der du dich gerade befindest."
info-regionHeaderRent: "[darkgreen]Informationen über %lang:region%:"
info-regionHeaderBuy: "[darkgreen]Informationen über %lang:region%:"
info-regionRented: "[darkgreen][bold]►[reset] Gemietet von %lang:player% bis: [gray]%until%."
info-regionBought: "[darkgreen][bold]►[reset] Gekauft von %lang:player%."
info-regionReselling: "[darkgreen][bold]►[reset] Gekauft von %lang:player%, derzeit Weiterverkauf."
info-regionExtending:
- "[darkgreen][bold]►[reset] "
- "[bold]Verlängern für[/bold]"
- " hover: Miete verlängern für %region%"
- " hover: mit %duration% für %price%"
- " hover: %lang:action|Mieter Verlängern für %region%|%"
- " command: /areashop rent %region%"
- ": [gray]%price% für %duration%."
info-regionCanBeRented:
- "[darkgreen][bold]►[reset] "
- "[bold]Mieten für[/bold]"
- " hover: Miete %region% für %price% für %duration%"
- " hover: %lang:action|Miete %region%|%"
- " command: /areashop rent %region%"
- ": [gray]%price% für %duration%."
info-regionCanBeBought:
- "[darkgreen][bold]►[reset] "
- "[bold]Kaufen für[/bold]"
- " hover: Kaufe %region% für %price%"
- " hover: %lang:action|Kaufe %region%|%"
- " command: /areashop buy %region%"
- ": [gray]%price%."
info-regionReselPrice: "[darkgreen][bold]►[reset] Weiterverkaufspreis: [gray]%resellprice% (Du kannst es von %lang:player% kaufen)."
info-regionFriends: "[darkgreen][bold]►[reset] Hinzugefügte Freunde: [gray]%0%."
info-friend: "%lang:tPlayer|%0%|%"
info-friendRemove:
- "%lang:info-friend|%0%|%"
- "[red]✕[gray]"
- " hover: Region %region%"
- " hover: %lang:action|Lösche %0% als Freund|%"
- " command: /areashop delfriend %0% %region%"
info-regionMoneyBackBuy: "[darkgreen][bold]►[reset] Verkaufpreis: [gray]%moneyback% (%moneybackpercent%% des Kaufpreises)."
info-regionMoneyBackBuyClick:
- "[darkgreen][bold]►[reset] "
- "[bold]Verkaufsrückzahlung[/bold]"
- " hover: Verkaufe %region% und bekomme %moneyback% zurück"
- " hover: %lang:action|Verkaufe %region%|%"
- " command: /areashop sell %region%"
- ": [gray]%moneyback% (%moneybackpercent%% des Kaufpreises)."
info-regionMoneyBackRent: "[darkgreen][bold]►[reset] Rückzahlung bei Mietkündigung: [gray]%moneyback% (%moneybackpercent%% der verbleibenden Zeit)."
info-regionMoneyBackRentClick:
- "[darkgreen][bold]►[reset] "
- "[bold]Mietrückzahlung[/bold]"
- " hover: Mietabbruch %region% und bekomme %moneyback% zurück"
- " hover: %lang:action|Mietabbruch %region%|%"
- " command: /areashop unrent %region%"
- ": [gray]%moneyback% (%moneybackpercent%% der verbleibenden Zeit)."
info-regionMaxExtends: "[darkgreen][bold]►[reset] Maximale Anzahl an Mietverlängerungen: [gray]%maxextends% mal."
info-regionNoExtending: "[darkgreen][bold]►[reset] Miete kann nicht verlängert werden."
info-regionExtendsLeft: "[darkgreen][bold]►[reset] Verbleibende Mietverlängerungen: [gray]%extendsleft% von %maxextends% mal."
info-regionMaxRentTime: "[darkgreen][bold]►[reset] Miete im Voraus: [gray]Maximal %maxrenttime%."
info-prefix: "[darkgreen][bold]►[reset] "
info-regionTeleport:
- "[bold]Gehe zu der Region[/bold]"
- " hover: %lang:action|Teleportiere zu %region%|%"
- " command: /areashop tp %region%"
info-setRegionTeleport:
- "[bold]Setze den Teleport Punkt[/bold]"
- " hover: %region%"
- " hover: %lang:action|Setze den Teleport Punkt|%"
- " command: /areashop settp %region%"
info-regionSigns: "[darkgreen][bold]►[reset] Verbundene Schilder: [gray]%0%."
info-regionSignLocation: "[gray](%0%, %1%, %2%, %3%)[reset]"
info-regionGroups: "[darkgreen][bold]►[reset] Zugewiesene Gruppen: [gray]%0%."
info-regionInactiveUnrent: "[darkgreen][bold]►[reset] Automatische Mietkündigung nach: [gray]%inactivetime% Inaktivität des Spielers."
info-regionInactiveSell: "[darkgreen][bold]►[reset] Automatischer Verkauf nach: [gray]%inactivetime% Inaktivität des Spielers."
info-regionRestrictedRegionRent: "[darkgreen][bold]►[reset] Du musst dich in der Region %lang:region% befinden, um sie mieten zu können."
info-regionRestrictedWorldRent: "[darkgreen][bold]►[reset] Du musst in der Welt '%world%' sein, um die Region %lang:region% mieten zu können."
info-regionRestrictedRegionBuy: "[darkgreen][bold]►[reset] Du musst dich in der Region %lang:region% befinden, um sie kaufen zu können."
info-regionRestrictedWorldBuy: "[darkgreen][bold]►[reset] Du musst in der Welt '%world%' sein, um die Region %lang:region% kaufen zu können."
info-regionRestoringRent: "[darkgreen][bold]►[reset] Die Wiederherstellung ist aktiviert [gray](Region wird bei Mietkündigung zurückgesetzt)%0%."
info-regionRestoringBuy: "[darkgreen][bold]►[reset] Die Wiederherstellung ist aktiviert. [gray](Region wird beim Verkauf zurückgesetzt)%0%."
info-regionRestoringProfile: " (profile: %0%)"
info-regionLandlord: "[darkgreen][bold]►[reset] Vermieter: [gray]%lang:landlord% (Erhält das Geld)."
info-regionNotExisting: "Die angegebene Region ist nicht registriert: %0%."
setrestore-help: "/as setrestore <Region> <true|false|general> [Profil]."
setrestore-noPermission: "Du bist nicht berechtigt, die Wiederherstellungs-Einstellungen zu verändern."
setrestore-notRegistered: "Die angegebene Region ist nicht registriert: %0%."
setrestore-invalidSetting: "'%0%' ist kein gültiger Status, kann true sein, false oder general."
setrestore-success: "Wiederherstellungs-Einstellungen von %lang:region% erfolgreich zu '%0%' geändert."
setrestore-successProfile: "Wiederherstellungs-Einstellungen von %lang:region% erfolgreich zu '%0%' geändert und das Profil zu '%1%' geändert."
setprice-noPermission: "Du bist nicht berechtigt, den Preis einer Region zu ändern."
setprice-help: "/as setprice <Preis> [Region], Wenn kein Regionsname angegeben wird, wird die Region genutzt, in der du dich gerade befindest."
setprice-notRegistered: "Die angegebene Region ist nicht registriert: %0%."
setprice-wrongPrice: "'%0%' ist kein gültiger Preis."
setprice-successRent: "Der Preis der Region %lang:region% änderte sich zu %price% per %duration%."
setprice-successBuy: "Der Preis der Region %lang:region% wurde zu %price% geändert."
setprice-successRemoved: "Der Preis der Region %lang:region% wurde entfernt, ab jetzt wird der Preis einer Gruppe oder der default.yml-Datei benutzt. Neuer Preis: %price%."
setprice-noLandlord: "Du hast keine Rechte um den Preis zu ändern, da du nicht der Vermieter der Region %lang:region% bist."
setduration-noPermission: "Du hast keine Berechtigung, die Mietdauer zu verändern."
setduration-help: "/as setduration <Anzahl> <Zeiteinheit> [Region], wählt automatisch die Region, in der du dich gerade befindest, wenn nichts angegeben wird."
setduration-notRegistered: "%0% ist nicht als mietbar registriert."
setduration-wrongAmount: "'%0%' ist keine gültige Anzahl, gib eine ganze Zahl an."
setduration-wrongFormat: "'%0%' ist kein gültiges Zeitformat, schau in der Doku auf Bukkit nach."
setduration-success: "Dauer von Region %lang:region% zu '%duration%' geändert."
setduration-noLandlord: "Du hast keine Rechte um die Dauer der Miete zu ändern, da du nicht der Vermieter der Region %lang:region% bist."
setduration-successRemoved: "Die Mietdauer der Region %lang:region% wurde entfernt, es wird nun die Dauer von einer Gruppe oder der default.yml Datei benutzt. Neue Mietdauer: %duration%."
setup-noRegion: "Du hast in der zweiten Zeile keine Region angegeben."
setup-alreadyRentSign: "Die angegebene Region ist bereits in AreaShop als eine Miet-Region eingefügt, du kannst Schilder zu der Region mit [as] in der ersten Zeile hinzufügen, oder '/as addsign' verwenden."
setup-alreadyBuySign: "Die angegebene Region ist bereits in AreaShop als eine Kauf-Region eingefügt, du kannst Schilder zu der Region mit [as] in der ersten Zeile hinzufügen, oder '/as addsign' verwenden."
setup-noDuration: "Du hast nicht angegeben, wie lange eine Region mietbar ist. Bitte trage dies in die dritte Zeile ein."
setup-wrongDuration: "Die angegebene Zeit liegt nicht in einem korrekten Format vor. Beispiel: 1 Tag."
setup-noPrice: "Du hast in der vierten Zeile noch keinen Preis angegeben."
setup-wrongPrice: "Du hast den Preis nicht korrekt angegeben, bitte nutze dafür ausschließlich Zahlen."
setup-rentSuccess: "Die Vermietung der Region %lang:region% ist erfolgreich erstellt worden."
setup-buySuccess: "Das Kaufen der Region %lang:region% ist erfolgreich erstellt worden."
setup-noPermissionRent: "Du hast keine Berechtigungen um mietbare Regionen aufzusetzen."
setup-noPermissionBuy: "Du hast keine Berechtigungen um kaufbare Regionen aufzusetzen."
setup-couldNotDetect: "Mehrere Regionen mit der selben Priorität und/oder Eltern/Kind-Verhältnis gefunden, bitte gib die gewünschte Region in der zweiten Zeile an (zwei der gefundenen Regionen: %lang:tRegion|%0%|% und %lang:tRegion|%1%|%)."
setup-blacklisted: "%0% ist auf der Blacklist und kann nicht in AreaShop eingefügt werden."
setup-noPermission: "Du kannst die Region '%0%' nicht hinzufügen, da du weder Besitzer noch Mitglied der Region bist oder keine Rechte dazu hast."
destroy-noPermissionRent: "Du hast keine Berechtigungen um eine mietbare Region zu deregistrieren. "
destroy-noPermissionBuy: "Du hast keine Berechtigungen um eine kaufbare Region zu deregistrieren. "
destroy-successRent: "%lang:region% erfolgreich als mietbare Region abgemeldet."
destroy-successBuy: "%lang:region% erfolgreich als kaufbare Region abgemeldet."
teleport-help: "/as tp <Region> [Schild]."
teleport-noRentOrBuy: "Die angegebene Region ist nicht registriert: %0%."
teleport-noPermission: "Du hast keine Rechte um dich zu dieser Region zu teleportieren."
teleport-noPermissionOther: "Du bist nicht berechtigt, dich zu einer Region zu teleportieren, welche du nicht besitzt."
teleport-noPermissionSign: "Du hast keine Rechte um dich zu diesem Schild in deiner Region zu teleportieren."
teleport-noPermissionOtherSign: "Du fehlt die Berechtigung, dich zu Schildern von Regionen, die du nicht besitzt, zu teleportieren."
teleport-noPermissionFriend: "Du hast keine Berechtigungen zu Regionen zu teleporten, in denen du als Freund hinzugefügt worden bist."
teleport-noPermissionFriendSign: "Du hast keine Berechtigungen um zu dem Schild einer Region zu teleporten, in denen du als Freund hinzugefügt worden bist."
teleport-success: "Du wurdest zu %lang:region% teleportiert."
teleport-successSign: "Du wurdest zum Schild von %lang:region% teleportiert."
teleport-noSafe: "Keine sichere Position in %lang:region% gefunden, kein Boden vorhanden oder maximale Anzahl an Versuchen erreicht (%0%/%1%)."
teleport-blocked: "Du kannst dich nicht teleportieren, weil sich die Position außerhalb der Region befindet und du dich nur in die Region teleportieren kannst."
teleport-changedToSign: "Du hast nur Rechte um zum Schild der Region zu teleportieren und nicht um in die Region zu teleportieren. Teleportiere zum Schild."
teleport-changedToNoSign: "Es ist kein Schild zum teleportieren verfügbar, versuche stattdessen in die Region zu teleportieren."
setteleport-help: "/as settp [Region] [reset], Wenn kein Regionsname angegeben wird, wird die Region genutzt, in der du dich gerade befindest."
setteleport-noPermission: "Du bist nicht berechtigt, einen Teleport-Punkt zu setzen."
setteleport-noPermissionOther: "Dir fehlt die Berechtigung die Teleportposition für eine Region, du du nicht besitzt, festzulegen."
setteleport-noRentOrBuy: "Die angegebene Region ist nicht registriert: %0%."
setteleport-success: "Teleport-Punkt von %lang:region% erfolgreich gesetzt."
setteleport-notInside: "Der Teleportpunkt muss sich innerhalb einer Region befinden."
setteleport-reset: "Teleport-Punkt von %lang:region% erfolgreich zurückgesetzt."
find-help: "/as find <buy|rent> [maximaler Preis] [Gruppe]."
find-noPermission: "Du hast keine Berechtigungen nach Regionen zu suchen und zu ihnen zu teleporten."
find-success: "%0% Region gefunden: %lang:region%, bei Suche nach max. Preis in Höhe deines Guthabens: %1%%2%."
find-successMax: "%0% Region gefunden: %lang:region%,, bei Suche nach max. Preis in Höhe von %1%%2%."
find-wrongMaxPrice: "Der angegebene Maximal-Preis ist kein korrekter Betrag: %0%."
find-wrongGroup: "Die angegebene Gruppe existiert nicht: %0%."
find-noneFound: "Keine %0% Region gefunden bei Suche nach max. Preis in Höhe deines Guthabens: %1%%2%."
find-noneFoundMax: "Keine %0% Region gefunden bei Suche nach max. Preis in Höhe von %1%%2%."
find-onlyInGroup: ", nur nach Regionen in der Gruppe %0% suchen."
groupadd-help: "/as groupadd <Gruppe> [Region], Wenn kein Regionsname angegeben wird, werden alle Regionen deiner WorldEdit-Markierung einbezogen."
groupadd-noPermission: "Du bist nicht berechtigt Regionen zu Gruppen hinzuzufügen."
groupadd-success: "Region %lang:region% wurde zur Gruppe '%0%' hinzugefügt. Diese Gruppe hat nun %1% Mitglied(er)."
groupadd-failed: "Region %lang:region% ist bereits Mitglied der Gruppe '%0%';."
groupadd-weSuccess: "Zu Gruppe %0% hinzugefügt: [gray]%1%."
groupadd-weFailed: "Ist bereits in Gruppe %0%: [gray]%1%."
groupdel-help: "/as groupdel <Gruppe> [Region], Wenn kein Regionsname angegeben wird, werden alle Regionen deiner WorldEdit-Markierung einbezogen."
groupdel-noPermission: "Du bist nicht berechtigt, Regionen aus Gruppen zu entfernen."
groupdel-success: "Region %lang:region% ist aus Gruppe '%0%' entfernt worden. Diese Gruppe hat nun %1% Mitglied(er)."
groupdel-failed: "Region %lang:region% gehört nicht zur Gruppe '%0%'."
groupdel-weSuccess: "Entfernt aus Gruppe %0%: [gray]%1%."
groupdel-weFailed: "Ist nicht länger in Gruppe %0%: [gray]%1%."
grouplist-noPermission: "Du bist nicht berechtigt, die eingetragenen Gruppen abzurufen."
grouplist-noGroups: "Momentan sind keine Gruppen vorhanden."
grouplist-success: "Folgende Gruppen sind vorhanden: [gray]%0%."
groupinfo-help: "/as groupinfo <Gruppe>."
groupinfo-noPermission: "Du bist nicht berechtigt, Informationen über eine Gruppe abzurufen."
groupinfo-noGroup: "Es ist keine Gruppe mit dem Namen '%0%' vorhanden, bitte benutze zum Anzeigen der verfügbaren Gruppen /as grouplist."
groupinfo-members: "Die folgenden Regionen gehören zur Gruppe %0%: [gray]%1%."
groupinfo-noMembers: "Gruppe %0% hat keine Mitglieder."
schemevent-help: "/as schemevent <Region> <created|deleted|rented|unrented|bought|sold>."
schemevent-wrongEvent: "Das angegebene Event '%0%' existiert nicht, bitte benutze eines der folgenden: [gray]%1%."
schemevent-success: "'%0%'-Event wurde erfolgreich für Region %lang:region% ausgelöst."
schemevent-noPermission: "Du bist nicht berechtigt, Schematic-Events auszuführen."
add-help: "/as add <rent|buy> [Region] [Welt]."
add-noPermission: "Du bist nicht berechtigt, eine Region in AreaShop hinzuzufügen."
add-success: "Hinzugefügt als %0%: [gray]%1%."
add-failed: "Bereits eingetragen: [gray]%0%."
add-blacklisted: "Auf der Blacklist: [gray]%0%."
add-specifyWorld: "Bei Verwendung der Konsole bitte Welt der Region eintragen."
add-incorrectWorld: "Welt '%0%' nicht gefunden, versuche es bitte noch einmal (Groß- und Kleinschreibung beachten)."
add-noRegion: "WorldGuard Region '%0%' existiert nicht in dieser Welt."
add-noPermissionRegions: "Keine Rechte zum hinzufügen: [gray]%0%."
add-noPermissionOwnerMember: "[gray]Entweder bist du weder Mitglied noch Besitzer der Region oder hast keine Rechte um deine Regionen hinzuzufügen."
del-noPermission: "Du bist nicht berechtigt, Regionen zu entfernen."
del-success: "Entfernte Region(en): [gray]%0%."
del-failed: "Keine Berechtigung zum Entfernen oder nicht eingetragen: [gray]%0%."
addsign-help: "/as addsign [Region] [Profil]."
addsign-noSign: "Du schaust gerade nicht auf ein Schild."
addsign-noRegions: "Keine Region(en) um das Schild herum gefunden."
addsign-couldNotDetect: "Mehrere Regionen um das Schild herum gefunden, bitte gewünschte Region als Argument angeben (zwei der gefundenen Regionen: %lang:tRegion|%0%|% und %lang:tRegion|%1%|%)."
addsign-couldNotDetectSign: "Mehrere Regionen um das Schild herum gefunden, bitte gewünschte Region in die zweite Zeile eintragen (zwei der gefundenen Regionen: %lang:tRegion|%0%|% und %lang:tRegion|%1%|%)."
addsign-wrongProfile: "Das eingetragene Profil existiert nicht. Bitte benutze eines der folgenden (überprüfe config): [gray]%0%."
addsign-profile:
- "[bold]%0%[/bold]"
- " hover: Schildprofil %0%"
- " hover: %lang:action|Nutze dieses Profil|%"
- " command: /areashop linksigns %0%"
addsign-success: "Das Schild wurde hinzugefügt zu %lang:region%."
addsign-successProfile: "Das Schild wurde zu %lang:region% mit dem Profil %0% hinzugefügt."
addsign-alreadyRegistered: "Dieses Schild ist bereits für die Region %lang:region% registriert."
addsign-noPermission: "Du bist nicht berechtigt, ein Schild hinzuzufügen."
delsign-noSign: "Du schaust gerade nicht auf ein Schild."
delsign-noPermission: "Du bist nicht berechtigt, ein Schild zu entfernen."
delsign-noRegion: "Dieses Schild gehört zu keiner in AreaShop eingetragenen Region."
delsign-success: "Das Schild wurde von der Region %lang:region% entfernt."
me-noPermission: "Dir fehlt die Berechtigung einzusehen, welche Regionen du besitzt."
me-header: "Regionen von %lang:tPlayer|%0%|%:"
me-notAPlayer: "Du bist kein Spieler, darum können dir keine Regionen gehören."
me-buyLine: "[darkgreen][bold]►[reset] %lang:region%."
me-nothing: "%lang:tPlayer|%0%|% hat keine gemieteten oder gekaufen Regionen und wurde nicht als Freund zu einem hinzugefügt."
me-noPlayer: "%0% konnte nicht gefunden werden, möglicherweise war er nie auf diesem Server."
setowner-help: "/as setowner <Spieler> [Region], wenn kein Regionsname angegeben wird, wird die Region genutzt, in der du dich gerade befindest."
setowner-noPermission: "Dir fehlt die Berechtigung den Besitzer einer Region festzulegen."
setowner-noPermissionRent: "Dir fehlt die Berechtigung den Mieter einer Region festzulegen."
setowner-noPermissionBuy: "Dir fehlt die Berechtigung den Eigentümer einer Region festzulegen."
setowner-notRegistered: "Die angegebene Region ist nicht registriert, Besitzer kann nicht festgelegt werden."
setowner-noPlayer: "Die UUID des Spielers %0% konnte nicht gefunden werden."
setowner-succesRent: "Besitzer von %lang:region% erfolgreich geändert zu %lang:player%, gemietet bis %until% (%timeleft% verbleibend)."
setowner-succesRentExtend: "%lang:player% ist bereits Besitzer, Miete verlängert um '%duration%', nun gemietet bis %until% (%timeleft% verbleibend)."
setowner-succesBuy: "Besitzer von %lang:region% erfolgreich geändert zu %lang:player%."
resell-help: "/as resell <Preis> [Region], wählt automatisch die Region, in der du dich befindest, wenn nicht angegeben."
resell-wrongPrice: "'%0%' ist keine gültige Preisangabe."
resell-notRegistered: "Die angegebene Region ist nicht registriert: %0%."
resell-notBought: "Du kannst %lang:region% nicht weiterverkaufen, weil sie noch nicht erworben wurde."
resell-success: "Weiterverkauf für %lang:region% erfolgreich aktiviert. Preis: %resellprice%."
resell-noPermission: "Du hast keine Berechtigung, deine Region weiterzuverkaufen."
resell-noPermissionOther: "Du hast keine Berechtigung, den Weiterverkauf von Regionen zu aktivieren."
stopresell-help: "/as stopresell [Region], wählt automatisch die Region, in der du dich befindest, wenn nicht angegeben."
stopresell-notRegistered: "Die angegebene Region ist nicht registriert: %0%."
stopresell-notResell: "Du kannst den Weiterverkauf von %lang:region% nicht stoppen, weil sie bisher nicht weiterverkauft werden soll."
stopresell-success: "Weiterverkauf von %lang:region% wurde erfolgreich gestoppt."
stopresell-noPermission: "Du hast keine Berechtigung, den Weiterverkauf deiner Region zu stoppen."
stopresell-noPermissionOther: "Du hast keine Berechtigung, den Weiterverkauf einer Region zu stoppen."
addfriend-help: "/as addfriend <Spieler> [Region], wählt automatisch die Region, in der du dich befindest, wenn nicht angegeben."
addfriend-noPermissionOther: "Du hast keine Berechtigung, Freunde zu deiner Region hinzuzufügen."
addfriend-noPermission: "Du hast keine Berechtigung, Spieler zu einer Region hinzuzufügen."
addfriend-successOther: "%lang:tPlayer|%0%|% wurde als Freund zur Region %lang:region% hinzugefügt."
addfriend-success: "%lang:tPlayer|%0%|% wurde als Freund zu deiner Region %lang:region% hinzugefügt."
addfriend-alreadyAdded: "%lang:tPlayer|%0%|% wurde bereits als Freund zu der Region %lang:region% hinzugefügt."
addfriend-self: "Den Besitzer der Region als Freund hinzuzufügen wäre sinnlos."
addfriend-noOwner: "Du kannst keine Freunde zu einer Region ohne Besitzer hinzufügen."
addfriend-notVisited: "Du kannst %0% nicht hinzufügen, weil dieser Spieler noch nie auf dem Server war."
delfriend-help: "/as delfriend <Spieler> [Region], wählt automatisch die Region, in der du dich befindest, wenn nicht angegeben."
delfriend-noPermissionOther: "Du hast keine Berechtigung, Freunde von Regionen zu entfernen, die dir nicht gehören."
delfriend-noPermission: "Du hast keine Berechtigung, Freunde von deinen Regionen zu entfernen."
delfriend-successOther: "%lang:tPlayer|%0%|% wurde als Freund der Region %lang:region% entfernt."
delfriend-success: "%lang:tPlayer|%0%|% wurde als Freund Deiner Region %lang:region% entfernt."
delfriend-noOwner: "Du kannst keine Freunde von einer Region ohne Besitzer entfernen."
linksigns-multipleRegions: "Mehrere Regionen gefunden: [gray]%0%."
linksigns-multipleRegionsAdvice: "Bitte klicke nochmal oder benutze '/as linksigns' um aufzuhören."
linksigns-noRegions: "Keine AreaShop Regionen in Cursorrichtung gefunden, bitte stell sicher, dass die Region in AreaShop registriert ist. [gray](Maximale Reichweite 100 Blöcke)"
linksigns-regionFound: "Region %lang:region% wurde gefunden, mach einen Linksklick auf ein Schild um die Region mit dem Schild zu verbinden."
linksigns-signFound: "Schild gefunden bei (%0%, %1%, %2%), mach einen Rechtsklick auf eine Region um das Schild zu verbinden."
linksigns-noSign: "Kein Schild in Cursorrichtung gefunden, bitte stell sicher, dass du eine direkte Sicht auf ein Schild hast und klicke erneut [gray](Maximale Reichweite 100 Blöcke)."
linksigns-alreadyRegistered: "Dieses Schild ist bereits auf die Region %lang:region% registriert, klicke erneut um ein anderes Schild zu wählen."
linksigns-first: "Du bist nun im Schilderverbindungsmodus."
linksigns-next: "[gray]Linksklicke um ein Schild zu wählen, Rechtsklicke um eine Region zu wählen. Benutze /as linksigns um aufzuhören."
linksigns-noPermission: "Du hast keine Berechtigungen um den Schilder-Massenverbindungsmodus zu benutzen."
linksigns-stopped: "Schilder-Verbindungsmodus verlassen."
stack-help:
- "/as stack <Menge> <Abstand> <Name> <rent|buy> [Gruppe]."
- "[gray]<Menge> Nummer der Regionen, die erstellt werden."
- "[gray]<Abstand> Block-Abstand zwischen den Regionen."
- "[gray]<Name> Namen der Regionen (Nummer wird dahinter sein)."
- "[gray]<rent|buy> Macht die Regionen zu kauf- oder Mietregionen"
- "[gray][Gruppe] Eine Gruppe, die zu den erstellten Regionen hinzugefügt wird."
- "Die Regionen werden in deiner Blickrichtung erstellt."
stack-accepted: "Erstelle %0% %1% Regionen mit %2% Blöcken Abstand, Namen beginnend mit %3% und einer Zahl dahinter. %4%"
stack-addToGroup: "Gruppe '%0%' wird zu den erstellten Regionen hinzugefügt."
stack-noPermission: "Du hast keine Berechtigungen um Regionen massenweise in AreaShop zu erstellen und hinzuzufügen."
stack-wrongAmount: "'%0%' ist keine korrekte Anzahl von Regionen."
stack-wrongGap: "'%0%' ist keine korrekte Nummer von Blöcken für den Abstand, der zwischen den Regionen sein soll."
stack-noSelection: "Du hast keine Auswahl, die angibt, wo die erste Region erstellt werden soll."
stack-addStart: "[gray]Füge %0% Regionen mit %1% Regionen pro Sekunde hinzu."
stack-addComplete: "[gray]Regionen erfolgreich hinzugefügt."
stack-unclearDirection: "Bitte gucke nur nach Norden, Osten, Süden oder Westen. Du guckst im Moment nach %0%."
setlandlord-help: "/as setlandlord <Spieler> [Region], die Region in der du stehst wird verwendet, wenn keine angegeben wird."
setlandlord-noPermission: "Du hast keine Rechte um den Vermieter einer Region zu setzen."
setlandlord-success: "%lang:landlord% wurde erfolgreich als Vermieter der Region %lang:region% gesetzt."
message-help: "/as message <Spieler> <Nachricht...>"
message-noPermission: "Du hast keine Berechtigung AreaShop Nachrichten zu senden."
message-notOnline: "%0% ist nicht online."
confirm-rent:
- "%lang:prefix%Bist du sicher, dass du %lang:tRegion|%0%|% mieten willst?"
- "[darkgreen][bold]►[reset] %lang:button|Klick zum mieten %0%|%"
- "hover: %lang:action|Rent %0%|%"
- "command: /areashop rent %0%"
confirm-extend:
- "%lang:prefix%Bist du sicher, dass du %lang:tRegion|%0%|% verlängern willst?"
- "[darkgreen][bold]►[reset] %lang:button|Click to extend %0%|%"
- "hover: %lang:action|Verlängern %0%|%"
- "command: /areashop rent %0%"
confirm-unrent:
- "%lang:prefix%Bist du sicher, dass du %lang:tRegion|%0%|% nicht länger mieten möchtest?"
- "[darkgreen][bold]►[reset] %lang:button|Klick zum auflösen %0%|%"
- "hover: %lang:action|Mietvertrag auslösen %0%|%"
- "command: /areashop unrent %0%"
confirm-buy:
- "%lang:prefix%Bist du sicher, dass du %lang:tRegion|%0%|% kaufen willst?"
- "[darkgreen][bold]►[reset] %lang:button|Klick zum kaufen %0%|%"
- "hover: %lang:action|Kaufen %0%|%"
- "command: /areashop buy %0%"
confirm-sell:
- "%lang:prefix%Bist du sicher, dass du %lang:tRegion|%0%|% verkaufen willst?[break]"
- "[darkgreen][bold]►[reset] %lang:button|Klick zum verkaufen %0%|%"
- " hover: %lang:action|Verkaufen %0%|%"
- " command: /areashop sell %0%"
timeleft-years: "%0% Jahre"
timeleft-months: "%0% Monate"
timeleft-days: "%0% Tage"
timeleft-hours: "%0% Stunden"
timeleft-minutes: "%0% Minuten"
timeleft-second: "%0% Sekunde"
timeleft-seconds: "%0% Sekunden"
timeleft-ended: "abgelaufen"
greeting-forrent: "%region% kann gemietet werden für %price% je %duration%."
greeting-rented: "%region% ist vermietet an %player% bis %until%."
greeting-forsale: "%region% kann gekauft werden für %price%."
greeting-bought: "%region% ist Eigentum von %player%."
greeting-resale: "%region% kann %player% für %resaleprice% abgekauft werden."
+22 -63
View File
@@ -1,6 +1,6 @@
# ╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗
# ║ Language file of the AreaShop plugin created by NLThijs48, Github can be found at https://github.com/NLthijs48/AreaShop ║
# ║ Language: English, Version: V2.3.0, Percentage translated: 100% (source), author: NLThijs48 ║
# ║ Language: English, Version: V2.3.2, Percentage translated: 100% (source), author: NLThijs48 ║
# ║ This file will be overwritten at each startup/reload of the plugin, if you want to change anything then do the following: ║
# ║ 1: Make a copy of this file ║
# ║ 2: Rename it to <servername>.yml (don't use a language code as filename, could otherwise be overwritten in future updates) ║
@@ -8,18 +8,16 @@
# ║ 4: Change the strings in the new file to your liking and save the file ║
# ║ 5: Use '/as reload' or reload/restart your server to see the changes ║
# ╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝
action: "[blue][bold]<%0%>[/bold]"
action: "[gold][bold]<%0%>[/bold]"
button: "[bold]<%0%>[/bold]"
command:
- "[bold]%0%[/bold]"
- " hover: %lang:action|Use %1%|%"
- " command: %1%"
helpCommand:
- "[gold]%0% [gray]-[reset]"
- " hover: %lang:action|Use %0%|%"
- " command: %0%"
@@ -27,7 +25,6 @@ helpCommand:
region: "%lang:tRegion|%region%|%"
tRegion:
- "[bold]%0%[/bold]"
- " hover: Region %0%"
- " hover: %lang:action|Region information|%"
@@ -36,14 +33,12 @@ tRegion:
player: "%lang:tPlayer|%player%|%"
tPlayer:
- "[bold]%0%[/bold]"
- " hover: Player %0%"
- " hover: %lang:action|Regions of %0%|%"
- " command: /areashop info player %0%"
landlord:
- "[bold]%landlord%[/bold]"
- " hover: Landlord %landlord%"
- " hover: %lang:action|Regions of %landlord%|%"
@@ -161,7 +156,6 @@ reload-noPermission: "You don't have permission to reload the config files."
reload-updateCommandChanged: "'/as updaterents' and '/as updatebuys' have been removed, '/as reload' will also update the regions now so use that command instead."
info-help:
- "/as info[break]"
- " %lang:command|all|/as info all|%[break]"
- " %lang:command|rented|/as info rented|% [group] [page][break]"
@@ -171,7 +165,6 @@ info-help:
- " %lang:command|reselling|/as info reselling|% [group] [page][break]"
- " %lang:command|nogroup|/as info nogroup [page]|%"
- " %lang:command|region|/as info region|% [region][break]"
info-noPermission: "You don't have permission to get information about regions."
info-allHeader: "All regions%0%:"
info-rentedHeader: "Rented regions%0%:"
@@ -185,37 +178,27 @@ info-nogroupNone: "There are no regions without a group."
info-noFiltergroup: "Group '%0%' does not exist and therefore cannot be used to limit the results."
info-noRegions: "No regions have been found."
info-wrongPage: "%0% is not a correct page number."
info-entryForrent: "[darkgreen][bold]►[reset] %lang:region%: For rent for %price% per %duration%."
info-entryRented: "[darkgreen][bold]►[reset] %lang:region%: Rented to %lang:player%."
info-entryForsale: "[darkgreen][bold]►[reset] %lang:region%: For sale for %price%."
info-entrySold: "[darkgreen][bold]►[reset] %lang:region%: Sold to %lang:player%."
info-entryReselling: "[darkgreen][bold]►[reset] %lang:region%: Sold to %lang:player% (reselling)."
info-entryForrent: "[darkgreen][bold]►[reset] %lang:region%: [gray]For rent for %price% per %duration%."
info-entryRented: "[darkgreen][bold]►[reset] %lang:region%: [gray]Rented to %lang:player%."
info-entryForsale: "[darkgreen][bold]►[reset] %lang:region%: [gray]For sale for %price%."
info-entrySold: "[darkgreen][bold]►[reset] %lang:region%: [gray]Sold to %lang:player%."
info-entryReselling: "[darkgreen][bold]►[reset] %lang:region%: [gray]Sold to %lang:player% (reselling)."
info-pageStatus:
- "[gray]Page %0%/%1%"
- "[gold]Page %0%/%1%"
info-pagePrevious:
- " [gray][bold]◄Previous[/bold] "
- " [gold][bold]◄Previous[/bold] "
- " hover: %lang:action|Show previous page|%"
- " command: %0%"
info-pageNoPrevious:
- " [darkgray][bold]◄Previous[/bold] "
- " hover: This is already the first page"
info-pageNext:
- " [gray][bold]Next►[/bold]"
- " [gold][bold]Next►[/bold]"
- " hover: %lang:action|Show next page|%"
- " command: %0%"
info-pageNoNext:
- " [darkgray][bold]Next►[/bold]"
- " hover: This is already the last page"
info-playerHelp: "/as info player <name>."
info-playerRents: "Regions rented by %lang:tPlayer|%0%|%: [gray]%1%"
info-playerNoRents: "%lang:tPlayer|%0%|% has not rented a region."
@@ -230,7 +213,6 @@ info-regionRented: "[darkgreen][bold]►[reset] Rented by %lang:player% until: [
info-regionBought: "[darkgreen][bold]►[reset] Bought by %lang:player%."
info-regionReselling: "[darkgreen][bold]►[reset] Bought by %lang:player%, currently reselling."
info-regionExtending:
- "[darkgreen][bold]►[reset] "
- "[bold]Extend for[/bold]"
- " hover: Extend rent of %region%"
@@ -238,80 +220,61 @@ info-regionExtending:
- " hover: %lang:action|Extend rent of %region%|%"
- " command: /areashop rent %region%"
- ": [gray]%price% per %duration%."
info-regionCanBeRented:
- "[darkgreen][bold]►[reset] "
- "[bold]Rent for[/bold]"
- " hover: Rent %region% for %price% per %duration%"
- " hover: %lang:action|Rent %region%|%"
- " command: /areashop rent %region%"
- ": [gray]%price% per %duration%."
info-regionCanBeBought:
- "[darkgreen][bold]►[reset] "
- "[bold]Buy for[/bold]"
- " hover: Buy %region% for %price%"
- " hover: %lang:action|Buy %region%|%"
- " command: /areashop buy %region%"
- ": [gray]%price%."
info-regionReselPrice: "[darkgreen][bold]►[reset] Resell price: [gray]%resellprice% (you can buy it from %lang:player%)."
info-regionFriends: "[darkgreen][bold]►[reset] Added friends: [gray]%0%."
info-friend: "%lang:tPlayer|%0%|%"
info-friendRemove:
- "%lang:info-friend|%0%|%"
- "[red]✕[gray]"
- " hover: Region %region%"
- " hover: %lang:action|Remove %0% as friend|%"
- " command: /areashop delfriend %0% %region%"
info-regionMoneyBackBuy:
- "[darkgreen][bold]►[reset] Selling payback: [gray]%moneyback% (%moneybackpercent%% of the price)."
info-regionMoneyBackBuyClick:
- "[darkgreen][bold]►[reset] "
- "[bold]Selling payback[/bold]"
- " hover: Sell %region% and get back %moneyback%"
- " hover: %lang:action|Sell %region%|%"
- " command: /areashop sell %region%"
- ": [gray]%moneyback% (%moneybackpercent%% of the price)."
info-regionMoneyBackRent:
- "[darkgreen][bold]►[reset] Unrenting payback: [gray]%moneyback% (%moneybackpercent%% of the remaining time)."
info-regionMoneyBackRentClick:
- "[darkgreen][bold]►[reset] "
- "[bold]Unrenting payback[/bold]"
- " hover: Unrent %region% and get back %moneyback%"
- " hover: %lang:action|Unrent %region%|%"
- " command: /areashop unrent %region%"
- ": [gray]%moneyback% (%moneybackpercent%% of the remaining time)."
info-regionMaxExtends: "[darkgreen][bold]►[reset] Maximum number of extensions: [gray]%maxextends% time(s)."
info-regionNoExtending: "[darkgreen][bold]►[reset] Rent cannot be extended."
info-regionExtendsLeft: "[darkgreen][bold]►[reset] Extensions left: [gray]%extendsleft% time(s) out of %maxextends%."
info-regionMaxRentTime: "[darkgreen][bold]►[reset] In advance renting: [gray]%maxrenttime% at maximum."
info-prefix: "[darkgreen][bold]►[reset] "
info-regionTeleport:
- "[bold]Go to the region[/bold]"
- " hover: %lang:action|Teleport to %region%|%"
- " command: /areashop tp %region%"
info-setRegionTeleport:
- "[bold]set teleport location[/bold]"
- " hover: %region%"
- " hover: %lang:action|Set teleport location|%"
- " command: /areashop settp %region%"
info-regionSigns: "[darkgreen][bold]►[reset] Connected signs: [gray]%0%."
info-regionSignLocation: "[gray](%0%, %1%, %2%, %3%)[reset]"
info-regionGroups: "[darkgreen][bold]►[reset] Assigned groups: [gray]%0%."
@@ -456,12 +419,10 @@ addsign-couldNotDetect: "Found multiple regions around the sign, specify region
addsign-couldNotDetectSign: "Found multiple regions around the sign, specify region on the second line (2 of the regions that were found: %lang:tRegion|%0%|% and %lang:tRegion|%1%|%)."
addsign-wrongProfile: "The specified profile does not exist, use one of the following (check config): [gray]%0%."
addsign-profile:
- "[bold]%0%[/bold]"
- " hover: Signprofile %0%"
- " hover: %lang:action|Use this profile|%"
- " command: /areashop linksigns %0%"
addsign-success: "The sign has been added to %lang:region%."
addsign-successProfile: "The sign has been added to %lang:region% with profile %0%."
addsign-alreadyRegistered: "That sign is already registered for region %lang:region%."
@@ -475,11 +436,20 @@ delsign-success: "The sign has been removed from region %lang:region%."
me-noPermission: "You don't have permission to check which regions you have."
me-header: "Regions of %lang:tPlayer|%0%|%:"
me-notAPlayer: "You are not a player so you can't have any regions."
me-rentLine: "[darkgreen][bold]►[reset] %lang:region% [gray](until %until%, %timeleft% left)."
me-rentLine:
- "[darkgreen][bold]►[reset] %lang:region% [gray]("
- "%timeleft% left"
- " hover: until %until%"
- ")."
me-buyLine: "[darkgreen][bold]►[reset] %lang:region%."
me-friendLine: "[darkgreen][bold]►[reset] %lang:region% [gray](added as friend, owner: %lang:player%)."
me-friendLine:
- "[darkgreen][bold]►[reset] %lang:region% [gray]("
- "owned by %lang:player%"
- " hover: You are added as friend"
- ")."
me-nothing: "%lang:tPlayer|%0%|% has not rented or bought regions and is not added as friend to one."
me-noPlayer: "%0% cannot be found, probably never joined the server."
me-clickHint: "[gray][italic]Click a region name to see details."
setowner-help: "/as setowner <player> [region], the region you stand in will be used if not specified."
setowner-noPermission: "You don't have permission to set the owner of a region."
@@ -521,7 +491,7 @@ delfriend-noPermissionOther: "You don't have permission to delete friends from r
delfriend-noPermission: "You don't have permission to delete friends from your region."
delfriend-successOther: "%lang:tPlayer|%0%|% has been deleted as friend from region %lang:region%."
delfriend-success: "%lang:tPlayer|%0%|% has been deleted as friend from your region %lang:region%."
delfriend-notAdded: "%lang:tPlayer|%0%|% is not added as friend to %lang:region."
delfriend-notAdded: "%lang:tPlayer|%0%|% is not added as friend to %lang:region%."
delfriend-noOwner: "You cannot remove friends from a region without owner."
linksigns-multipleRegions: "Found multiple regions: [gray]%0%."
@@ -537,7 +507,6 @@ linksigns-noPermission: "You don't have permission to enter bulk sign linking mo
linksigns-stopped: "Exited sign linking mode."
stack-help:
- "/as stack <amount> <gap> <name> <rent|buy> [group].[break]"
- " [gray]<amount> Number of regions that will be created.[break]"
- " [gray]<gap> Blocks distance between the regions.[break]"
@@ -545,7 +514,6 @@ stack-help:
- " [gray]<rent|buy> Make then rent or buy regions.[break]"
- " [gray][group] A group to add the created regions to.[break]"
- " [gray]The regions will be created in the direction you are facing."
stack-accepted: "Starting to create %0% %1% regions with %2% blocks in between, names start with %3% and have a number behind them.%4%"
stack-addToGroup: " Created regions will be added to the group '%0%'."
stack-noPermission: "You don't have permission to create and add regions to AreaShop in bulk."
@@ -565,35 +533,26 @@ message-noPermission: "You do not have permission to send AreaShop messages."
message-notOnline: "%0% is not online."
confirm-rent:
- "%lang:prefix%Are you sure you want to rent %lang:tRegion|%0%|%?[break]"
- "[darkgreen][bold]►[reset] %lang:button|Click to rent %0%|%"
- " hover: %lang:action|Rent %0%|%"
- " command: /areashop rent %0%"
confirm-extend:
- "%lang:prefix%Are you sure you want to extend %lang:tRegion|%0%|%?[break]"
- "[darkgreen][bold]►[reset] %lang:button|Click to extend %0%|%"
- " hover: %lang:action|Extend %0%|%"
- " command: /areashop rent %0%"
confirm-unrent:
- "%lang:prefix%Are you sure you want to stop renting %lang:tRegion|%0%|%?[break]"
- "[darkgreen][bold]►[reset] %lang:button|Click to stop renting %0%|%"
- " hover: %lang:action|Stop renting %0%|%"
- " command: /areashop unrent %0%"
confirm-buy:
- "%lang:prefix%Are you sure you want to buy %lang:tRegion|%0%|%?[break]"
- "[darkgreen][bold]►[reset] %lang:button|Click to buy %0%|%"
- " hover: %lang:action|Buy %0%|%"
- " command: /areashop buy %0%"
confirm-sell:
- "%lang:prefix%Are you sure you want to sell %lang:tRegion|%0%|%?[break]"
- "[darkgreen][bold]►[reset] %lang:button|Click to sell %0%|%"
- " hover: %lang:action|Sell %0%|%"
+541
View File
@@ -0,0 +1,541 @@
# ╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗
# ║ Language file of the AreaShop plugin created by NLThijs48, Github can be found at https://github.com/NLthijs48/AreaShop ║
# ║ Language: French, Version: V2.3.2, Percentage translated: 96% ║
# ║ This file will be overwritten at each startup/reload of the plugin, if you want to change anything then do the following: ║
# ║ 1: Make a copy of this file ║
# ║ 2: Rename it to <servername>.yml (don't use a language code as filename, could otherwise be overwritten in future updates) ║
# ║ 3: Change the 'language' setting in config.yml to '<servername>', do not include '.yml' ║
# ║ 4: Change the strings in the new file to your liking and save the file ║
# ║ 5: Use '/as reload' or reload/restart your server to see the changes ║
# ╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝
button: "[bold]<%0%>[/bold]"
command:
- "[bold]%0%[/bold]"
- " hover: %lang:action|Utilise %1%|%"
- " command: %1%"
helpCommand:
- "[gold]%0% [gray]-[reset]"
- " hover: %lang:action|Utilise%0%|%"
- " command: %0%"
region: "%lang:tRegion|%region%|%"
tRegion:
- "[bold]%0%[/bold]"
- " hover: Région %0%"
- " hover: %lang:action|Région information|%"
- " command: /areashop info region %0%"
player: "%lang:tPlayer|%player%|%"
tPlayer:
- "[bold]%0%[/bold]"
- " hover: Joueur %0%"
- " hover: %lang:action|Régions de %0%|%"
- " command: /areashop info player %0%"
landlord:
- "[bold]%landlord%[/bold]"
- " hover: Bailleur%landlord%"
- " hover: %lang:action|Région de %landlord%|%"
- " command: /areashop info player %landlord%"
total-maximum: "Vous ne pouvez pas louer ou acheter plus de %0% région(s) au total (vous possédez déjà %1% dans le groupe '%2%')."
general-notReady: "AreaShop n'est pas totalement chargé, merci d'attendre."
general-noWorld: "Vous ne pouvez pas faire ceci, le monde de %lang:region% n'est en ce moment pas disponible (monde '%world%')."
general-noRegion: "Vous ne pouvez pas faire ceci, la région WorldGuard n'est pour le moment pas disponible (région %lang:region%)."
general-noEconomy: "Il n'y a pas de plugin d'économie sur votre serveur, ou bien qu'il n'est pas correctement installé. Merci de prévenir l'opérateur du serveur dès que possible."
general-cancelled: "%0%"
cmd-notValid: "Cette commande est incorrecte, utilisez '/as help' pour plus de détails."
cmd-onlyByPlayer: "Cette commande ne peut être utilisée que par un joueur."
cmd-weOnlyByPlayer: "Utiliser une sélection WorldEdit n'est possible qu'en tant que joueur. Spécifiez le nom de la région en argument supplémentaire."
cmd-noSelection: "Vous n'avez pas de séléction WorldEdit."
cmd-noRegionsFound: "Aucune région enregistrée dans AreaShop n'a été trouvée dans votre séléction."
cmd-noWERegionsFound: "Aucune région WorldEdit croisant votre séléction n'a été trouvée."
cmd-notRegistered: "La région spécifiée n'est pas disponible dans AreaShop: %0%."
cmd-noRegionsAtLocation: "Aucune région trouvée à votre emplacement, spécifiez la région comme un argument."
cmd-moreRegionsAtLocation: "Plus d'une région ont été trouvées à votre emplacement, spécifiez la région comme un argument."
cmd-automaticRegionOnlyByPlayer: "Déterminer la région automatiquement est disponible uniquement pour les joueurs, spécifiez la région comme un argument."
help-header: "Page d'aide, commandes que vous pouvez exécuter."
help-noPermission: "Vous ne pouvez pas voir la page d'aide."
help-alias: "Alias des commandes : /areashop, /as"
help-help: "%lang:helpCommand|/as help|% Montre cette page d'aide."
help-info: "%lang:helpCommand|/as info|% Obtenir les informations sur les régions actuelles."
help-rent: "%lang:helpCommand|/as rent|% Louer une région, ou prolonger la location actuelle."
help-buy: "%lang:helpCommand|/as buy|% Acheter une région."
help-unrent: "%lang:helpCommand|/as unrent|% Ne plus louer une région."
help-sell: "%lang:helpCommand|/as sell|% Vendre une région."
help-reload: "%lang:helpCommand|/as reload|% Reloader tout les fichiers et régions."
help-setrestore: "%lang:helpCommand|/as setrestore|% Active/Désactive la restauration et choix du profil."
help-setprice: "%lang:helpCommand|/as setprice|% Changer le prix d'une région."
help-setduration: "%lang:helpCommand|/as setduration|% Changer le temps de location d'une région."
help-teleport: "%lang:helpCommand|/as tp|% Se téléporter à une région vendue/louée."
help-setteleport: "%lang:helpCommand|/as settp|% Définir le point de téléportation d'une région."
help-find: "%lang:helpCommand|/as find|% Trouver une région à vendre/louer vide."
help-groupadd: "%lang:helpCommand|/as groupadd|% Ajouter une région à un groupe."
help-groupdel: "%lang:helpCommand|/as groupdel|% Supprimer une région d'un groupe."
help-grouplist: "%lang:helpCommand|/as grouplist|% Afficher tout les groupes."
help-groupinfo: "%lang:helpCommand|/as groupinfo|% Afficher des informations sur un groupe."
help-schemevent: "%lang:helpCommand|/as schemevent|% Déclenche un événement schématique d'une région."
help-add: "%lang:helpCommand|/as add|% Enregistrer une région à la vente ou à la location."
help-del: "%lang:helpCommand|/as del|% Supprimer une région enregistrée par AreaShop."
help-addsign: "%lang:helpCommand|/as addsign|% Ajouter un panneau à une région existante."
help-delsign: "%lang:helpCommand|/as delsign|% Supprimer le panneau que vous regardez."
help-me: "%lang:helpCommand|/as me|% Voir les régions que vous possédez (et le temps restant)."
help-setowner: "%lang:helpCommand|/as setowner|% Change le propriétaire d'une région ou allonge le temps de location."
help-resell: "%lang:helpCommand|/as resell|% Mettre une région en revente."
help-stopResell: "%lang:helpCommand|/as stopresell|% Ne plus revendre votre région."
help-addFriend: "%lang:helpCommand|/as addfriend|% Ajouter un ami à votre région."
help-delFriend: "%lang:helpCommand|/as delfriend|% Supprimer un ami de votre région."
help-linksigns: "%lang:helpCommand|/as linksigns|% Utilisez le mode de liaison de panneau."
help-stack: "%lang:helpCommand|/as stack|% Créez plusieurs régions et ajoutez les."
help-setlandlord: "%lang:helpCommand|/as setlandlord|% Définir le bailleur d'une région"
rent-help: "/as rent [region], Si non spécifiée, cible la région dans laquelle vous vous trouvez."
rent-noPermission: "Vous n'avez pas la permission de louer une région."
rent-maximum: "Vous ne pouvez pas louer plus de %0% région(s) au total (vous possédez déjà %1% dans le groupe '%2%')."
rent-maximumExtend: "Vous ne pouvez pas allonger cette location car vous avez plus de %0% région(s) (Vous avez déjà %1% dans le groupe '%2%')."
rent-payError: "Une erreur durant le paiement s'est produite. Essayez de nouveau plus tard."
rent-rented: "Vous louez %lang:region% jusqu'à %until%, vous pouvez étendre la location en fesant un clic droit sur le panneau ou avec la commande /as rent."
rent-extended: "Vous avez prolongé votre location de %lang:region% jusqu'au %until%."
rent-extendedToMax: "Vous avez allongé votre location de %lang:region% jusqu'au %until% (qui est la durée maximum de location de %maxrenttime%)."
rent-lowMoneyExtend: "Vous n'avez pas assez d'argent pour allongé votre location (Vous avez %0% et vous avez besoin de %price%)."
rent-lowMoneyRent: "Vous n'avez pas assez d'argent pour louer %lang:region% (Vous avez %0% et vous avez besoin de %price%)."
rent-someoneElse: "Quelqu'un d'autre loue déjà %lang:region%."
rent-notRentable: "Cette région n'est pas disponible à la location."
rent-maxExtends: "Vous ne pouvez plus allongé cette location (le maximum est de %maxextends% fois), mais après que la prochaine location soit terminé, vous pourrez louer %lang:region% à nouveau."
rent-maxRentTime: "Vous ne pouvez pas louer %lang:region% plus longtemps à l'avance, le maximum est de %maxrenttime% et vous avez déjà loué pour %timeleft%."
rent-restrictedToWorld: "Vous devez être dans le monde '%world%' pour louer %lang:region% (vous êtes dans '%0%')."
rent-restrictedToRegion: "Vous devez être à l'intérieur de %lang:region% pour pouvoir la louer."
rent-expireWarning: "Votre région %lang:region% n'a plus que %timeleft% de temps de location, soyez sûr d'allonger ce temps de location si vous voulez la conserver."
rent-alreadyAtFull: "%lang:region% a déjà atteint ou a dépassé le temps maximum de location, vous ne pouvez pas encore l'étendre la location."
buy-help: "/as buy [region], Si non spécifiée, cible la région dans laquelle vous vous trouvez."
buy-noPermission: "Vous n'avez pas la permission d'acheter une région."
buy-noPermissionResell: "Vous n'avez pas la permission d'acheter une région dans le mode revente."
buy-noPermissionNoResell: "Vous n'avez pas la permission d'acheter une région qui n'est pas dans le mode revente."
buy-notBuyable: "La région %lang:region% n'est pas disponible à l'achat."
buy-maximum: "Vous ne pouvez pas acheter plus de %0% région(s) au total (vous possédez déjà %1% dans le groupe '%2%')."
buy-payError: "Une erreur durant le paiement s'est produite. Essayez de nouveau plus tard."
buy-succes: "Vous avez acheté la région %lang:region%."
buy-successResale: "Vous avez racheté la région %lang:region% qui appartenait à %lang:tPlayer|%0%|%."
buy-successSeller: "Votre région %lang:region% a été vendue à %lang:player% pour %0%."
buy-lowMoney: "Vous n'avez pas assez d'argent pour acheter %lang:region% (vous possédez %0% et devez payer %price%)."
buy-lowMoneyResell: "Vous n'avez pas assez d'argent pour acheter %lang:region% (vous possédez %0% et devez payer %resellprice%)."
buy-yours: "Vous avez déjà acheté %lang:region%."
buy-someoneElse: "Quelqu'un a déjà acheté %lang:region%."
buy-restrictedToWorld: "Vous devez être dans le monde '%world%' pour acheter %lang:region% (vous êtes dans '%0%')."
buy-restrictedToRegion: "Vous devez être dans %lang:region% pour pouvoir l'acheter."
unrent-help: "/as unrent [region], Si non spécifiée, cible la région dans laquelle vous vous trouvez."
unrent-noPermission: "Vous n'avez pas la permission de dé-louer une région."
unrent-noPermissionOther: "Vous n'avez pas la permission de dé-louer une autre région."
unrent-notRegistered: "La région ne peut pas ne plus être louée car elle n'est pas enregistrée comme une région que l'on peut louer."
unrent-notRented: "La région ne peut pas ne plus être louée car elle n'est pas enregistrée comme actuellement louée."
unrent-unrented: "Vous avez rompu la location de %lang:region% de %lang:player%."
unrent-expired: "Votre location de %lang:region% a expiré."
sell-help: "/as sell [region], Si non spécifiée, cible la région dans laquelle vous vous trouvez."
sell-notRegistered: "La région ne peut pas être vendue car son statut n'est pas \"à vendre\"."
sell-notBought: "La région ne peut pas être vendue car ce n'est pas la propriété de quelqu'un."
sell-sold: " %lang:player% a vendu la région %lang:region%"
sell-noPermission: "Vous n'avez pas la permission de vendre une région."
sell-noPermissionOther: "Vous n'avez pas la permission de vendre une autre région."
reload-reloading: "Fichiers rechargés, vérification des locations et des mises à jour des régions."
reload-updateStart: "[gray]Met à jour %0% régions, %1% par seconde."
reload-updateComplete: "[gray]Mise à jour des régions terminée."
reload-noPermission: "Vous n'avez pas la permission de recharger les fichiers."
reload-updateCommandChanged: "'/as updaterents' et '/as updatebuys' ont été supprimées, '/as reload' est la commande à utiliser pour mettre à jour les régions."
info-help:
- "/as info[break]"
- " %lang:command|all|/as info all|%[break]"
- " %lang:command|rented|/as info rented|% [group] [page][break]"
- " %lang:command|forrent|/as info forrent|% [group] [page][break]"
- " %lang:command|sold|/as info sold|% [group] [page][break]"
- " %lang:command|forsale|/as info forsale|% [group] [page][break]"
- " %lang:command|reselling|/as info reselling|% [group] [page][break]"
- " %lang:command|nogroup|/as info nogroup [page]|%"
- " %lang:command|region|/as info region|% [region][break]"
info-noPermission: "Vous n'avez pas la permission d'avoir des informations à propos des régions."
info-allHeader: "Toutes les régions%0%:"
info-rentedHeader: "Les régions louées%0%:"
info-forrentHeader: "Les régions à louer%0%:"
info-forsaleHeader: "Les régions à vendre%0%:"
info-soldHeader: "Les régions vendues%0%:"
info-resellingHeader: "Les régions en revente%0%:"
info-nogroupHeader: "Les régions sans groupe%0%:"
info-limitedToGroup: " (limité au groupe %0%)"
info-nogroupNone: "Il n'y a pas de région sans groupe."
info-noFiltergroup: "Le groupe '%0%' n'existe pas ou ne peut donc pas être utilisé pour limiter les résultats."
info-noRegions: "Aucune région trouvée."
info-wrongPage: "%0% n'est pas un numéro de page correct."
info-pageNoPrevious:
- " [darkgray][bold]◄Précédent[/bold] "
- " hover: C'est déjà la premier page"
info-pageNoNext:
- " [darkgray][bold]Suivaznt►[/bold]"
- " hover: C'est déjà la dernière page"
info-playerHelp: "/as info player <name>"
info-playerRents: "Régions louée par %lang:tPlayer|%0%|%: [gray]%1%"
info-playerNoRents: "%lang:tPlayer|%0%|% n'a de régions louées."
info-playerBuys: "Régions achetées par %lang:tPlayer|%0%|%: [gray]%1%"
info-playerNoBuys: "%lang:tPlayer|%0%|% n'a pas acheté de régions."
info-regionHelp: "/as info region [name], Si non spécifiée, cible la région dans laquelle vous vous trouvez."
info-regionHeaderRent: "[darkgreen]Informations à propos de %lang:region%:"
info-regionHeaderBuy: "[darkgreen]Informations à propos de %lang:region%:"
info-regionRented: "[darkgreen][bold]►[reset] Louée par %lang:player% jusqu'à: [gray]%until%."
info-regionBought: "[darkgreen][bold]►[reset] Achetée par %lang:player%."
info-regionReselling: "[darkgreen][bold]►[reset] Achetée par %lang:player%, actuellement en revente."
info-regionExtending:
- "[darkgreen][bold]►[reset] "
- "[bold]Etendre pour[/bold]"
- " hover: Etendre votre location de %region%"
- " hover: pour %duration% coutant %price%"
- " hover: %lang:action|Etendre votre location de %region%|%"
- " command: /areashop rent %region%"
- ": [gray]%price% pour %duration%."
info-regionCanBeRented:
- "[darkgreen][bold]►[reset] "
- "[bold]Louer pour[/bold]"
- " hover: Louer %region% pour %price% pour %duration%"
- " hover: %lang:action|Rent %region%|%"
- " command: /areashop rent %region%"
- ": [gray]%price% pour %duration%."
info-regionCanBeBought:
- "[darkgreen][bold]►[reset] "
- "[bold]Prix d'achat[/bold]"
- " hover: Acheter%region% pour %price%"
- " hover: %lang:action|Acheter %region%|%"
- " command: /areashop buy %region%"
- ": [gray]%price%."
info-regionReselPrice: "[darkgreen][bold]►[reset] Prix de revente : [gray]%resellprice% (vous pouvez l'acheter à %player%)."
info-regionFriends: "[darkgreen][bold]►[reset] Ami(s) ajouté(s) : [gray]%0%."
info-friend: "%lang:tPlayer|%0%|%"
info-friendRemove:
- "%lang:info-friend|%0%|%"
- "[red]✕[gray]"
- " hover: Région %region%"
- " hover: %lang:action|retirer %0% comme ami|%"
- " command: /areashop delfriend %0% %region%"
info-regionMoneyBackBuy: "[darkgreen][bold]►[reset] Prix de revente : [gray]%moneyback% (%moneybackpercent%% du prix)"
info-regionMoneyBackBuyClick:
- "[darkgreen][bold]►[reset] "
- "[bold]Retour sur investissement de la vente[/bold]"
- " hover: Vendez %region% et recupérer %moneyback% de retour sur investissement"
- " hover: %lang:action|Vendre %region%|%"
- " command: /areashop sell %region%"
- ": [gray]%moneyback% (%moneybackpercent%% du prix)."
info-regionMoneyBackRent: "[darkgreen][bold]►[reset] Remboursement de location : [gray]%moneyback% (%moneybackpercent%% du temps restant)"
info-regionMoneyBackRentClick:
- "[darkgreen][bold]►[reset] "
- "[bold]Prorata du loyer remboursé[/bold]"
- " hover: Cesser la location %region% et récupérer %moneyback%"
- " hover: %lang:action|Cesser la location%region%|%"
- " command: /areashop unrent %region%"
- ": [gray]%moneyback% (%moneybackpercent%% du temps restant)."
info-regionMaxExtends: "[darkgreen][bold]►[reset] Nombre maximum de région : [gray]%maxextends% fois."
info-regionNoExtending: "[darkgreen][bold]►[reset] La location ne peut être allongée."
info-regionExtendsLeft: "[darkgreen][bold]►[reset] Extensions restantes : [gray]%extendsleft% fois sur %maxextends%."
info-regionMaxRentTime: "[darkgreen][bold]►[reset] Location à l'avance : [gray]%maxrenttime% au maximum"
info-prefix: "[darkgreen][bold]►[reset] "
info-regionTeleport:
- "[bold]Aller à la région[/bold]"
- " hover: %lang:action|Se téleporter à %region%|%"
- " command: /areashop tp %region%"
info-setRegionTeleport:
- "[bold]Définir la position de téléportation[/bold]"
- " hover: %region%"
- " hover: %lang:action|Définir la position de téléportation|%"
- " command: /areashop settp %region%"
info-regionSigns: "[darkgreen][bold]►[reset] Pancartes connectées: [gray]%0%."
info-regionSignLocation: "[gray](%0%, %1%, %2%, %3%)[reset]"
info-regionGroups: "[darkgreen][bold]►[reset] Assigné aux groupes: [gray]%0%."
info-regionInactiveUnrent: "[darkgreen][bold]►[reset] Fin de le location automatique après : [gray]%inactivetime% de temps d'inactivité du joueur"
info-regionInactiveSell: "[darkgreen][bold]►[reset] Revente automatique après : [gray]%inactivetime% de temps d'inactivité du joueur"
info-regionRestrictedRegionRent: "[darkgreen][bold]►[reset] Vous devez être à l'intérieur de %lang:region% pour la louer."
info-regionRestrictedWorldRent: "[darkgreen][bold]►[reset] Vous devez à l'intérieur du monde '%world%' pour louer %lang:region%."
info-regionRestrictedRegionBuy: "[darkgreen][bold]►[reset] Vous devez être à l'intérieur de %lang:region% pour l'acheter."
info-regionRestrictedWorldBuy: "[darkgreen][bold]►[reset] Vous devez à l'intérieur du monde '%world%' pour acheter %lang:region%."
info-regionRestoringRent: "[darkgreen][bold]►[reset] La restauration est activée [gray](la région sera remise à zéro a la fin de la location)%0%"
info-regionRestoringBuy: "[darkgreen][bold]►[reset] La restauration est activée [gray](la région sera remise à zéro a la fin de la location)%0%"
info-regionRestoringProfile: "(Profil : %0%)"
info-regionLandlord: "[darkgreen][bold]►[reset] Bailleur : [gray]%lang:landlord% (reçoit l'argent)."
info-regionNotExisting: "La région spécifiée n'est pas enregistrée : %0%."
setrestore-help: "/as setrestore <region> <true|false|general> [profile]"
setrestore-noPermission: "Vous n'avez pas la permission de restaurer les paramètres."
setrestore-notRegistered: "La région spécifiée n'est pas enregistrée : %0%."
setrestore-invalidSetting: "'%0%' est invalide. Doit être true, false ou general."
setrestore-success: "Paramètre de restauration défini de %lang:region% à '%0%' avec succès."
setrestore-successProfile: "Paramètre de restauration défini de %lang:region% à %0% et le profil à '%1%' avec succès."
setprice-noPermission: "Vous n'avez pas la permission de changer le prix d'une région."
setprice-help: "/as setprice <price> [region], Si non spécifiée, cible la région dans laquelle vous vous trouvez."
setprice-notRegistered: "La région spécifiée n'est pas enregistrée : %0%."
setprice-wrongPrice: "'%0%' n'est pas un prix valide."
setprice-successRent: "Le prix de la région %lang:region% à changé pour %price% par %duration%."
setprice-successBuy: "Le prix de la région %lang:region% a changé pour %price%"
setprice-successRemoved: "Le prix de la %lang:region% a été supprimé, maintenant celle-ci utilisera le prix du group ou du fichier default.yml, nouveau prix: %price%."
setprice-noLandlord: "Vous n'avez pas la permission de changer le prix car vous n'êtes pas le bailleur de la région %lang:region%."
setduration-noPermission: "Vous n'avez pas la permission de changer le temps d'une location."
setduration-help: "/as setduration <amount> <identifier> [region], la région dans laquelle vous vous trouvez sera utilisée si vous ne précisez pas quelle région doit être utilisée."
setduration-notRegistered: "%0% n'est pas enregistrée dans les régions à louer."
setduration-wrongAmount: "'%0%' n'est pas un montant valide, utilisez un nombre entier."
setduration-wrongFormat: "'%0%' n'est pas un format de temps valide, regardez la documentation de Bukkit."
setduration-success: "Durée de location de la région %lang:region% changé à %duration%."
setduration-noLandlord: "Vous n'avez pas la permission de changer la durée car vous n'êtes pas le bailleur de la région %lang:region%."
setduration-successRemoved: "La durée de location de %lang:region% a été supprimé, maintenant celle-ci utilisera le durée de location du group ou du fichier default.yml, nouvelle durée de location : %duration%."
setup-noRegion: "Vous n'avez pas spécifié de région à la seconde ligne."
setup-alreadyRentSign: "La région que vous avez spécifiée a déjà été ajoutée à AreaShop en tant qu'une région louable, ajoutez un panneau avec [as] sur le première ligne ou tapez '/as addsign'."
setup-alreadyBuySign: "La région que vous avez spécifiée a déjà été ajoutée à AreaShop en tant qu'une région achetable, ajoutez un panneau avec [as] sur le première ligne ou tapez '/as addsign'."
setup-noDuration: "A la troisième ligne, vous n'avez pas spécifié la durée de location de la région."
setup-wrongDuration: "Le temps spécifié n'est pas au bon format. Exemple : 1 day."
setup-noPrice: "A la quatrième ligne, vous n'avez pas spécifié le prix."
setup-wrongPrice: "Le prix spécifié n'est pas correct, n'utilisez que des chiffres s'il vous plaît."
setup-rentSuccess: "La location de la région %lang:region% est correctement configurée."
setup-buySuccess: "La vente de la région %lang:region% est correctement configurée."
setup-noPermissionRent: "Vous n'avez pas la permission de définir des région louables."
setup-noPermissionBuy: "Vous n'avez pas la permission de définir des régions achetables."
setup-couldNotDetect: "Multiples régions trouvées avec la même priorité et/ou étant de même nature : parent ou enfant. Spécifiez-en une sur la deuxième ligne. (2 des régions trouvées: %lang:tRegion|%0%|% et %lang:tRegion|%1%|%)."
setup-blacklisted: "%0% est sur la blacklist et ne peut pas être ajouté à AreaShop."
setup-noPermission: "Vous ne pouvez pas ajouter la région '%0%', vous n'êtes pas un propriétaire / membre ou n'avez pas permission pour celle-ci."
destroy-noPermissionRent: "Vous n'avez pas la permission de dés-enregistrer des régions louables. "
destroy-noPermissionBuy: "Vous n'avez pas la permission de dés-enregistrer des régions achetables."
destroy-successRent: "%lang:region% a bien été dés-enregistrée des régions louables."
destroy-successBuy: "%lang:region% a bien été dés-enregistrée des régions achetables."
teleport-help: "/as tp <region> [sign]"
teleport-noRentOrBuy: "La région spécifiée n'est pas enregistrée : %0%."
teleport-noPermission: "Vous n'avez pas la permission de vous téléporter à votre région."
teleport-noPermissionOther: "Vous n'avez pas la permission de vous téléporter à une région qui ne vous appartient pas."
teleport-noPermissionSign: "Vous n'avez pas la permission de vous téléporter à la pancarte de votre région."
teleport-noPermissionOtherSign: "Vous n'avez pas la permission de vous téléporter aux pancartes des régions que vous ne possédez pas."
teleport-noPermissionFriend: "Vous n'avez pas la permission de vous téléporter vers les régions sur lesquelles vous êtes ajoutés en tant qu'ami."
teleport-noPermissionFriendSign: "Vous n'avez pas la permission de vous téléporter vers le panneau des régions sur lesquelles vous êtes ajoutés en tant qu'ami."
teleport-success: "Vous avez été téléporté vers %lang:region%"
teleport-successSign: "Vous avez été téléporté vers le panneau de %lang:region%"
teleport-noSafe: "Aucune position sécurisée trouvée dans la région '%lang:region%'. Pas de point restant, ou tentatives maximales dépassées (%0%/%1%)."
teleport-blocked: "Vous ne pouvez pas vous téléporter car la position est en dehors de la région, et vous êtes obligés de vous téléporter à l'intérieur."
teleport-changedToSign: "Vous n'avez seulement la permission de vous téléporter à la pancarte et non dans la région, téléportation vers la pancarte."
teleport-changedToNoSign: "Aucune pancarte disponible pour être téléporter. Essayer de vous téléporter dans la région."
setteleport-help: "/as settp [region] [reset], Si non spécifiée, cible la région dans laquelle vous vous trouvez."
setteleport-noPermission: "Vous n'avez pas la permission de définir un point de téléportation."
setteleport-noPermissionOther: "Vous n'avez pas la permission de définir l'emplacement de téléportation d'une région que vous ne possédez pas."
setteleport-noRentOrBuy: "La région spécifiée n'est pas enregistrée : %0%."
setteleport-success: "Le point de téléportation de %lang:region% a été défini."
setteleport-notInside: "Le lieu doit se trouver dans votre région."
setteleport-reset: "Le point de téléportation de %lang:region% a été réinitialisé."
find-help: "/as find <buy|rent> [prix maximum] [group]"
find-noPermission: "Vous n'avez pas la permission de rechercher des régions et de vous y téléporter."
find-success: "Une région %0% trouvée : %lang:region%, en recherchant avec un prix maximum de: %1%%2%."
find-successMax: "%0% region trouvé : %lang:region%, tout en recherchant avec un prix maximum de %1%%2%."
find-wrongMaxPrice: "Le prix maximum n'est pas un nombre valide : %0%."
find-wrongGroup: "Le groupe spécifié n'existe pas : %0%."
find-noneFound: "Aucune région %0% trouvée ayant pour un prix maximum : %1%%2%."
find-noneFoundMax: "Aucune région %0% trouvée en cherchant à un prix maximum de %1%%2%."
find-onlyInGroup: ", recherche de régions uniquement dans le groupe: %0%."
groupadd-help: "/as groupadd <group> [region], Si non spécifiée, cible la région dans laquelle vous vous trouvez."
groupadd-noPermission: "Vous n'avez pas la permission d'ajouter des régions aux groupes."
groupadd-success: "La région %lang:region% a été ajoutée au groupe '%0%'. Ce groupe a maintenant %1% membre(s)."
groupadd-failed: "La région %lang:region% est déjà membre du groupe '%0%'."
groupadd-weSuccess: "Ajouté au groupe %0% : [gray]%1%."
groupadd-weFailed: "Nous étions déjà dans le groupe %0% : [gray]%1%."
groupdel-help: "/as groupdel <group> [region], Si non spécifiée, cible la région dans laquelle vous vous trouvez."
groupdel-noPermission: "Vous n'avez pas la permission de supprimer des régions depuis les groupes."
groupdel-success: "La région %lang:region% a été supprimée du groupe '%0%', ce groupe a maintenant %1% membre(s)."
groupdel-failed: "La région %lang:region% n'est pas membre du groupe '%0%'."
groupdel-weSuccess: "Supprimée du groupe %0% : [gray]%1%."
groupdel-weFailed: "Nous ne sommes de toute façon pas dans le groupe %0% : [gray]%1%."
grouplist-noPermission: "Vous n'avez pas l'autorisation d'afficher les groupes enregistrés."
grouplist-noGroups: "Il n'y a actuellement aucun groupe enregistré."
grouplist-success: "Les groupes suivants sont enregistrés: [gray]%0%."
groupinfo-help: "/as groupinfo <group>"
groupinfo-noPermission: "Vous n'avez pas la permission d'afficher des informations sur un groupe."
groupinfo-noGroup: "Il n'y a pas de groupe enregistré sous le nom '%0%', utilisez /as grouplist pour vérifier les groupes."
groupinfo-members: "Les régions suivantes sont membres du groupe %0% : [gray]%1%."
groupinfo-noMembers: "Le groupe %0% ne possède aucun membre."
schemevent-help: "/as schemevent <region> <created|deleted|rented|unrented|bought|sold>"
schemevent-wrongEvent: "L'évent spécifié '%0%' n'existe pas, utilisez un des suivants: [gray]%1%."
schemevent-success: "L’événement '%0%' a été activé dans la région %lang:region%."
schemevent-noPermission: "Vous n'avez pas la permission de déclencher des événements schématiques."
add-help: "/as add <rent|buy> [region] [world]"
add-noPermission: "Vous n'avez pas la permission d'ajouter une région à AreaShop."
add-success: "Ajoutée comme %0% : [gray]%1%."
add-failed: "Déjà enregistré: [gray]%0%."
add-blacklisted: "Dans la liste noir: [gray]%0%."
add-specifyWorld: "Spécifiez le monde de la région lors de l'utilisation de la console."
add-incorrectWorld: "Le monde '%0%' est introuvable, essayez de nouveau (attention à la casse)."
add-noRegion: "La région WorldGuard '%0%' n'existe pas dans ce monde."
add-noPermissionRegions: "Pas de permission à ajouter: [gray]%0%."
add-noPermissionOwnerMember: "[gray]Soit vous n'êtes pas membre / propriétaire de cette région ou n'avez pas la permission d'ajouter vos régions."
del-noPermission: "Vous n'avez pas la permission de supprimer des régions."
del-success: "Régions supprimées: [gray]%0%."
del-failed: "Vous n'avez pas la permission, ou vous n’être pas enregistré: [gray]%0%."
addsign-help: "/as addsign [region] [profile]"
addsign-noSign: "Vous ne regardez pas de panneau."
addsign-noRegions: "Aucune région trouvée autour du panneau."
addsign-couldNotDetect: "Plusieurs régions ont été trouvées à proximité du panneau. Spécifiez la région en argument supplémentaire (2 des régions trouvées: %lang:tRegion|%0%|% et %lang:tRegion|%1%|%)."
addsign-couldNotDetectSign: "Plusieurs régions ont été trouvées à proximité du panneau. Spécifiez la région à la deuxième ligne (2 des régions trouvées: %lang:tRegion|%0%|% et %lang:tRegion|%1%|%)."
addsign-wrongProfile: "Le profil spécifié n'existe pas, utilisez l'un de la liste suivante (Vérifiez la config): [gray]%0%."
addsign-profile:
- "[bold]%0%[/bold]"
- " hover: Connexion profil %0%"
- " hover: %lang:action|Utiliser ce profil|%"
- " command: /areashop linksigns %0%"
addsign-success: "Le panneau a été ajouté à %lang:region%."
addsign-successProfile: "Le panneau a été ajouté à %lang:region%. avec le profile %0%."
addsign-alreadyRegistered: "Ce panneau est déjà enregistré pour la région %lang:region%."
addsign-noPermission: "Vous n'avez pas la permission d'ajouter un panneau."
delsign-noSign: "Vous ne regardez pas un panneau."
delsign-noPermission: "Vous n'avez pas la permission de supprimer un panneau."
delsign-noRegion: "Ce signe n'appartient pas à une région AreaShop."
delsign-success: "Le panneau à été retiré de la région %lang:region%."
me-noPermission: "Vous n'avez pas la permission de voir quelle(s) région(s) vous possédez."
me-header: "Régions de %lang:tPlayer|%0%|%:"
me-notAPlayer: "Vous n'êtes pas un joueur. Vous ne pouvez donc pas avoir de régions."
me-buyLine: "[darkgreen][bold]►[reset] %lang:region%."
me-nothing: "%lang:tPlayer|%0%|% n'a pas loué ou acheté de régions et n'a pas été ajouté comme ami dans l'un entre eux."
me-noPlayer: "%0% n'a pas été trouvé, il ne s'est peut être jamais connecté sur le serveur."
setowner-help: "/as setowner <joueur> [region], la région dans laquelle vous vous trouvez sera utilisée si vous ne spécifiez pas de région."
setowner-noPermission: "Vous n'avez pas la permission de définir le propriétaire d'une région."
setowner-noPermissionRent: "Vous n'avez pas la permission de définir le propriétaire de régions à louer."
setowner-noPermissionBuy: "Vous n'avez pas la permission de définir le propriétaire de régions à acheter."
setowner-notRegistered: "La région n'est pas enregistrée, le propriétaire ne peut être défini."
setowner-noPlayer: "UUID du joueur introuvable : %0%."
setowner-succesRent: "Propriétaire de la région %lang:region% modifié avec succès. Elle appartient maintenant à %lang:player% et est louée jusqu'au %until% (%timeleft% restant)."
setowner-succesRentExtend: "Le propriétaire était déjà %lang:player%, location prolongée de '%duration%', maintenant louée jusqu'au %until% (%timeleft% restant%)."
setowner-succesBuy: "Propriétaire de la région %lang:region% changé avec succès. Elle appartient maintenant à %lang:player%."
resell-help: "/as resell <prix> <région>, la région dans laquelle vous vous trouvez sera utilisée si vous ne spécifiez pas de région."
resell-wrongPrice: "'%0%' n'est pas un prix valide."
resell-notRegistered: "La région spécifiée n'est pas enregistrée : %0%."
resell-notBought: "Vous ne pouvez pas revendre %lang:region% car elle n'est pas achetée pour le moment."
resell-success: "%lang:region% a été mise en revente avec succès pour un prix de %resellprice%."
resell-noPermission: "Vous n'avez pas la permission de mettre votre région en revente."
resell-noPermissionOther: "Vous n'avez pas la permission de mettre des régions en revente."
stopresell-help: "/as stropresell [région], la région où vous vous trouvez sera utilisée si vous ne spécifiez pas de région."
stopresell-notRegistered: "La région spécifiée n'est pas enregistrée : %0%."
stopresell-notResell: "Vous ne pouvez pas stopper la revente %lang:region% car elle n'est pas en mode revente."
stopresell-success: "%lang:region% n'est plus en revente."
stopresell-noPermission: "Vous n'avez pas la permission de retirer votre région de la vente."
stopresell-noPermissionOther: "Vous n'avez pas la permission de retirer les régions de la vente."
addfriend-help: "/as addfriend <joueur> [region], la région dans laquelle vous vous trouvez sera utilisée si vous ne spécifiez pas de région."
addfriend-noPermissionOther: "Vous n'avez pas la permission d'ajouter des gens en amis dans une région qui n'est pas la vôtre."
addfriend-noPermission: "Vous n'avez pas la permission d'ajouter en amis des gens à votre région."
addfriend-successOther: "%lang:tPlayer|%0%|% a été ajouté comme ami sur la région %lang:region%."
addfriend-success: "%lang:tPlayer|%0%|% a été ajouté comme ami sur votre région %lang:region%."
addfriend-alreadyAdded: "%lang:tPlayer|%0%|% est déjà ajouté comme ami avec %lang:region%."
addfriend-self: "Ajouter le propriétaire de la région en ami n'aurait aucune utilité."
addfriend-noOwner: "Vous ne pouvez pas ajouter d'amis à une région sans propriétaire."
addfriend-notVisited: "Vous ne pouvez pas ajouter %0% car il n'est jamais venu sur le serveur."
delfriend-help: "/as delfriend <joueur> [région], la région dans laquelle vous vous trouvez sera utilisée si vous ne spécifiez pas de région."
delfriend-noPermissionOther: "Vous n'avez pas la permission de supprimer des amis à une région n'étant pas la vôtre."
delfriend-noPermission: "Vous n'avez pas la permission de supprimer des amis de votre région."
delfriend-successOther: "%lang:tPlayer|%0%|% a été supprimé comme ami de la région %lang:region%."
delfriend-success: "%lang:tPlayer|%0%|% a été supprimé comme ami de votre région %lang:region%."
delfriend-noOwner: "Vous ne pouvez pas supprimer les amis d'une région sans propriétaire."
linksigns-multipleRegions: "Plusieurs régions trouvées : [gray]%0%."
linksigns-multipleRegionsAdvice: "Cliquez plus tard pour réessayer ou utilisez '/as linksigns' pour arrêter."
linksigns-noRegions: "Aucune région AreaShop trouvée dans la direction de votre curseur, soyez sûr que la région est bien ajoutée à AreaShop [gray](portée maximale de 100 blocs)."
linksigns-regionFound: "La région %lang:region% a été trouvée, maintenant montrer un panneau et faites un clic gauche sur celui-ci."
linksigns-signFound: "Un panneau a été trouvé à (%0%, %1%, %2%), maintenant montrez une région et faites un clic droit pour la lier."
linksigns-noSign: "Aucune panneau trouvé dans la direction de votre curseur, soyez sûr que vous regardez directement la panneau et re-cliquez[gray](portée maximale de 100 blocs)."
linksigns-alreadyRegistered: "Ce panneau est déjà enregistré avec la région %lang:region%, cliquez encore pour sélectionner un autre panneau."
linksigns-first: "Vous êtes entré dans le mode de liaison d'un panneau."
linksigns-next: "[gray]Faites un clic gauche pour sélectionner un panneau, un clic droit pour sélectionner une région et utilisez /as linksigns pour arrêter le mode."
linksigns-noPermission: "Vous n'avez pas la permission de rentrer dans le mode de liaison d'un panneau."
linksigns-stopped: "Vous êtes sorti du mode de liaison d'un panneau."
stack-help:
- "/as stack <montant> <écart> <nom> <rent|buy> [groupe].[break]"
- "⇥[gray<montant> Nombre de régions qui sera créé.[break]"
- "⇥[gray]<écart> Distance en blocs entre les régions.[break]"
- "⇥[gray]<nom> Nom des régions (un nombre sera ajouté à la fin[break]"
- "⇥[gray]<rent|buy> Définir comme location (rent) ou achat (but).[break]"
- "⇥[gray][groupe] Un groupe pour ajouter les régions créées..[break]"
- "⇥[gray]Les régions seront créés dans la direction que vous faites face."
stack-accepted: "Commence à créer %0% %1% régions avec %2% blocs entre chacune, dont les noms commencent avec %3% et ont un chiffre derrière. %4%"
stack-addToGroup: "Les régions créées ont été ajoutées au groupe '%0%'."
stack-noPermission: "Vous n'avez pas la permission de créer et d'ajouter des régions à AreaShop en vrac."
stack-wrongAmount: "'%0%' n'est pas une quantité correcte de régions."
stack-wrongGap: "'%0%' n'est pas un nombre correct pour le nombre de blocs séparant deux régions."
stack-noSelection: "Vous n'avez pas de sélection qui indique où doit se trouver la première région créée."
stack-addStart: "[gray]Ajout de %0% régions, %1% par seconde."
stack-addComplete: "[gray]Ajout de régions terminé."
stack-unclearDirection: "Merci de regarder clairement le Nord, l'Est, le Sud ou l'Ouest, actuellement détectée %0%."
setlandlord-help: "/as setlandlord <joueur> [région], la région où vous êtes sera utilisé si non spécifié."
setlandlord-noPermission: "Vous n'avez pas la permission de définir le bailleur d'une région."
setlandlord-success: "%lang:landlord% a bien été défini comme bailleur de %lang:region%.."
message-help: "/as message <joueur> <message...>"
message-noPermission: "Vous n'avez pas la permission d'envoyer des messages AreaShop."
message-notOnline: "%0% n'est pas connecté."
confirm-rent:
- "%lang:prefix%Êtes-vous sur de vouloir louer %lang:tRegion|%0%|%?[break]"
- "[darkgreen][bold]►[reset] %lang:button|Cliquez ici pour louer %0%|%"
- " hover: %lang:action|Louer%0%|%"
- " command: /areashop rent %0%"
confirm-extend:
- "%lang:prefix%Êtes-vous sur de vouloir prolonger la location %lang:tRegion|%0%|%?[break]"
- "[darkgreen][bold]►[reset] %lang:button|Cliquez ici pour prolonger la location%0%|%"
- " hover: %lang:action|Prolonger la location%0%|%"
- " command: /areashop rent %0%"
confirm-unrent:
- "%lang:prefix%Êtes-vous sur de vouloir arrêter la location %lang:tRegion|%0%|%?[break]"
- "[darkgreen][bold]►[reset] %lang:button|Cliquez ici pour arrêter la location%0%|%"
- " hover: %lang:action|Arrêter la location%0%|%"
- " command: /areashop unrent %0%"
confirm-buy:
- "%lang:prefix%Êtes-vous sur de vouloir acheter %lang:tRegion|%0%|%?[break]"
- "[darkgreen][bold]►[reset] %lang:button|Cliquez ici pour acheter %0%|%"
- " hover: %lang:action|Acheter%0%|%"
- " command: /areashop buy%0%"
confirm-sell:
- "%lang:prefix%Êtes-vous sur de vouloir vendre %lang:tRegion|%0%|%?[break]"
- "[darkgreen][bold]►[reset] %lang:button|Cliquez ici pour vendre %0%|%"
- " hover: %lang:action|Vendre%0%|%"
- " command: /areashop sell %0%"
timeleft-years: "%0% années"
timeleft-months: "%0% mois"
timeleft-days: "%0% jours"
timeleft-hours: "%0% heures"
timeleft-minutes: "%0% minutes"
timeleft-second: "%0% seconde"
timeleft-seconds: "%0% secondes"
timeleft-ended: "Expiré"
greeting-forrent: "La région '%region%' peut être louée pour %price% pour une durée de %duration%."
greeting-rented: "La région '%region%' est louée par %player% jusqu'au %until%."
greeting-forsale: "La région '%region%' peut être achetée pour %price%."
greeting-bought: "La région '%region%' est la propriété de %player%."
greeting-resale: "La région '%region%' peut être achetée pour %resaleprice% à %player%."
+21 -14
View File
@@ -1,6 +1,6 @@
# ╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗
# ║ Language file of the AreaShop plugin created by NLThijs48, Github can be found at https://github.com/NLthijs48/AreaShop ║
# ║ Language: Dutch, Version: V2.3.0, Percentage translated: 100% ║
# ║ Language: Dutch, Version: V2.3.2, Percentage translated: 100% ║
# ║ This file will be overwritten at each startup/reload of the plugin, if you want to change anything then do the following: ║
# ║ 1: Make a copy of this file ║
# ║ 2: Rename it to <servername>.yml (don't use a language code as filename, could otherwise be overwritten in future updates) ║
@@ -8,7 +8,7 @@
# ║ 4: Change the strings in the new file to your liking and save the file ║
# ║ 5: Use '/as reload' or reload/restart your server to see the changes ║
# ╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝
action: "[blue][bold]<%0%>[/bold]"
action: "[gold][bold]<%0%>[/bold]"
button: "[bold]<%0%>[/bold]"
@@ -178,21 +178,21 @@ info-nogroupNone: "Er zijn geen gebieden zonder groep."
info-noFiltergroup: "Groep '%0%' bestaat niet en kan daardoor niet gebruikt worden om de resultaten te limiteren."
info-noRegions: "Er zijn geen gebieden gevonden."
info-wrongPage: "%0% is geen correct pagina nummer."
info-entryForrent: "[darkgreen][bold]►[reset] %lang:region%: Te huur voor %price% per %duration%."
info-entryRented: "[darkgreen][bold]►[reset] %lang:region%: Verhuurd aan %lang:player%."
info-entryForsale: "[darkgreen][bold]►[reset] %lang:region%: Te koop voor %price%."
info-entrySold: "[darkgreen][bold]►[reset] %lang:region%: Verkocht aan %lang:player%."
info-entryReselling: "[darkgreen][bold]►[reset] %lang:region%: Verkocht aan %lang:player% (aan het doorverkopen)."
info-pageStatus: "[gray]Pagina %0%/%1%"
info-entryForrent: "[darkgreen][bold]►[reset] %lang:region%: [gray]Te huur voor %price% per %duration%."
info-entryRented: "[darkgreen][bold]►[reset] %lang:region%: [gray]Verhuurd aan %lang:player%."
info-entryForsale: "[darkgreen][bold]►[reset] %lang:region%: [gray]Te koop voor %price%."
info-entrySold: "[darkgreen][bold]►[reset] %lang:region%: [gray]Verkocht aan %lang:player%."
info-entryReselling: "[darkgreen][bold]►[reset] %lang:region%: [gray]Verkocht aan %lang:player% (aan het doorverkopen)."
info-pageStatus: "[gold]Pagina %0%/%1%"
info-pagePrevious:
- " [gray][bold]◄Vorige[/bold] "
- " [gold][bold]◄Vorige[/bold] "
- " hover: %lang:action|Laat de vorige pagina zien|%"
- " command: %0%"
info-pageNoPrevious:
- " [darkgray][bold]◄Vorige[/bold] "
- " hover: Dit is al de eerste pagina"
info-pageNext:
- " [gray][bold]Volgende►[/bold]"
- " [gold][bold]Volgende►[/bold]"
- " hover: %lang:action|Laat de volgende pagina zien|%"
- " command: %0%"
info-pageNoNext:
@@ -206,8 +206,6 @@ info-playerNoBuys: "%lang:tPlayer|%0%|% heeft geen gebieden gekocht."
info-regionHelp: "/as info region <naam>."
info-regionHeaderRent: "[darkgreen]Informatie over %lang:region%:"
info-regionHeaderBuy: "[darkgreen]Informatie over %lang:region%:"
info-regionFooterRent: ""
info-regionFooterBuy: ""
info-regionRented: "[darkgreen][bold]►[reset] Gehuurd door %lang:player% tot: [gray]%until%."
info-regionBought: "[darkgreen][bold]►[reset] Gekocht door %lang:player%."
info-regionReselling: "[darkgreen][bold]►[reset] Gekocht door %lang:player%, aan het doorverkopen."
@@ -433,11 +431,20 @@ delsign-success: "Het bord is verwijderd van gebied %lang:region%."
me-noPermission: "Je hebt geen toestemming om te zien welke gebieden je hebt."
me-header: "Gebieden van %lang:tPlayer|%0%|%:"
me-notAPlayer: "Je bent geen speler dus je kunt geen gebieden hebben."
me-rentLine: "[darkgreen][bold]►[reset] %lang:region% [gray](tot %until%, %timeleft% over)."
me-rentLine:
- "[darkgreen][bold]►[reset] %lang:region% [gray]("
- "%timeleft% over"
- " hover: tot %until%"
- ")."
me-buyLine: "[darkgreen][bold]►[reset] %lang:region%."
me-friendLine: "[darkgreen][bold]►[reset] %lang:region% [gray](toegevoegd als vriend, eigenaar: %lang:player%)."
me-friendLine:
- "[darkgreen][bold]►[reset] %lang:region% [gray]("
- "%lang:player% is eigenaar"
- " hover: Je bent toegevoegd als vriend"
- ")."
me-nothing: "%lang:tPlayer|%0%|% heeft geen gebieden gekocht of gehuurd en is niet als vriend toegevoegd bij gebieden."
me-noPlayer: "%0% kan niet gevonden worden, is waarschijnlijk nooit op de server geweest."
me-clickHint: "[gray][italic]Klik op een naam van een gebied voor details."
setowner-help: "/as setowner <speler> [gebied], het gebied waar je in staat zal worden gebruikt als je deze niet aangeeft."
setowner-noPermission: "Je hebt geen toestemming om de eigenaar van een gebied in te stellen."
+542
View File
@@ -0,0 +1,542 @@
# ╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗
# ║ Language file of the AreaShop plugin created by NLThijs48, Github can be found at https://github.com/NLthijs48/AreaShop ║
# ║ Language: Norwegian, Version: V2.3.2, Percentage translated: 96% ║
# ║ This file will be overwritten at each startup/reload of the plugin, if you want to change anything then do the following: ║
# ║ 1: Make a copy of this file ║
# ║ 2: Rename it to <servername>.yml (don't use a language code as filename, could otherwise be overwritten in future updates) ║
# ║ 3: Change the 'language' setting in config.yml to '<servername>', do not include '.yml' ║
# ║ 4: Change the strings in the new file to your liking and save the file ║
# ║ 5: Use '/as reload' or reload/restart your server to see the changes ║
# ╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝
button: "[bold]<%0%>[/bold]"
command:
- "[bold]%0%[/bold]"
- " hover: %lang:action|Bruk %1%|%"
- " kommando: %1%"
helpCommand:
- "[gold]%0% [gray]-[reset]"
- " hover: %lang:action|Bruk %0%|%"
- " kommando: %0%"
region: "%lang:tRegion|%region%|%"
tRegion:
- "[bold]%0%[/bold]"
- " hover: Region %0%"
- " hover: %lang:action|Region informasjon|%"
- " kommando: /areashop info region %0%"
player: "%lang:tPlayer|%player%|%"
tPlayer:
- "[bold]%0%[/bold]"
- " hover: Spiller %0%"
- " hover: %lang:action|Regioner til %0%|%"
- " kommando: /areashop info player %0%"
landlord:
- "[bold]%landlord%[/bold]"
- " hover: Grunneier %landlord%"
- " hover: %lang:action|Regioner til %landlord%|%"
- " kommando: /areashop info player %landlord%"
total-maximum: "Du kan ikke leie og kjøpe mer enn %0% region(er) totalt (du har allerede %1% i gruppe '%2%')."
general-notReady: "AreaShop har ikke lastet ferdig ennå, vennligst vent."
general-noWorld: "Du kan ikke gjøre det, verdenen %lang:region% er for øyeblikket utilgjengelig (world '%world%')."
general-noRegion: "Du kan ikke gjøre det, WorldGuard regionen er for øyeblikket utilgjengelig. (region %lang:region%)."
general-noEconomy: "Det er ikke noen økonomi plugin installert eller satt opp riktig, si ifra til server eieren om dette."
general-cancelled: "%0%"
cmd-notValid: "Den kommandoen er ikke gyldig, bruk '/as help' for informasjon."
cmd-onlyByPlayer: "Denne kommandoen kan bare brukes av en spiller."
cmd-weOnlyByPlayer: "Du kan bare bruke en WorldEdit markering som en spiller, spesifiser region navnet som et ekstra argument."
cmd-noSelection: "Du har ikke laget en WorldEdit markering."
cmd-noRegionsFound: "Ingen regioner som er registrert i AreaShop er funnet i din markering."
cmd-noWERegionsFound: "Ingen WorldEdit regioner som overlapper din markering er funnet."
cmd-notRegistered: "Den spesifiserte regionen er ikke tilgjengelig i AreaShop: %0%."
cmd-noRegionsAtLocation: "Ingen regioner er funnet på din plassering, spesifiser region navnet som et argument."
cmd-moreRegionsAtLocation: "Mer enn en region er funnet på din plassering, spesifiser region navnet som et argument."
cmd-automaticRegionOnlyByPlayer: "Automatisk valg av region er bare mulig for spillere, spesifiser region navnet som som et argument."
help-header: "Informasjons side, kommandoer som du kan bruke."
help-noPermission: "Du har ikke rettigheter til å vise siden med hjelp."
help-alias: "Kommando aliaser: /areashop, /as."
help-help: "%lang:helpCommand|/as help|% Viser siden med hjelp."
help-info: "%lang:helpCommand|/as info|% Få informasjon om gjeldende regioner."
help-rent: "%lang:helpCommand|/as rent|% Lei en region eller utvid din gjeldende leie."
help-buy: "%lang:helpCommand|/as buy|% Kjøp en region."
help-unrent: "%lang:helpCommand|/as unrent|% Stopp leie av en region."
help-sell: "%lang:helpCommand|/as sell|% Selg en region."
help-reload: "%lang:helpCommand|/as reload|% Last inn filer på nytt og oppdater regionene."
help-setrestore: "%lang:helpCommand|/as setrestore|% Skru på gjenoppretting og velg en profil."
help-setprice: "%lang:helpCommand|/as setprice|% Endre prisen på en region."
help-setduration: "%lang:helpCommand|/as setduration|% Endre leie tiden til en region."
help-teleport: "%lang:helpCommand|/as tp|% Teleporter til en kjøpe/leie region."
help-setteleport: "%lang:helpCommand|/as settp|% Sett teleporterings plass for en region."
help-find: "%lang:helpCommand|/as find|% Finn en ledig kjøp eller leie region."
help-groupadd: "%lang:helpCommand|/as groupadd|% Legg til en region til en gruppe."
help-groupdel: "%lang:helpCommand|/as groupdel|% Fjern en region fra en gruppe."
help-grouplist: "%lang:helpCommand|/as grouplist|% Vis alle grupper som er registrert."
help-groupinfo: "%lang:helpCommand|/as groupinfo|% Vis informasjon om en gruppe."
help-schemevent: "%lang:helpCommand|/as schemevent|% Aktiver et schematic event for en region."
help-add: "%lang:helpCommand|/as add|% Registrer en region som leie eller kjøpe."
help-del: "%lang:helpCommand|/as del|% Fjern en registrert region fra AreaShop."
help-addsign: "%lang:helpCommand|/as addsign|% Legg til et skilt for en eksisterende region."
help-delsign: "%lang:helpCommand|/as delsign|% Fjern skiltet du ser på."
help-me: "%lang:helpCommand|/as me|% Sjekk hvilke regioner du har (+utløpstid)."
help-setowner: "%lang:helpCommand|/as setowner|% Sett noen som eier av regionen eller utvid leietiden."
help-resell: "%lang:helpCommand|/as resell|% Sett en region i videresalgs modus."
help-stopResell: "%lang:helpCommand|/as stopresell|% Sett en region tilbake i solgt modus."
help-addFriend: "%lang:helpCommand|/as addfriend|% Legg til en venn i en region."
help-delFriend: "%lang:helpCommand|/as delfriend|% Fjern en venn fra en region."
help-linksigns: "%lang:helpCommand|/as linksigns|% Use bulk sign linking mode."
help-stack: "%lang:helpCommand|/as stack|% Lag flere regioner og legg dem til."
help-setlandlord: "%lang:helpCommand|/as setlandlord|% Sett grunneier av en region."
rent-help: "/as rent [region], regionen du står i vil bli brukt hvis ikke spesifisert."
rent-noPermission: "Du har ikke rettigheter til å leie en region."
rent-maximum: "Du kan ikke leie mer enn %0% region(er) (du har allerede %1% i gruppe '%2%')."
rent-maximumExtend: "Du kan ikke utvide denne leien fordi du har mer enn %0% region(er) (Du har allerede %1% i gruppe '%2%')."
rent-payError: "Noe gikk galt med din betaling, prøv igjen senere."
rent-rented: "Du leide %lang:region% frem til %until%, du kan utvide din leie ved å høyreklikke på skiltet igjen eller bruke /as rent."
rent-extended: "Du utvidet din leie av %lang:region% frem til %until%."
rent-extendedToMax: "Du har utvidet din leie av %lang:region% frem til %until% (som er den maksimale leietiden av %maxrenttime%)."
rent-lowMoneyExtend: "Du har ikke nok penger til å utvide leien (du har %0% og du trenger %price%)."
rent-lowMoneyRent: "Du har ikke nok penger til å leie (du har %0% og du trenger %price%)."
rent-someoneElse: "Noen har allerede leid %lang:region%."
rent-notRentable: "Den regionen er ikke mulig å leie."
rent-maxExtends: "Du kan ikke utvide leien mer (maksimum er %maxextends% ganger) men, når leien er over kan du leie %lang:region% igjen."
rent-maxRentTime: "Du kan ikke øke leietid av %lang:region% mer tid fremover, den maksimale tiden er %maxrenttime% og du har leid den for %timeleft%."
rent-restrictedToWorld: "Du må være i '%world%' verden for å leie %lang:region% (du er i '%0%')."
rent-restrictedToRegion: "Du må være på innsiden av %lang:region% for å leie den."
rent-expireWarning: "Din region %lang:region% har %timeleft% igjen, husk å utvide leien om du vil beholde den."
rent-alreadyAtFull: "%lang:region% er allerede ved eller over den maksimale leietiden, du kan ikke utvide mer ennå."
buy-help: "/as buy [region], regionen du står i vil bli brukt hvis ikke spesifisert."
buy-noPermission: "Du har ikke rettigheter til å kjøpe en region."
buy-noPermissionResell: "Du har ikke rettigheter til å kjøpe en region i videresalgs modus."
buy-noPermissionNoResell: "Du har ikke rettigheter til å kjøpe en region som ikke er i videresalgs modus."
buy-notBuyable: "Region %lang:region% er ikke tilgjengelig for salg."
buy-maximum: "Du kan ikke kjøpe mer enn %0% region(er) (du har allerede %1% i gruppe '%2%')."
buy-payError: "Noe gikk galt med din betaling, prøv igjen senere."
buy-succes: "Du var vellykket i ditt kjøp av %lang:region%."
buy-successResale: "Du var vellykket i ditt kjøp av %lang:region% fra %lang:tPlayer|%0%|%."
buy-successSeller: "Din region %lang:region% har blitt solgt til %lang:player% for %0%."
buy-lowMoney: "Du har ikke nok penger til å kjøpe %lang:region% (du har %0% og du trenger %price%)."
buy-lowMoneyResell: "Du har ikke nok penger til å kjøpe %lang:region% (du har %0% og du trenger %resellprice%)."
buy-yours: "Du eier allerede %lang:region%."
buy-someoneElse: "Noen andre har kjøpt %lang:region%."
buy-restrictedToWorld: "Du må være i '%world%' verden for å kjøpe %lang:region% (du er i '%0%')."
buy-restrictedToRegion: "Du må være på innsiden av %lang:region% for å kjøpe den."
unrent-help: "/as unrent [region], regionen du står i vil bli bruk om ikke spesifisert."
unrent-noPermission: "Du har ikke rettigheter til å stoppe leie på en region."
unrent-noPermissionOther: "Du har ikke rettigheter til å stoppe leie på en annen region."
unrent-notRegistered: "Denne regionen kan det ikke bli avsluttet leie på fordi den er ikke registrert for leie."
unrent-notRented: "Denne regionen kan det ikke bli avsluttet leie på fordi den er ikke leid."
unrent-unrented: "%lang:region% sin leie av %lang:player% har blitt avsluttet."
unrent-expired: "Din leie av %lang:region% har gått ut."
sell-help: "/as sell [region], regionen du står i vil bli brukt hvis ikke spesifisert."
sell-notRegistered: "Denne regionen kan ikke bli solgt fordi den er ikke registrert for salg."
sell-notBought: "Denne regionen kan ikke bli solgt fordi den er ikke noen sin eiendom."
sell-sold: "%lang:region% til %lang:player% har blitt solgt."
sell-noPermission: "Du har ikke rettigheter til å selge en region."
sell-noPermissionOther: "Du har ikke rettigheter til å selge en annen region."
reload-reloading: "Lastet inn alle filer på nytt, sjekker leie og oppdaterer regioner."
reload-updateStart: "[gray]Oppdaterer %0% regioner på %1% per sekund."
reload-updateComplete: "[gray]Oppdatering av regioner ferdig."
reload-noPermission: "Du har ikke rettigheter til å laste inn konfigurasjonen på nytt."
reload-updateCommandChanged: "'/as updaterents' og '/as updatebuys' har blitt fjernet, '/as reload' vil også oppdatere regioner så bruk den kommandoen fremover."
info-help:
- "/as info[break]"
- " %lang:command|all|/as info all|%[break]"
- " %lang:command|rented|/as info rented|% [group] [page][break]"
- " %lang:command|forrent|/as info forrent|% [group] [page][break]"
- " %lang:command|sold|/as info sold|% [group] [page][break]"
- " %lang:command|forsale|/as info forsale|% [group] [page][break]"
- " %lang:command|reselling|/as info reselling|% [group] [page][break]"
- " %lang:command|nogroup|/as info nogroup [page]|%"
- " %lang:command|region|/as info region|% [region][break]"
info-noPermission: "Du har ikke rettigheter til å få informasjon om regioner."
info-allHeader: "Alle regioner%0%:"
info-rentedHeader: "Leide regioner%0%:"
info-forrentHeader: "Regioner til leie%0%:"
info-forsaleHeader: "Regioner til salgs%0%:"
info-soldHeader: "Solgte regioner%0%:"
info-resellingHeader: "Regioner til videresalg%0%:"
info-nogroupHeader: "Regioner uten gruppe%0%:"
info-limitedToGroup: " (begrenset til gruppe %0%)"
info-nogroupNone: "Det er ingen regioner uten en gruppe."
info-noFiltergroup: "Gruppe '%0%' eksiterer ikke og kan derfor ikke bli brukt til å begrense resultatene."
info-noRegions: "Ingen regioner har blitt funnet."
info-wrongPage: "%0% er ikke et riktig side nummer."
info-pageNoPrevious:
- " [darkgray][bold]◄Forrige[/bold] "
- " hover: Dette er første side"
info-pageNoNext:
- " [darkgray][bold]Neste►[/bold]"
- " hover: Dette er siste side"
info-playerHelp: "/as info player <navn>."
info-playerRents: "Regioner leid av %lang:tPlayer|%0%|%: [gray]%1%"
info-playerNoRents: "%lang:tPlayer|%0%|% har ikke leid en region."
info-playerBuys: "Regioner kjøpt av %lang:tPlayer|%0%|%: [gray]%1%."
info-playerNoBuys: "%lang:tPlayer|%0%|% har ikke kjøpt en region."
info-regionHelp: "/as info region [navn], den regionen du står i vil bli bruk om ikke spesifisert."
info-regionHeaderRent: "[darkgreen]Informasjon om %lang:region%:"
info-regionHeaderBuy: "[darkgreen]Informasjon om %lang:region%:"
info-regionRented: "[darkgreen][bold]►[reset] Utleid til %lang:player% frem til: [gray]%until%."
info-regionBought: "[darkgreen][bold]►[reset] Kjøpt av %lang:player%."
info-regionReselling: "[darkgreen][bold]►[reset] Kjøpt av %lang:player%, for øyeblikket videreselges."
info-regionExtending:
- "[darkgreen][bold]►[reset] "
- "[bold]Forleng for[/bold]"
- " hover: Forleng leie av %region%"
- " hover: med %duration% for %price%"
- " hover: %lang:action|Extend rent of %region%|%"
- " kommando: /areashop rent %region%"
- ": [gray]%price% per %duration%."
info-regionCanBeRented:
- "[darkgreen][bold]►[reset] "
- "[bold]Lei for[/bold]"
- " hover: Lei %region% for %price% per %duration%"
- " hover: %lang:action|Rent %region%|%"
- " kommando: /areashop rent %region%"
- ": [gray]%price% per %duration%."
info-regionCanBeBought:
- "[darkgreen][bold]►[reset] "
- "[bold]Kjøp for[/bold]"
- " hover: Kjøp %region% for %price%"
- " hover: %lang:action|Buy %region%|%"
- " kommando: /areashop buy %region%"
- ": [gray]%price%."
info-regionReselPrice: "[darkgreen][bold]►[reset] Videresalgs pris: [gray]%resellprice% (du kan kjøpe den fra %lang:player%)."
info-regionFriends: "[darkgreen][bold]►[reset] Venner lagt til: [gray]%0%."
info-friend: "%lang:tPlayer|%0%|%"
info-friendRemove:
- "%lang:info-friend|%0%|%"
- "[red]✕[gray]"
- " hover: Region %region%"
- " hover: %lang:action|Remove %0% as friend|%"
- " kommando: /areashop delfriend %0% %region%"
info-regionMoneyBackBuy: "[darkgreen][bold]►[reset] Penger tilbake for salg: [gray]%moneyback% (%moneybackpercent%% av prisen)."
info-regionMoneyBackBuyClick:
- "[darkgreen][bold]►[reset] "
- "[bold]Penger tilbake etter salg[/bold]"
- " hover: Selg %region% å få igjen %moneyback%"
- " hover: %lang:action|Sell %region%|%"
- " kommando: /areashop sell %region%"
- ": [gray]%moneyback% (%moneybackpercent%% av prisen)."
info-regionMoneyBackRent: "[darkgreen][bold]►[reset] Penger tilbake fra leie: [gray]%moneyback% (%moneybackpercent%% fra gjenstående tid)."
info-regionMoneyBackRentClick:
- "[darkgreen][bold]►[reset] "
- "[bold]Penger tilbake fra leie[/bold]"
- " hover: Stopp leie %region% å få tilbake %moneyback%"
- " hover: %lang:action|Unrent %region%|%"
- " kommando: /areashop unrent %region%"
- ": [gray]%moneyback% (%moneybackpercent%% av gjenstående tid)."
info-regionMaxExtends: "[darkgreen][bold]►[reset] Maks antall utvidelser: [gray]%maxextends% gang(er)."
info-regionNoExtending: "[darkgreen][bold]►[reset] Leien kan ikke utvides."
info-regionExtendsLeft: "[darkgreen][bold]►[reset] Utvidelser igjen: [gray]%extendsleft% gang(er) av %maxextends%."
info-regionMaxRentTime: "[darkgreen][bold]►[reset] Leie på forhånd: [gray]%maxrenttime% på maks."
info-prefix: "[darkgreen][bold]►[reset] "
info-regionTeleport:
- "[bold]Gå til region[/bold]"
- " hover: %lang:action|Teleporter to %region%|%"
- " kommando: /areashop tp %region%"
info-setRegionTeleport:
- "[bold]Sett teleporterings posisjon[/bold]"
- " hover: %region%"
- " hover: %lang:action|Sett teleporterings posisjon|%"
- " kommando: /areashop settp %region%"
info-regionSigns: "[darkgreen][bold]►[reset] Koblete skilt: [gray]%0%."
info-regionSignLocation: "[gray](%0%, %1%, %2%, %3%)[reset]"
info-regionGroups: "[darkgreen][bold]►[reset] Fordelte grupper: [gray]%0%."
info-regionInactiveUnrent: "[darkgreen][bold]►[reset] Automatisk stopp leie etter: [gray]%inactivetime% av inaktivitet fra spiller."
info-regionInactiveSell: "[darkgreen][bold]►[reset] Automatisk selg etter: [gray]%inactivetime% av inaktivitet fra spiller."
info-regionRestrictedRegionRent: "[darkgreen][bold]►[reset] Du må stå på innsiden av %lang:region% for å leie den."
info-regionRestrictedWorldRent: "[darkgreen][bold]►[reset] Du må være i '%world%' for å leie %lang:region%."
info-regionRestrictedRegionBuy: "[darkgreen][bold]►[reset] Du må være på innsiden av %lang:region% for å kjøpe den."
info-regionRestrictedWorldBuy: "[darkgreen][bold]►[reset] Du må være i '%world%' for å kjøpe %lang:region%."
info-regionRestoringRent: "[darkgreen][bold]►[reset] Gjenoppretting er aktivert [gray](regionen vil gjenopprettes ved stopp av leie)%0%."
info-regionRestoringBuy: "[darkgreen][bold]►[reset] Gjenoppretting er aktivert [gray](regionen vil gjenopprettes ved salg)%0%."
info-regionRestoringProfile: "(profil: %0%)"
info-regionLandlord: "[darkgreen][bold]►[reset] Grunneier: [gray]%lang:landlord% (mottar pengene)."
info-regionNotExisting: "Den spesifiserte regionen er ikke registrert: %0%."
setrestore-help: "/as setrestore <region> <true|false|general> [profile]."
setrestore-noPermission: "Du har ikke rettigheter til å endre gjenopprettelses instillingene."
setrestore-notRegistered: "Den spesifiserte regionen er ikke registrert: %0%."
setrestore-invalidSetting: "'%0%' er ikke gyldig uttrykk, skal være true, false eller general."
setrestore-success: "Vellykket satt innstillingene for gjenoppretting for %lang:region% til '%0%'."
setrestore-successProfile: "Vellykket satt innstillingene for gjenoppretting for %lang:region% til '%0%' og profilen til '%1%'."
setprice-noPermission: "Du har ikke rettighetene til å endre prisen til en region."
setprice-help: "/as setprice <pris> [region], den regionen du står i vil bli valgt om ikke spesifisert."
setprice-notRegistered: "Den spesifiserte regionen er ikke registrert: %0%."
setprice-wrongPrice: "'%0%' er ikke en gyldig pris."
setprice-successRent: "Prisen til region %lang:region% er endret til %price% per %duration%."
setprice-successBuy: "Prisen til region %lang:region% er endret til %price%."
setprice-successRemoved: "Prisen til %lang:region% har blitt fjernet, den vil nå bruke prisen fra en gruppe eller fra default.yml filen, ny pris: %price%."
setprice-noLandlord: "Du har ikke rettigheter til å endre prisen fordi du er ikke eieren av %lang:region%."
setduration-noPermission: "Du har ikke rettigheter til å endre tidsrommet for en leie."
setduration-help: "/as setduration <mengde> <identifisering> [region], regionen du står i vil bli brukt om ikke spesifisert."
setduration-notRegistered: "%0% er ikke registrert for leie."
setduration-wrongAmount: "'%0%' er ikke gyldig, bruk hele nummer."
setduration-wrongFormat: "'%0%' er ikke et riktig tidsformat, sjekk dokumentasjonen på Bukkit."
setduration-success: "Tiden til region %lang:region% er endret til '%duration%'."
setduration-noLandlord: "Du har ikke rettigheter til å endre tiden fordi du er ikke eieren av %lang:region%."
setduration-successRemoved: "Prisen til %lang:region% har blitt fjernet, den vil nå bruke prisen fra en gruppe eller fra default.yml filen, ny pris: %price%."
setup-noRegion: "Du spesifiserte ikke en region på linje nummer to."
setup-alreadyRentSign: "Regionen du spesifiserte er allerede lagt til i AreaShop som en leie region, plasser et skilt med [as] på første linjen eller bruk '/as addsign'."
setup-alreadyBuySign: "Regionen du spesifiserte er allerede lagt til i AreaShop som en kjøp region, plasser et skilt med [as] på første linjen eller bruk '/as addsign'."
setup-noDuration: "Du spesifiserte ikke hvor lenge den regionen kan bli leid, gjør dette på den tredje linjen."
setup-wrongDuration: "Tiden du spesifiserte er ikke i korrekt format, eksempel: 1 dag."
setup-noPrice: "Du spesifiserte ikke prisen på den fjerde linjen."
setup-wrongPrice: "Du spesifiserte ikke prisen riktig, bare bruk nummer."
setup-rentSuccess: "leie av region %lang:region% er satt opp riktig."
setup-buySuccess: "Salg av region %lang:region% er satt opp riktig."
setup-noPermissionRent: "Du har ikke rettigheter til å sette opp leie regioner."
setup-noPermissionBuy: "Du har ikke rettigheter til å sette opp regioner til salgs."
setup-couldNotDetect: "Fant flere regioner med samme prioritet og/eller foreldre/barn kobling, spesifiser en på den andre linjen (2 av regionene som ble funnet: %lang:tRegion|%0%|% og %lang:tRegion|%1%|%)."
setup-blacklisted: "%0% er på svartelisten og kan ikke bli lagt til i AreaShop."
setup-noPermission: "Du kan ikke legge til regionen '%0%', du er ikke en eier/medlem eller har ikke rettigheter til det."
destroy-noPermissionRent: "Du har ikke rettigheter til å avregistrere en leie region."
destroy-noPermissionBuy: "Du har ikke rettigheter til å avregistrere en kjøpe region."
destroy-successRent: "%lang:region% vellykket i å avregistrere en leie region."
destroy-successBuy: "%lang:region% vellykket i å avregistrere en kjøpe region."
teleport-help: "/as tp <region> [skilt]"
teleport-noRentOrBuy: "Den spesifiserte regionen er ikke registrert: %0%."
teleport-noPermission: "Du har ikke rettigheter til å teleportere til din region."
teleport-noPermissionOther: "Du har ikke rettigheter til å teleportere til regioner du ikke eier."
teleport-noPermissionSign: "Du har ikke rettigheter til å teleportere til skiltet til din region."
teleport-noPermissionOtherSign: "Du har ikke rettigheter til å teleportere til skiltet til regioner du ikke eier."
teleport-noPermissionFriend: "Du har ikke rettigheter til å teleportere til regioner du er langt til som venn."
teleport-noPermissionFriendSign: "Du har ikke rettigheter til å teleportere til skiltet til regioner du er lagt til som venn."
teleport-success: "Du teleporterte til %lang:region%."
teleport-successSign: "Du teleporterte til skiltet til %lang:region%."
teleport-noSafe: "Ingen trygg posisjon funnet i %lang:region%, ingen plasser igjen i regionen eller maks forsøk overskredet (%0%/%1%)."
teleport-blocked: "Du kan ikke teleportere fordi posisjonen er på utsiden av regionen, og du er tvunget til å teleportere til innsiden."
teleport-changedToSign: "Du har bare rettigheter til å teleportere til skilt og ikke utsiden av regionen, teleporterer til skilt."
teleport-changedToNoSign: "Ingen skilt tilgjengelige å teleportere til, prøver å teleportere til innsiden av regionen."
setteleport-help: "/as settp [region] [reset], den regionen du står i vil bli brukt om ikke spesifisert."
setteleport-noPermission: "Du har ikke rettigheter til å sette teleporterings punkt."
setteleport-noPermissionOther: "Du har ikke rettigheter til å sette teleporterings punktet for en region du ikke eier."
setteleport-noRentOrBuy: "Den spesifiserte regionen er ikke registrert: %0%."
setteleport-success: "Teleporterings posisjon for %lang:region% satt."
setteleport-notInside: "Punktet må være på innsiden av regionen."
setteleport-reset: "Teleporterings posisjon for %lang:region% har blitt resatt."
find-help: "/as find <buy|rent> [maxpris] [gruppe]."
find-noPermission: "Du har ikke rettigheter til å søke etter regioner og teleportere til dem."
find-success: "Fant en %0% region: %lang:region%, under søket med en makspris av din balanse: %1%%2%."
find-successMax: "Fant en %0% region: %lang:region%, under søket med en makspris av: %1%%2%."
find-wrongMaxPrice: "Den spesifiserte maks prisen er ikke et korrekt nummer. %0%"
find-wrongGroup: "Den spesifiserte gruppen eksisterer ikke: %0%."
find-noneFound: "Ingen %0% region funnet under søket med en makspris av din balanse: %1%%2%."
find-noneFoundMax: "Ingen %0% region ble funnet under søket med en maks pris av %1%%2%."
find-onlyInGroup: ", bare søkt etter regioner i gruppe: %0%."
groupadd-help: "/as groupadd <gruppe> [region], hvis ingen region er spesifisert blir alle regioner fra din WorldEdit markering brukt."
groupadd-noPermission: "Du har ikke rettigheter til å legge til regioner i grupper."
groupadd-success: "Region %lang:region% har blitt lagt til i gruppe '%0%', denne gruppen har nå %1% medlem(mer)."
groupadd-failed: "Region %lang:region% er allerede et medlem av gruppe '%0%'."
groupadd-weSuccess: "Lagt til i gruppe %0%: [gray]%1%."
groupadd-weFailed: "Var allerede i gruppe %0%: [gray]%1%."
groupdel-help: "/as groupdel <gruppe> [region], hvis ingen region er spesifisert blir alle regioner fra din WorldEdit markering brukt."
groupdel-noPermission: "Du har ikke rettigheter til å fjerne regioner fra grupper."
groupdel-success: "Region %lang:region% har blitt fjernet fra gruppe '%0%', denne gruppen har nå %1% medlem(mer)."
groupdel-failed: "Region %lang:region% er ikke et medlem av gruppe '%0%'."
groupdel-weSuccess: "Fjernet fra gruppe %0%: [gray]%1%."
groupdel-weFailed: "Var ikke i gruppe %0% likevel: [gray]%1%."
grouplist-noPermission: "Du har ikke rettigheter til å vise de registrerte gruppene."
grouplist-noGroups: "Det er for øyeblikket ingen grupper registrert."
grouplist-success: "De følgende gruppene er registrert: [gray]%0%."
groupinfo-help: "/as groupinfo <group>."
groupinfo-noPermission: "Du har ikke rettigheter til å se informasjon om en gruppe."
groupinfo-noGroup: "Det er ingen grupper registrert med navnet '%0%'. bruk /as grouplist for å sjekke grupper."
groupinfo-members: "De følgende regionene er medlemmer av gruppe %0%: [gray]%1%."
groupinfo-noMembers: "Gruppe %0% har ingen medlemmer."
schemevent-help: "/as schemevent <region> <created|deleted|rented|unrented|bought|sold>."
schemevent-wrongEvent: "Det spesifiserte eventet '%0%' eksisterer ikke, bruk en av de følgende [gray]%1%."
schemevent-success: "Event '%0%' har blitt aktivert vellykket for region %lang:region%."
schemevent-noPermission: "Du har ikke rettigheter til å aktivere et schematic event."
add-help: "/as add <rent|buy> [region] [verden]."
add-noPermission: "Du har ikke rettigheter til å legge til en region i AreaShop."
add-success: "Lagt til som %0%: [gray]%1%."
add-failed: "Allerede registrert: [gray]%0%."
add-blacklisted: "På svartelisten: [gray]%0%."
add-specifyWorld: "Spesifiser verdenen til en region når du bruker konsoll."
add-incorrectWorld: "Verden '%0%' ikke funnet, prøv igjen (sensitiv for store og små bokstaver)."
add-noRegion: "WorldGuard region '%0%' eksisterer ikke i denne verdenen."
add-noPermissionRegions: "Ingen rettigheter til å legge til: [gray]%0%."
add-noPermissionOwnerMember: "[gray]Du er enten ikke et medlem/eier av disse regionene eller har ikke rettigheter til å legge til dine regioner."
del-noPermission: "Du har ikke rettigheter til å fjerne regioner."
del-success: "Fjernet regioner: [gray]%0%."
del-failed: "Du har ikke rettigheter til å fjerne eller ikke registrert: [gray]%0%."
addsign-help: "/as addsign [region] [profil]."
addsign-noSign: "Du ser ikke på et skilt."
addsign-noRegions: "Ingen region funnet rundt skiltet sin posisjon."
addsign-couldNotDetect: "Flere regioner ble funnet rundt skiltet, spesifiser region som ekstra argument (2 av regionene som ble funnet: %lang:tRegion|%0%|% og %lang:tRegion|%1%|%)."
addsign-couldNotDetectSign: "Flere regioner ble funnet rundt skiltet, spesifiser region som ekstra argument (2 av regionene som ble funnet: %lang:tRegion|%0%|% og %lang:tRegion|%1%|%)."
addsign-wrongProfile: "Den spesifiserte profilen finnes ikke, bruk en av de følgende (sjekk konfigurasjon): [gray]%0%."
addsign-profile:
- "[bold]%0%[/bold]"
- " hover: Skiltprofil %0%"
- " hover: %lang:action|Use this profile|%"
- " kommando: /areashop linksigns %0%"
addsign-success: "Skiltet har blitt lagt til %lang:region%."
addsign-successProfile: "Skiltet har blitt lagt til %lang:region% med profil %0%."
addsign-alreadyRegistered: "Det skiltet er allerede registrert for region %lang:region%."
addsign-noPermission: "Du har ikke rettigheter til å legge til et skilt."
delsign-noSign: "Du ser ikke på et skilt."
delsign-noPermission: "Du har ikke rettigheter til å fjerne et skilt."
delsign-noRegion: "Det skiltet hører ikke til en AreaShop region."
delsign-success: "Skiltet har blitt fjernet fra region %land:region%."
me-noPermission: "Du har ikke rettigheter til å sjekke hvilken regioner du har."
me-header: "Regioner til %lang:tPlayer|%0%|%:"
me-notAPlayer: "Du er ikke en spiller så du kan ikke ha noen regioner."
me-buyLine: "[darkgreen][bold]►[reset] %lang:region%."
me-nothing: "%lang:tPlayer|%0%|% har ikke leid eller kjøpt regioner og er ikke lagt til som venn på noen."
me-noPlayer: "%0% kan ikke bli funnet, mest sannsynlig aldri vært på serveren."
setowner-help: "/as setowner <spiller> [region], regionen du står i vil bli brukt om ikke spesifisert."
setowner-noPermission: "Du har ikke rettigheter til å sette eieren av en region."
setowner-noPermissionRent: "Du har ikke rettigheter til å sette eieren av en leie region."
setowner-noPermissionBuy: "Du har ikke rettigheter til å sette eieren av en kjøpe region."
setowner-notRegistered: "Den spesifiserte regionen er ikke registrert, eier kan ikke bli satt."
setowner-noPlayer: "Kunne ikke skaffe UUID til den spesifiserte spilleren: %0%."
setowner-succesRent: "Eier av %lang:region% vellykket endret til %lang:player%, leid frem til %until% (%timeleft% igjen)"
setowner-succesRentExtend: "Eier var allerede %lang:player%, leie utvidet med '%duration%', nå leid frem til %until% (%timeleft% igjen)."
setowner-succesBuy: "Eier av %lang:region% vellykket endret til %lang:player%."
resell-help: "/as resell <pris> [region], regionen du står i vil bli brukt om ikke spesifisert."
resell-wrongPrice: "'%0%' er ikke en gyldig pris."
resell-notRegistered: "Den spesifiserte regionen er ikke registrert: %0%."
resell-notBought: "Du kan ikke videreselge %lang:region% fordi den er ikke solgt ennå."
resell-success: "%lang:region% er vellykket satt i videresalgsmodus for %resellprice%."
resell-noPermission: "Du har ikke rettigheter til å sette din region i videresalgs modus."
resell-noPermissionOther: "Du har ikke rettigheter til å sette en region i videresalgs modus."
stopresell-help: "/as stopresell [region], regionen du står i vil bli brukt om ikke spesifisert."
stopresell-notRegistered: "Den spesifiserte regionen er ikke registrert: %0%."
stopresell-notResell: "Du kan ikke stoppe videresalget av %lang:region% fordi den er ikke i videresalgs modus."
stopresell-success: "%lang:region% er vellykket satt tilbake i solgt modus."
stopresell-noPermission: "Du har ikke rettigheter til å sette din region tilbake i solgt modus."
stopresell-noPermissionOther: "Du har ikke rettigheter til å sette regioner tilbake i solgt modus."
addfriend-help: "/as addfriend <spiller> [region], regionen du står i vil bli brukt om ikke spesifisert."
addfriend-noPermissionOther: "Du har ikke rettigheter til å legge til venner i regioner som ikke er dine."
addfriend-noPermission: "Du har ikke rettigheter til å legge til venner i din region."
addfriend-successOther: "%lang:tPlayer|%0%|% har blitt lagt til som venn i region %lang:region%."
addfriend-success: "%lang:tPlayer|%0%|% har blitt lagt til som venn i din region %lang:region%."
addfriend-alreadyAdded: "%lang:tPlayer|%0%|% er allerede lagt til som venn i %lang:region%."
addfriend-self: "Å legge til eieren av regionen som venn vil være meningsløst."
addfriend-noOwner: "Du kan ikke legge til venner i en region uten eier."
addfriend-notVisited: "Du kan ikke legge til %0% fordi h*n har ikke vært på serveren ennå."
delfriend-help: "/as delfriend <spiller> [region], regionen du står i vil bli brukt om ikke spesifisert."
delfriend-noPermissionOther: "Du har ikke rettigheter til å fjerne venner fra regioner som ikke er dine."
delfriend-noPermission: "Du har ikke rettigheter til å fjerne venner fra din region."
delfriend-successOther: "%lang:tPlayer|%0%|% har blitt fjernet som venn fra region %lang:region%."
delfriend-success: "%lang:tPlayer|%0%|% har blitt fjernet som venn fra din region %lang:region%."
delfriend-noOwner: "Du kan ikke fjerne venner fra en region uten eier."
linksigns-multipleRegions: "Fant flere regioner: [gray]%0%."
linksigns-multipleRegionsAdvice: "Klikk en gang til for å prøve igjen eller bruk '/as linksigns' for å stoppe."
linksigns-noRegions: "Ingen AreaShop regioner funnet i rettningen du peker, vær sikker på at regionen er lagt til i AreaShop [gray](maksimal avstand 100 blokker)."
linksigns-regionFound: "Region %lang:region% har blitt funnet, nå pek på et skilt og venstreklikk for å koble sammen."
linksigns-signFound: "Fant et skilt ved (%0%, %1%, %2%), nå pek mot en region og høyreklikk for å koble sammen."
linksigns-noSign: "Ingen skilt funnet i rettningen du peker, vær sikker på at du har en ublokkert vei mot et skilt og klikk igjen [gray](maksimal avstand 100 blokker)."
linksigns-alreadyRegistered: "Det skiltet er allerede registrert til region %lang:region%, klikk igjen for å velge et annet skilt."
linksigns-first: "Du har aktivert skilt koblings modus."
linksigns-next: "[gray]Ventstreklikk for å velge et skilt, høyreklikk for å velge en region, bruk /as linksigns for å stoppe."
linksigns-noPermission: "Du har ikke rettigheter til å aktivere masse-skilt koblings modus."
linksigns-stopped: "Gått ut av skilt koblings modus."
stack-help:
- "/as stack <amount> <gap> <name> <rent|buy> [group].[break]"
- " [gray]<amount> Antall regioner som vil bli laget.[break]"
- " [gray]<gap> Antall blokker mellom regioner.[break]"
- " [gray]<name> Navnet på regioner (nummer kommer bak).[break]"
- " [gray]<rent|buy> Bestem om dem skal leies eller kjøpes.[break]"
- " [gray][group] En gruppe du vil legge dem til i.[break]"
- " [gray]Regionene vil bli laget i rettningen du ser."
stack-accepted: "Begynner å lage %0% %1% regioner med %2% blokker mellom dem, navnene starter med %3% og vil ha nummer bak seg.%4%"
stack-addToGroup: "Regioner laget vil bli lagt til i gruppen '%0%'."
stack-noPermission: "Du har ikke rettigheter til å lage og legge til regioner i AreaShop i store mengder."
stack-wrongAmount: "'%0%' er ikke en riktig mengde regioner."
stack-wrongGap: "'%0%' er ikke et riktig nummer for antall blokker mellom regioner."
stack-noSelection: "Du har ikke laget en markering som indikerer hvor den første regionen skal bli laget."
stack-addStart: "[gray]Legger til %0% regioner på %1% per sekund."
stack-addComplete: "[gray]Regioner er ferdig lagt til."
stack-unclearDirection: "Du må se rett mot nord, sør, øst eller vest, du ser mot %0%."
setlandlord-help: "/as setlandlord <spiller> [region], regionen du står i vil bli brukt om ikke spesifisert."
setlandlord-noPermission: "Du har ikke rettigheter til å sette grunneier for en region."
setlandlord-success: "%lang:landlord% har vellykket blitt satt som grunneier av %lang:region%."
message-help: "/as message <spiller> <melding...>"
message-noPermission: "Du har ikke rettigheter til å sende AreaShop meldinger."
message-notOnline: "%0% er ikke pålogget."
confirm-rent:
- "%lang:prefix%Er du sikker på at du vil leie %lang:tRegion|%0%|%?[break]"
- "[darkgreen][bold]►[reset] %lang:button|Klikk for å leie %0%|%"
- " hover: %lang:action|Lei %0%|%"
- " kommando: /areashop rent %0%"
confirm-extend:
- "%lang:prefix%Er du sikker du vil forlenge %lang:tRegion|%0%|%?[break]"
- "[darkgreen][bold]►[reset] %lang:button|Klikk for å utvide leie %0%|%"
- " hover: %lang:action|Utvid leie %0%|%"
- " kommando: /areashop rent %0%"
confirm-unrent:
- "%lang:prefix%Er du sikker du vil stoppe leie "
- "%lang:tRegion|%0%|%?[break]"
- "[darkgreen][bold]►[reset] %lang:button|Klikk for å stoppe leie %0%|%"
- " hover: %lang:action|Stopp leie %0%|%"
- " kommando: /areashop unrent %0%"
confirm-buy:
- "%lang:prefix%Er du sikker du vil kjøpe %lang:tRegion|%0%|%?[break]"
- "[darkgreen][bold]►[reset] %lang:button|Klikk for å kjøpe %0%|%"
- " hover: %lang:action|Kjøp %0%|%"
- " kommando: /areashop buy %0%"
confirm-sell:
- "%lang:prefix%Er du sikker du vil selge %lang:tRegion|%0%|%?[break]"
- "[darkgreen][bold]►[reset] %lang:button|Klikk for å selge %0%|%"
- " hover: %lang:action|Selg %0%|%"
- " kommando: /areashop sell %0%"
timeleft-years: "%0% år"
timeleft-months: "%0% måneder"
timeleft-days: "%0% dager"
timeleft-hours: "%0% timer"
timeleft-minutes: "%0% minutter"
timeleft-second: "%0% sekund"
timeleft-seconds: "%0% sekunder"
timeleft-ended: "Utløpt"
greeting-forrent: "%region% kan bli leid for %price% per %duration%."
greeting-rented: "%region% er leid av %player% til %until%."
greeting-forsale: "%region% kan bli kjøpt for %price%."
greeting-bought: "%region% er kjøpt av %player%."
greeting-resale: "%region% kan bli kjøpt for %resaleprice% fra %player%."
+499
View File
@@ -0,0 +1,499 @@
# ╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗
# ║ Language file of the AreaShop plugin created by NLThijs48, Github can be found at https://github.com/NLthijs48/AreaShop ║
# ║ Language: Russian, Version: V2.3.2, Percentage translated: 86% ║
# ║ This file will be overwritten at each startup/reload of the plugin, if you want to change anything then do the following: ║
# ║ 1: Make a copy of this file ║
# ║ 2: Rename it to <servername>.yml (don't use a language code as filename, could otherwise be overwritten in future updates) ║
# ║ 3: Change the 'language' setting in config.yml to '<servername>', do not include '.yml' ║
# ║ 4: Change the strings in the new file to your liking and save the file ║
# ║ 5: Use '/as reload' or reload/restart your server to see the changes ║
# ╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝
button: "[bold]<%0%>[/bold]"
command:
- "[bold]%0%[/bold]"
- " hover: %lang:action|Используй %1%|%"
- " command: %1%"
helpCommand:
- "[gold]%0% [gray]-[reset]"
- " hover: %lang:action|Используй %0%|%"
- " command: %0%"
region: "%lang:tRegion|%region%|%"
tRegion:
- "[bold]%0%[/bold]"
- " hover: Регион %0%"
- " hover: %lang:action|Информация о регионе|%"
- " command: /areashop info region %0%"
player: "%lang:tPlayer|%player%|%"
tPlayer:
- "[bold]%0%[/bold]"
- " hover: Игрок %0%"
- " hover: %lang:action|Регионы %0%|%"
- " command: /areashop info player %0%"
landlord:
- "[bold]%landlord%[/bold]"
- " hover: Владелец %landlord%"
- " hover: %lang:action|Регионы %landlord%|%"
- " command: /areashop info player %landlord%"
total-maximum: "Вы не можете арендовать или купить больше, чем %0% регион(ов) (у вас уже имеется %1% в группе '%2%')."
general-notReady: "Плагин AreaShop еще не полностью загружен. Пожалуйста, подождите..."
general-noWorld: "Вы не можете сделать это, мир для %lang:region% не доступен (мир '%world%')."
general-noRegion: "Вы не можете сделать это, WorldGuard регион не доступен (регион %lang:region%)."
general-noEconomy: "На сервере нету плагина Экономии, либо он установлен некорректно. Оповестите администратора сервера об этом."
general-cancelled: "%0%"
cmd-notValid: "Ошибка в команде, используй '/as help' для получения дополнительной информации."
cmd-onlyByPlayer: "Эта команда может быть применена только игроком. "
cmd-weOnlyByPlayer: "Использование выделения доступно только для игроков, укажите название региона в качестве дополнительного аргумента."
cmd-noSelection: "Вы не выделили регион."
cmd-noRegionsFound: "В выбранной области не найдено регионов, зарегистрированных в AreaShop."
cmd-noWERegionsFound: "Внутри вашего выделения не обнаружено регионов."
cmd-notRegistered: "Указаный регион не используется в AreaShop: %0%."
cmd-noRegionsAtLocation: "В вашем местоположении не найдено регионов, укажите регион в качестве аргумента."
cmd-moreRegionsAtLocation: "В вашем местоположении найдено несколько регионов, укажите название региона для уточнения."
cmd-automaticRegionOnlyByPlayer: "Автоматическое определение региона доступно только для игроков, укажите регион в качестве аргумента."
help-header: "Страница помощи. Команды которые Вам доступны."
help-noPermission: "У вас нет разрешения для просмотра страницы помощи."
help-alias: "Альтернативные команды: /areashop, /as."
help-help: "%lang:helpCommand|/as help|% Показать эту страницу помощи."
help-info: "%lang:helpCommand|/as info|% Получить информацию о текущих регионах."
help-rent: "%lang:helpCommand|/as rent|% Арендовать регион или расширить свою текущую аренду."
help-buy: "%lang:helpCommand|/as buy|% Купить регион."
help-unrent: "%lang:helpCommand|/as unrent|% Отказаться от аренды региона."
help-sell: "%lang:helpCommand|/as sell|% Продать регион."
help-reload: "%lang:helpCommand|/as reload|% Перезагрузить все файлы и обновить регионы."
help-setrestore: "%lang:helpCommand|/as setrestore|% Включить/выключить восстановление и выбрать профиль."
help-setprice: "%lang:helpCommand|/as setprice|% Изменить стоимость региона."
help-setduration: "%lang:helpCommand|/as setduration|% Изменить длительность аренды."
help-teleport: "%lang:helpCommand|/as tp|% Телепортироваться к вашему купленному/арендованному региону."
help-setteleport: "%lang:helpCommand|/as settp|% Установить точку телепортации для региона."
help-find: "%lang:helpCommand|/as find|% Найти свободный регион для покупки или аренды."
help-groupadd: "%lang:helpCommand|/as groupadd|% Добавить регион в группу."
help-groupdel: "%lang:helpCommand|/as groupdel|% Удалить регион из группы."
help-grouplist: "%lang:helpCommand|/as grouplist|% Показать все доступные группы."
help-groupinfo: "%lang:helpCommand|/as groupinfo|% Показать информацию о группе."
help-schemevent: "%lang:helpCommand|/as schemevent|% Вызвать схематическое событие для региона."
help-add: "%lang:helpCommand|/as add|% Зарегистрировать регион для аренды или покупки."
help-del: "%lang:helpCommand|/as del|% Удалить зарегистрированный регион из AreaShop."
help-addsign: "%lang:helpCommand|/as addsign|% Добавить табличку для региона."
help-delsign: "%lang:helpCommand|/as delsign|% Удалить табличку на которую вы смотрите."
help-me: "%lang:helpCommand|/as me|% Проверить список своих регионов(+истечение аренды)"
help-setowner: "%lang:helpCommand|/as setowner|% Установить владельца региона или расширить аренду."
help-resell: "%lang:helpCommand|/as resell|% Установить один из Ваших регионов в режим перепродажи."
help-stopResell: "%lang:helpCommand|/as stopresell|% Установить Ваш регион обратно в режим продано."
help-addFriend: "%lang:helpCommand|/as addfriend|% Добавить друга в ваш регион."
help-delFriend: "%lang:helpCommand|/as delfriend|% Удалить друга из вашего региона."
help-linksigns: "%lang:helpCommand|/as linksigns|% Используй, чтобы включить режим привязки табличек."
help-stack: "%lang:helpCommand|/as stack|% Создание нескольких регионов и добавлением их."
help-setlandlord: "%lang:helpCommand|/as setlandlord|% Установить землевладельца в регион."
rent-help: "/as rent [имярегиона], если не указано имя, будет выбран регион в котором вы находитесь."
rent-noPermission: "У вас не прав для аренды данного региона."
rent-maximum: "Вы не можете арендовать более %0% региона(ов) (у вас уже есть %1% в группе '%2%')."
rent-maximumExtend: "Вы не можете продлить эту аренду, потому что у вас есть более чем %0% регион(ов) (у вас имеется %1% в группе '%2%')."
rent-payError: "Что-то пошло не так с оплатой, повторите попытку позже."
rent-rented: "Вы арендовали %lang:region% до %until%, вы можете увеличить срок аренды еще раз нажав на табличку или использовать команду /as rent."
rent-extended: "Вы продлили свою аренду %lang:region% до %until%."
rent-extendedToMax: "Вы не можете арендовать регион %lang:region% до %until% (максимальное время аренды %maxrenttime%)."
rent-lowMoneyExtend: "У вас не достаточно денег для продления аренды (у вас %0%, а необходимо %price%)."
rent-lowMoneyRent: "У вас не хватает денег для аренды %lang:region% (у вас %0%, а необходимо %price%)."
rent-someoneElse: "Кто-то уже арендует регион %lang:region%."
rent-notRentable: "Этот регион не доступен для аренды."
rent-maxExtends: "Вы не можете продлить аренду на столько (максимум %maxextends%), однако после того как закончится срок аренды вы можете арендовать %lang:region% снова."
rent-maxRentTime: "Вы не можете арендовать %lang:region% на такой период, максимальное время аренды %maxrenttime%, вы пытаетесь арендовать на %timeleft%."
rent-restrictedToWorld: "Вы должны быть в мире '%world%', чтобы арендовать %lang:region% (вы находитесь в '%0%')."
rent-restrictedToRegion: "Вы должны находиться внутри %lang:region% для его аренды."
rent-expireWarning: "В вашем регионе %lang:region% закончится арендный срок %timeleft%, вы должны продлить аренду для его сохранения."
rent-alreadyAtFull: "%lang:region% уже на уровне или выше максимального времени аренды, вы не можете продлить его еще.."
buy-help: "/as buy [имярегиона], если не указано имя, будет выбран регион в котором вы находитесь."
buy-noPermission: "У Вас нет прав для покупки региона."
buy-noPermissionResell: "У Вас нет прав для покупки региона в режиме перепродажи."
buy-noPermissionNoResell: "У Вас нет прав для покупки региона, который не находится в режиме перепродажи."
buy-notBuyable: "Регион %lang:region% не доступен для покупки."
buy-maximum: "Вы не можете купить более %0% региона(ов) (у Вас уже имеется %1% в группе '%2%')"
buy-payError: "Что-то пошло не так с оплатой, повторите попытку позже."
buy-succes: "Вы успешно купили %lang:region%."
buy-successResale: "Вы успешно купили %lang:region% в %lang:tPlayer|%0%|%."
buy-successSeller: "Ваш регион %lang:region% был продан %lang:player% за %0%."
buy-lowMoney: "У вас недостаточно денег чтобы купить %lang:region% (у вас %0%, а необходимо %price%)."
buy-lowMoneyResell: "У вас недостаточно денег чтобы купить %lang:region% (у вас %0%, а необходимо %resellprice%)."
buy-yours: "Вы уже владелец %lang:region%."
buy-someoneElse: "Кто-то уже купил %lang:region%."
buy-restrictedToWorld: "Вы должны быть в мире '%world%', чтобы купить %lang:region% (вы находитесь в '%0%')."
buy-restrictedToRegion: "Вы должны находиться внутри %lang:region% для его покупки."
unrent-help: "/as unrent [имярегиона], если не указано имя, будет выбран регион в котором вы находитесь."
unrent-noPermission: "У вас нет разрешения на снятие аренды в регионе."
unrent-noPermissionOther: "У вас нет разрешения на снятие аренды в другом регионе."
unrent-notRegistered: "В регионе недоступно снятие аренды, потому что он не зарегистрирован для сдачи в аренду."
unrent-notRented: "В регионе нельзя снять аренду, потому что он не арендован."
unrent-unrented: "%lang:region% теперь не арендует %lang:player%."
unrent-expired: "Ваша аренда %lang:region% уже истекла."
sell-help: "/as sell [имярегиона], если не указано имя, будет выбран регион в котором вы находитесь."
sell-notRegistered: "Этот регион не может быть продан, так как он не зарегистрирован на продажу."
sell-notBought: "Этот регион не может продан, так как не находится в чьей-либо собственности."
sell-sold: "%lang:region% был продан %lang:player%."
sell-noPermission: "У Вас нет прав для продажи региона."
sell-noPermissionOther: "У Вас нет прав для продажи другого региона."
reload-reloading: "Все файлы перезагружены, проверка аренд и обновление регионов."
reload-updateStart: "[gray]Обновление %0% регионов за %1% секунд."
reload-updateComplete: "[gray]Обновление регионов завершено."
reload-noPermission: "Недостаточно полномочий для того, чтобы перезагрузить конфиги плагина."
reload-updateCommandChanged: "'/as updaterents' и '/as updatebuys' были удалены, '/as reload' теперь будет также обновлять регионы, используйте эту команду взамен."
info-help:
- "/as info[break]"
- " %lang:command|all|/as info all|%[break]"
- " %lang:command|rented|/as info rented|% [group] [page][break]"
- " %lang:command|forrent|/as info forrent|% [group] [page][break]"
- " %lang:command|sold|/as info sold|% [group] [page][break]"
- " %lang:command|forsale|/as info forsale|% [group] [page][break]"
- " %lang:command|reselling|/as info reselling|% [group] [page][break]"
- " %lang:command|nogroup|/as info nogroup [page]|%"
- " %lang:command|region|/as info region|% [region][break]"
info-noPermission: "У Вас нет прав для получения информации о регионах."
info-allHeader: "Все регионы%0%:"
info-rentedHeader: "Арендовано регионов%0%:"
info-forrentHeader: "Регионы для аренды%0%:"
info-forsaleHeader: "Регионы для продажи%0%:"
info-soldHeader: "Продано регионов%0%:"
info-resellingHeader: "Перепродано регионов%0%:"
info-nogroupHeader: "Регионы без групп%0%:"
info-limitedToGroup: "(ограничение в группе %0%)"
info-nogroupNone: "Здесь нет регионов без групп."
info-noFiltergroup: "Группа '%0%' не существует, потому не может быть использована для ограничения результатов."
info-noRegions: "Нет найденых регионов."
info-wrongPage: "%0% неверный номер страницы."
info-pageNoPrevious:
- " [darkgray][bold]◄Предыдущая[/bold] "
- " hover: Это первая страница"
info-pageNoNext:
- " [darkgray][bold]Следующая►[/bold]"
- " hover: Это последняя страница"
info-playerHelp: "/as info player <имяигрока>."
info-playerRents: "Регионы арендованные %lang:tPlayer|%0%|%: [gray]%1%"
info-playerNoRents: "%lang:tPlayer|%0%|% не арендовал регион."
info-playerBuys: "Регионы купленые %lang:tPlayer|%0%|%: [gray]%1%."
info-playerNoBuys: "%lang:tPlayer|%0%|% не покупал регион."
info-regionHelp: "/as info region [имярегиона], если не указано имя, будет выбран регион в котором вы стоите."
info-regionHeaderRent: "[darkgreen]Информация о %lang:region%:"
info-regionHeaderBuy: "[darkgreen]Информация о %lang:region%:"
info-regionRented: "[darkgreen][bold]►[reset] Арендован игроком %lang:player% до: [gray]%until%."
info-regionBought: "[darkgreen][bold]►[reset] Куплено %lang:player%."
info-regionReselling: "[darkgreen][bold]►[reset] Купленный %lang:player%, сейчас продаётся."
info-regionExtending:
- "[darkgreen][bold]►[reset] "
- "[bold]Продление для[/bold]"
- " hover: Продлить аренду %region%"
- " hover: длительностью %duration% за %price%"
- " hover: %lang:action|Продлить аренду %region%|%"
- " command: /areashop rent %region%"
- ": [gray]%price% на %duration%."
info-regionCanBeRented:
- "[darkgreen][bold]►[reset] "
- "[bold]Аренда для[/bold]"
- " hover: Арендовать %region% за %price% на %duration%"
- " hover: %lang:action|Аренда %region%|%"
- " command: /areashop rent %region%"
- ": [gray]%price% на %duration%."
info-regionCanBeBought:
- "[darkgreen][bold]►[reset] "
- "[bold]Купить для[/bold]"
- " hover: Купить %region% за %price%"
- " hover: %lang:action|Купить %region%|%"
- " command: /areashop buy %region%"
- ": [gray]%price%."
info-regionReselPrice: "[darkgreen][bold]►[reset] Стоимость перепродажи: [gray]%resellprice% (вы можете купить его у %lang:player%)."
info-regionFriends: "[darkgreen][bold]►[reset] Добавленные друзья: [gray]%0%."
info-friend: "%lang:tPlayer|%0%|%"
info-friendRemove:
- "%lang:info-friend|%0%|%"
- "[red]✕[gray]"
- " hover: Регион %region%"
- " hover: %lang:action|Удалить %0% из друзей|%"
- " command: /areashop delfriend %0% %region%"
info-regionMoneyBackBuy: "[darkgreen][bold]►[reset] Окупаемость продажи: [gray]%moneyback% (%moneybackpercent%% от стоимости)."
info-regionMoneyBackBuyClick:
- "[darkgreen][bold]►[reset] "
- "[bold]Окупаемость продажи[/bold]"
- " hover: Продать %region% и получить обратно %moneyback%"
- " hover: %lang:action|Продать %region%|%"
- " command: /areashop sell %region%"
- ": [gray]%moneyback% (%moneybackpercent%% от стоимости)."
info-regionMoneyBackRent: "[darkgreen][bold]►[reset] Окупаемость снятия аренды: [gray]%moneyback% (%moneybackpercent%% от оставшиеся времени)."
info-regionMoneyBackRentClick:
- "[darkgreen][bold]►[reset] "
- "[bold]Окупаемость снятия аренды[/bold]"
- " hover: Снять аренду %region% и вернуть деньги %moneyback%"
- " hover: %lang:action|Снять аренду %region%|%"
- " command: /areashop unrent %region%"
- ": [gray]%moneyback% (%moneybackpercent%% от оставшиеся времени)."
info-regionMaxExtends: "[darkgreen][bold]►[reset] Максимальное количество продления: [gray]%maxextends% раз(а)."
info-regionNoExtending: "[darkgreen][bold]►[reset] Аренду нельзя продлить."
info-regionExtendsLeft: "[darkgreen][bold]►[reset] Продленный осталось: [gray]%extendsleft% времени(раз) из %maxextends%."
info-regionMaxRentTime: "[darkgreen][bold]►[reset] пред заказ аренды: [gray]%maxrenttime% максимальный."
info-prefix: "[darkgreen][bold]►[reset] "
info-regionTeleport:
- "[bold]Переместится к региону[/bold]"
- " hover: %lang:action|Телепортация на %region%|%"
- " command: /areashop tp %region%"
info-setRegionTeleport:
- "[bold]установка места телепортации[/bold]"
- " hover: %region%"
- " hover: %lang:action|Set teleport location|%"
- " command: /areashop settp %region%"
info-regionSigns: "[darkgreen][bold]►[reset] Подключенные таблички: [gray]%0%."
info-regionSignLocation: "[gray](%0%, %1%, %2%, %3%)[reset]"
info-regionGroups: "[darkgreen][bold]►[reset] Назначенные группы: [gray]%0%."
info-regionInactiveUnrent: "[darkgreen][bold]►[reset] Авто снятие аренды после: [gray]%inactivetime% бездействия игрока."
info-regionInactiveSell: "[darkgreen][bold]►[reset] Авто продажа после: [gray]%inactivetime% бездействия игрока."
info-regionRestrictedRegionRent: "[darkgreen][bold]►[reset] Ты должен быть внутри %lang:region% для его аренды."
info-regionRestrictedWorldRent: "[darkgreen][bold]►[reset] Ты должен быть в мире '%world%' для аренды %lang:region%."
info-regionRestrictedRegionBuy: "[darkgreen][bold]►[reset] Ты должен быть внутри %lang:region% для его покупки."
info-regionRestrictedWorldBuy: "[darkgreen][bold]►[reset] Ты должен быть в мире '%world%' для покупки %lang:region%."
info-regionRestoringRent: "[darkgreen][bold]►[reset] Восстановление включено [gray](регион будет сброшен после снятия аренды)%0%."
info-regionRestoringBuy: "[darkgreen][bold]►[reset] Восстановление включено [gray](регион будет сброшен после продажи)%0%."
info-regionRestoringProfile: " (профиль: %0%)"
info-regionLandlord: "[darkgreen][bold]►[reset] Землевладелец: [gray]%lang:landlord% (Получит деньги)."
info-regionNotExisting: "Указанный регион не зарегистрирован: %0%."
setrestore-help: "/as setrestore <регион> <true|false|general> [профиль]."
setrestore-noPermission: "У вас нет разрешения на изменение параметров восстановления."
setrestore-notRegistered: "Указанный регион не зарегистрирован: %0%."
setrestore-invalidSetting: "'%0%' не является допустимым значением, должно быть true, false или general."
setrestore-success: "Успешно установлен параметр восстановления %lang:region% до '%0%'."
setrestore-successProfile: "Успешно установлен параметр восстановления %lang:region% до '%0%' и профиль до '%1%'."
setprice-noPermission: "У вас нет разрешения на изменение стоимости региона"
setprice-help: "/as setprice <price> [имярегиона], если не указано имя, будет выбран регион в котором вы находитесь."
setprice-notRegistered: "Указанный регион не зарегистрирован: %0%."
setprice-wrongPrice: "'%0%' не допустимая цена."
setduration-noPermission: "У вас нет разрешения на изменение длительности аренды."
setduration-help: "/as setduration <amount> <identifier> [имярегиона], если не указано имя, будет выбран регион в котором вы находитесь."
setduration-notRegistered: "%0% не зарегистрирован для сдачи в аренду."
teleport-help: "/as tp <region> [табличка]."
teleport-success: "Вы телепортированы к %lang:region%."
teleport-successSign: "Вы телепортированы к табличке возле %lang:region%."
teleport-blocked: "Вы не можете телепортироваться, потому что положение находится за пределами региона, и вы вынуждены телепортироваться во внутрь."
teleport-changedToSign: "У вас есть только разрешение на телепортироваться к табличке, а не во внутрь региона, телепортация к табличке."
teleport-changedToNoSign: "Ни одна табличка не доступна что бы телепортироваться, попытка телепортироваться во внутрь региона вместо этого."
setteleport-help: "/as settp [регион] [сброс], если не указать параметры, будет выбран регион в котором вы находитесь."
setteleport-noPermission: "У вас нет прав, чтобы установить точку телепорта."
setteleport-noPermissionOther: "У вас нет прав, чтобы установить точку телепорта для региона, который вам не принадлежит."
setteleport-noRentOrBuy: "Указанный регион не зарегистрирован: %0%."
setteleport-success: "Точка телепорта для %lang:region% установлена."
setteleport-notInside: "Точка должно быть внутри региона."
setteleport-reset: "Точка телепорта для %lang:region% была сброшена."
find-help: "/as find <buy|rent> [стоимость] [группа]."
find-noPermission: "У вас нет разрешения на поиск регионов и телепортироваться к ним."
find-successMax: "Найдено %0% регионов: %lang:region%, при поиске с максимальной ценой %1%%2%."
find-wrongMaxPrice: "Указанная максимальная цена имеет не правильный номер: %0%."
find-wrongGroup: "Указанная группа не существует: %0%."
find-onlyInGroup: ", искать регионы только в группах: %0%."
groupadd-help: "/as groupadd <group> [имярегиона], если не указать имя, будут выбраны все регионы в вашем WorldEdit выделении."
groupadd-noPermission: "У вас нет разрешения на добавление регионов к группам."
groupadd-success: "Регион %lang:region% был добавлен к группе '%0%', эта группа теперь имеет %1% участника(-ов)."
groupadd-failed: "Регион %lang:region% уже является участником группы '%0%'."
groupadd-weSuccess: "Добавлен к группе %0%: [gray]%1%."
groupadd-weFailed: "Уже были в группе %0%: [gray]%1%."
groupdel-help: "/as groupdel <group> [имярегиона], если не указать имя, будут выбраны все регионы в вашем WorldEdit выделении."
groupdel-noPermission: "У вас нет разрешения на удаление регионов из групп."
groupdel-success: "Регион %lang:region% был удален из группы '%0%', эта группа теперь имеет %1% участника(-ов)."
groupdel-failed: "Регион %lang:region% не является участником группы '%0%'."
groupdel-weSuccess: "Удален из группы %0%: [gray]%1%."
groupdel-weFailed: "Не были в группе %0% во всяком случае: [gray]%1%."
grouplist-noPermission: "У вас нет разрешения на отображение зарегистрированных групп."
grouplist-noGroups: "Нет доступных зарегистрированных груп."
grouplist-success: "Следующие группы были зарегистрированные: [gray]%0%."
groupinfo-help: "/as groupinfo <группа>."
groupinfo-noPermission: "У вас нет разрешения на отображение информации о группе."
groupinfo-noGroup: "Нет доступной зарегистрированной группы с именем '%0%', используй /as grouplist для вывода списка групп."
groupinfo-members: "Следующие регионы являются членами группы %0%: [gray]%1%."
groupinfo-noMembers: "Группа %0% не имеет участников."
schemevent-help: "/as schemevent <регион> <created|deleted|rented|unrented|bought|sold>."
schemevent-wrongEvent: "Событие '%0%' не существует, используйте одно из следующих действий: [gray]%1%."
schemevent-success: "Событие '%0%' успешно сработало для региона %lang:region%."
schemevent-noPermission: "У вас нет разрешения на иницииацию схематических событий"
add-help: "/as add <rent|buy> [rрегион] [мир]."
add-noPermission: "У вас нет разрешения добавлять регионы в AreaShop."
add-success: "AДобавлен к %0%: [gray]%1%."
add-failed: "Уже зарегистрирован: [gray]%0%."
add-blacklisted: "Включен в черный список : [gray]%0%."
add-specifyWorld: "Укажите мир региона при использовании из консоли."
add-incorrectWorld: "Мир '%0%' не найден, попробуйте еще раз (с учетом регистра)."
add-noRegion: "WorldGuard регион '%0%' не существует в этом мире."
add-noPermissionRegions: "Нет разрешения, чтобы добавить: [gray]%0%."
add-noPermissionOwnerMember: "[gray]Вы либо не являетесь участником/владельцем этих регионов, либо не имеете разрешения добавлять свои регионы."
del-noPermission: "У вас нет разрешения на удаление регионов."
del-success: "Удалены регионы: [gray]%0%."
del-failed: "Нет разрешения на удаление или не зарегистрирован: [gray]%0%."
addsign-help: "/as addsign [регион] [профиль]."
addsign-noSign: "Вы не смотрите на табличку."
addsign-noRegions: "Не найдено регионов вокруг таблички."
addsign-couldNotDetect: "Найдено несколько регионов вокруг таблички, укажите регион в качестве дополнительного аргумента (2 из регионов, которые были найдены: %lang:tRegion|%0%|% и %lang:tRegion|%1%|%)."
addsign-couldNotDetectSign: "Найдено несколько регионов вокруг таблички, укажите регион на второй строке (2 из регионов, которые были найдены: %lang:tRegion|%0%|% и %lang:tRegion|%1%|%)."
addsign-wrongProfile: "Указанный профиль не существует, используйте одно из следующих действий (проверьте конфиг.): [gray]%0%."
addsign-profile:
- "[bold]%0%[/bold]"
- " hover: Табличка профиль %0%"
- " hover: %lang:action|Используйте этот профиль|%"
- " command: /areashop linksigns %0%"
addsign-success: "Табличка была добавлена для %lang:region%."
addsign-successProfile: "Табличка была добавлена для %lang:region% вместе с профилем %0%."
addsign-alreadyRegistered: "Эта табличка уже зарегистрирована в регионе %lang:region%."
addsign-noPermission: "У вас нет разрешения на добавление таблички."
delsign-noSign: "Вы не смотрите на табличку."
delsign-noPermission: "У вас нет разрешения на удаление таблички."
delsign-noRegion: "Эта табличка не принадлежит к регионам в AreaShop."
delsign-success: "Табличка была удалена из региона %lang:region%."
me-noPermission: "У вас нет прав, чтобы проверить, какие регионы вы имеете."
me-header: "Регионы %lang:tPlayer|%0%|%:"
me-notAPlayer: "Вы не являетесь игроком, которому доступны какие-либо регионы."
me-buyLine: "[darkgreen][bold]►[reset] %lang:region%."
me-nothing: "%lang:tPlayer|%0%|% не арендовали или покупали регионы и не добавлялись в друзья."
me-noPlayer: "%0% не может быть найден, вероятно, никогда не присоединился к серверу."
setowner-help: "/as setowner <player> [имярегиона], если не указано имя, будет выбран регион в котором вы находитесь."
setowner-noPermission: "У вас нет прав, чтобы установить владельца региона."
setowner-noPermissionRent: "У вас нет прав, чтобы установить владельца для аренды регионов."
setowner-noPermissionBuy: "У вас нет прав, чтобы установить владельца для покупки регионов."
setowner-notRegistered: "Указанный регион не зарегистрирован, владелец не может быть установлен."
setowner-noPlayer: "Не удалось получить UUID указанного игрока: %0%."
setowner-succesBuy: "Владелец в %lang:region% успешно изменен на %lang:player%."
resell-help: "/as resell <price> [имярегиона], если не указано имя, будет выбран регион в котором вы находитесь."
resell-wrongPrice: "'%0%' не является допустимой ценой."
resell-notRegistered: "Указанный регион не зарегистрирован: %0%."
resell-notBought: "Вы не можете перепродать %lang:region%, так как он еще не продан."
resell-success: "%lang:region% был успешно выставлен в режим перепродажи за %resellprice%."
resell-noPermission: "У Вас нет прав что бы установить ваш регион в режим перепродажи."
resell-noPermissionOther: "У Вас нет прав что бы установить регион в режим перепродажи."
stopresell-help: "/as stopresell [имярегиона], если не указано имя, будет выбран регион в котором вы находитесь."
stopresell-notRegistered: "Указанный регион не зарегистрирован: %0%."
stopresell-notResell: "Вы не можете остановить перепродажу %lang:region% потому что регион не в режиме перепродажи."
stopresell-success: "%lang:region% был успешно выставлен в режим продажи."
stopresell-noPermission: "У вас нет прав, чтобы установить свой регион обратно в режим продажи."
stopresell-noPermissionOther: "У вас нет разрешения устанавливать регионы обратно в режим продажи."
addfriend-help: "/as addfriend <player> [имярегиона], если не указано имя, будет выбран регион в котором вы находитесь."
addfriend-noPermissionOther: "У вас нет разрешения на добавление друзей в регионы, которые не являются вашими."
addfriend-noPermission: "У вас нет разрешения на добавление друзей в вашем регионе."
addfriend-successOther: "%lang:tPlayer|%0%|% был добавлен до друзей в %lang:region%."
addfriend-success: "%lang:tPlayer|%0%|% был добавлен до друзей в вашем регионе %lang:region%."
addfriend-alreadyAdded: "%lang:tPlayer|%0%|% уже добавлен до друзей в %lang:region%."
addfriend-self: "Добавление владельца региона как друга было бы бессмысленно."
addfriend-noOwner: "Вы не можете добавлять друзей в регионе без владельца."
addfriend-notVisited: "Вы не можете добавить %0% потому что он еще не посещал этот сервер."
delfriend-help: "/as delfriend <player> [имярегиона], если не указано имя, будет выбран регион в котором вы находитесь."
delfriend-noPermissionOther: "У вас нет разрешения на удаление друзей из регионов, которые не являются вашими."
delfriend-noPermission: "У вас нет разрешения на удаление друзей из вашего региона."
delfriend-successOther: "%lang:tPlayer|%0%|% был удален из друзей в регионе %lang:region%."
delfriend-success: "%lang:tPlayer|%0%|% был удален из друзей в вашем регионе %lang:region%."
delfriend-noOwner: "Вы не можете удалять друзей из региона без владельца."
linksigns-multipleRegions: "Найдено несколько регионов: [gray]%0%."
linksigns-multipleRegionsAdvice: "Нажмите в другое время, чтобы попробовать еще раз или использовать '/as linksigns' чтобы остановить."
linksigns-noRegions: "Не найдено регионов AreaShop в направлении взгляда, убедитесь что регион добавлен в AreaShop [gray](максимум расстояние в 100 блоков)."
linksigns-regionFound: "Регион %lang:region% был найден, теперь соедините с табличкой кликнув левой кнопкой миши ."
linksigns-signFound: "Найдена табличка в (%0%, %1%, %2%), теперь соедините с регионом кликнув правой кнопкой мыши ."
linksigns-noSign: "Никаких табличок обнаружено в направлении взгляда, убедитесь, что у вас есть прямой взгляд на табличку и нажмите снова [gray](максимум расстояние в 100 блоков)."
linksigns-alreadyRegistered: "Эта табличка уже зарегистрирована в регионе %lang:region%, кликни еще раз, чтобы выбрать другую табличку."
linksigns-first: "Включен режим привязки табличек."
linksigns-next: "[gray]Клик лкм. выбрать табличку, клик пкм. выбрать регион, использовать /as linksigns для отключения режима."
linksigns-noPermission: "У вас нет разрешения для пользования режима привязки табличек."
linksigns-stopped: "Отключен режим привязки табличек."
stack-help:
- "/as stack <amount> <gap> <name> <rent|buy> [group].[break]"
- " [gray]<amount> Количество создаваемых регионов.[break]"
- " [gray]<gap> Дистанция в блоках между регионами.[break]"
- " [gray]<name> Имя региона (с числом за ним).[break]"
- " [gray]<rent|buy> сделать аренду или продажу.[break]"
- " [gray][group] Добавляет регионы в группу.[break]"
- " [gray]Регионы будут созданы в направлении взгляда."
stack-accepted: "Началось создание %0% %1% регионов с растоянием в %2% блок(ов), имена которых начинаются с %3% и имеют номера за ними.%4%"
stack-addToGroup: "Созданные регионы будут добавлены к группе '%0%'."
stack-noPermission: "У вас нет разрешения создавать и добавлять регионы AreaShop в большом количестве."
stack-wrongAmount: "'%0%' не правильное количество регионов."
stack-wrongGap: "'%0%' не правильное число блоков для отступа между регионами."
stack-noSelection: "У вас нет выделения, которое указывает, где должен быть создан первый регион."
stack-addStart: "[gray]Добавлено %0% регионов около %1% в секунду."
stack-addComplete: "[gray]Добавление регионов прошло успешно."
stack-unclearDirection: "Посмотрите, пожалуйста, четко на север, восток, юг или запад, обнаружено %0%."
setlandlord-help: "/as setlandlord <player> [имярегиона], если не указано имя, будет выбран регион в котором вы находитесь."
setlandlord-noPermission: "У вас не разрешения чтобы назначить землевладельца в регион."
setlandlord-success: "%lang:landlord% был успешно установлен как землевладелец в %lang:region%."
message-help: "/as message <игрок> <сообщение...>"
message-noPermission: "У вас нет разрешения на отправку AreaShop сообщений."
message-notOnline: "%0% не в сети."
confirm-rent:
- "%lang:prefix%Вы уверены, что вы хотите арендовать %lang:tRegion|%0%|%?[break]"
- "[darkgreen][bold]►[reset] %lang:button|Нажмите, чтобы арендовать %0%|%"
- " hover: %lang:action|Аренда %0%|%"
- " command: /areashop rent %0%"
confirm-extend:
- "%lang:prefix%Вы уверены, что вы хотите продлить %lang:tRegion|%0%|%?[break]"
- "[darkgreen][bold]►[reset] %lang:button|Нажмите, чтобы продлить %0%|%"
- " hover: %lang:action|Продлить %0%|%"
- " command: /areashop rent %0%"
confirm-unrent:
- "%lang:prefix%Вы уверены, что хотите снять аренду %lang:tRegion|%0%|%?[break]"
- "[darkgreen][bold]►[reset] %lang:button|Нажмите, чтобы снять аренду %0%|%"
- " hover: %lang:action|Снять аренду %0%|%"
- " command: /areashop unrent %0%"
confirm-buy:
- "%lang:prefix%Вы уверены, что хотите купить %lang:tRegion|%0%|%?[break]"
- "[darkgreen][bold]►[reset] %lang:button|Нажмите, чтобы купить %0%|%"
- " hover: %lang:action|Купить %0%|%"
- " command: /areashop buy %0%"
confirm-sell:
- "%lang:prefix%Вы уверены, что хотите продать %lang:tRegion|%0%|%?[break]"
- "[darkgreen][bold]►[reset] %lang:button|Нажмите, чтобы продать %0%|%"
- " hover: %lang:action|Продать %0%|%"
- " command: /areashop sell %0%"
timeleft-years: "%0% лет"
timeleft-months: "%0% месяцев"
timeleft-days: "%0% дней"
timeleft-hours: "%0% часов"
timeleft-minutes: "%0% минут"
timeleft-second: "%0% секунда"
timeleft-seconds: "%0% секунд"
timeleft-ended: "Истек"
greeting-forrent: "%region% может быть арендован за %price% в %duration%"
greeting-rented: "%region% арендован игроком %player% до %untill%."
greeting-forsale: "%region% может быть куплен за %price%."
greeting-bought: "%region% куплен игроком %player%."
greeting-resale: "%region% может быть куплен за %resaleprice% у игрока %player%."
+2 -2
View File
@@ -19,7 +19,7 @@
</repository>
<repository>
<id>vault-repo</id>
<url>http://nexus.theyeticave.net/content/repositories/pub_releases</url>
<url>http://nexus.hc.to/content/repositories/pub_releases</url>
</repository>
</repositories>
@@ -40,4 +40,4 @@
<module>AreaShop</module>
</modules>
</project>
</project>