mirror of
https://github.com/md5sha256/AreaShop.git
synced 2026-11-06 17:32:43 -05:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
064b129205 | ||
|
|
8111387f32 | ||
|
|
a4b23bebba | ||
|
|
7421e685fa | ||
|
|
374b68d8fa | ||
|
|
ca7a9664f3 | ||
|
|
e957b4fc73 | ||
|
|
6493bc4f78 | ||
|
|
2db1b6a243 | ||
|
|
864662a3c4 |
No files matched your search
+1
-1
@@ -4,7 +4,7 @@
|
||||
<artifactId>areashop</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<name>AreaShop</name>
|
||||
<version>2.3.1</version> <!-- Main plugin version -->
|
||||
<version>2.3.2</version> <!-- Main plugin version -->
|
||||
|
||||
<parent>
|
||||
<groupId>me.wiefferink</groupId>
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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", "FR", "DE", "NO"};
|
||||
private String languages[] = {"EN", "NL", "FR", "DE", "NO", "RU"};
|
||||
private Map<String, List<String>> currentLanguage, defaultLanguage;
|
||||
|
||||
/**
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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
|
||||
@@ -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();
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# ╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗
|
||||
# ║ Language file of the AreaShop plugin created by NLThijs48, Github can be found at https://github.com/NLthijs48/AreaShop ║
|
||||
# ║ Language: German, Version: V2.3.1, Percentage translated: 100% ║
|
||||
# ║ 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) ║
|
||||
@@ -8,8 +8,6 @@
|
||||
# ║ 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]"
|
||||
|
||||
button: "[bold]<%0%>[/bold]"
|
||||
|
||||
command:
|
||||
@@ -178,23 +176,9 @@ 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-entryForrent: "[darkgreen][bold]►[reset] %lang:region% kann gemietet werden für %price% je %duration%."
|
||||
info-entryRented: "[darkgreen][bold]►[reset] %lang:region% wurde an %lang:player% verkauft."
|
||||
info-entryForsale: "[darkgreen][bold]►[reset] %lang:region% kann gekauft werden für %price%."
|
||||
info-entrySold: "[darkgreen][bold]►[reset] %lang:region% wurde an %lang:player% verkauft."
|
||||
info-entryReselling: "[darkgreen][bold]►[reset] %lang:region% wurde an %lang:player% weiterverkauft."
|
||||
info-pageStatus: "[gray]Seite %0%/%1%"
|
||||
info-pagePrevious:
|
||||
- " [gray][bold]◄Vorherige[/bold] "
|
||||
- " hover: %lang:action|Zeige Vorherige Seite|%"
|
||||
- " command: %0%"
|
||||
info-pageNoPrevious:
|
||||
- " [darkgray][bold]◄Vorherige[/bold] "
|
||||
- " hover: Das ist bereits die erste Seite."
|
||||
info-pageNext:
|
||||
- " [gray][bold]Nächste►[/bold]"
|
||||
- " hover: %lang:action|Zeige nächste Seite.|%"
|
||||
- " command: %0%"
|
||||
info-pageNoNext:
|
||||
- " [darkgray][bold]Nächste►[/bold]"
|
||||
- " hover: Das ist bereits die letzte Seite."
|
||||
@@ -431,9 +415,7 @@ 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-rentLine: "[darkgreen][bold]►[reset] %lang:region% [gray](nach %until%, %timeleft% verbleibend)."
|
||||
me-buyLine: "[darkgreen][bold]►[reset] %lang:region%."
|
||||
me-friendLine: "[darkgreen][bold]►[reset] %lang:region% [gray](als Freund hinzugefügt, Besitzer: %lang:player%)."
|
||||
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."
|
||||
|
||||
@@ -477,7 +459,6 @@ delfriend-noPermissionOther: "Du hast keine Berechtigung, Freunde von Regionen z
|
||||
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-notAdded: "%lang:tPlayer|%0%|% ist nicht als Freund der Region %lang:region% eingetragen."
|
||||
delfriend-noOwner: "Du kannst keine Freunde von einer Region ohne Besitzer entfernen."
|
||||
|
||||
linksigns-multipleRegions: "Mehrere Regionen gefunden: [gray]%0%."
|
||||
|
||||
@@ -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.1, 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,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,22 +178,22 @@ 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:
|
||||
@@ -436,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."
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# ╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗
|
||||
# ║ Language file of the AreaShop plugin created by NLThijs48, Github can be found at https://github.com/NLthijs48/AreaShop ║
|
||||
# ║ Language: French, Version: V2.3.1, Percentage translated: 100% ║
|
||||
# ║ 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) ║
|
||||
@@ -8,8 +8,6 @@
|
||||
# ║ 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]"
|
||||
|
||||
button: "[bold]<%0%>[/bold]"
|
||||
|
||||
command:
|
||||
@@ -67,26 +65,26 @@ 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|% Avoir des informations par rapport aux régions."
|
||||
help-rent: "%lang:helpCommand|/as rent|% Louez une région ou extendez votre location."
|
||||
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 la duration d'une location."
|
||||
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|% Montrer tout les groupes."
|
||||
help-groupinfo: "%lang:helpCommand|/as groupinfo|% Montrer des informations sur 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|% Inscrire une région à la vente ou à la location."
|
||||
help-del: "%lang:helpCommand|/as del|% Supprimer toutes les régions enregistrées par AreaShop."
|
||||
help-addsign: "%lang:helpCommand|/as addsign|% Ajouter un panneau d'une région existante."
|
||||
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."
|
||||
@@ -103,7 +101,7 @@ 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 click droit sur le panneau ou avec la commande /as rent."
|
||||
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%)."
|
||||
@@ -117,7 +115,7 @@ rent-restrictedToRegion: "Vous devez être à l'intérieur de %lang:region% pou
|
||||
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 vous ne spécifiez pas la région, la région ou vous trouvez sera utilisée."
|
||||
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."
|
||||
@@ -125,7 +123,7 @@ 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 acheté la région %lang:region% qui appartenait à %lang:tPlayer|%0%|%."
|
||||
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%)."
|
||||
@@ -178,23 +176,9 @@ 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-entryForrent: "[darkgreen][bold]►[reset] %lang:region%: A louer pour %price% par %duration%."
|
||||
info-entryRented: "[darkgreen][bold]►[reset] %lang:region%: Loué à %lang:player%."
|
||||
info-entryForsale: "[darkgreen][bold]►[reset] %lang:region%: A vendre pour %price%."
|
||||
info-entrySold: "[darkgreen][bold]►[reset] %lang:region%: Vendu à %lang:player%."
|
||||
info-entryReselling: "[darkgreen][bold]►[reset] %lang:region%: Vendu à %lang:player% (revente)."
|
||||
info-pageStatus: "[gray]Page %0%/%1%"
|
||||
info-pagePrevious:
|
||||
- " [gray][bold]◄Précédent[/bold] "
|
||||
- " hover: %lang:action|Afficher la page précédente|%"
|
||||
- " command: %0%"
|
||||
info-pageNoPrevious:
|
||||
- " [darkgray][bold]◄Précédent[/bold] "
|
||||
- " hover: C'est déjà la premier page"
|
||||
info-pageNext:
|
||||
- " [gray][bold]Suivant►[/bold]"
|
||||
- " hover: %lang:action|Afficher la page suivante|%"
|
||||
- " command: %0%"
|
||||
info-pageNoNext:
|
||||
- " [darkgray][bold]Suivaznt►[/bold]"
|
||||
- " hover: C'est déjà la dernière page"
|
||||
@@ -232,7 +216,7 @@ info-regionCanBeBought:
|
||||
- " 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] Amis de la région: [gray]%0%."
|
||||
info-regionFriends: "[darkgreen][bold]►[reset] Ami(s) ajouté(s) : [gray]%0%."
|
||||
info-friend: "%lang:tPlayer|%0%|%"
|
||||
info-friendRemove:
|
||||
- "%lang:info-friend|%0%|%"
|
||||
@@ -317,8 +301,8 @@ setup-noDuration: "A la troisième ligne, vous n'avez pas spécifié la durée d
|
||||
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 parfaitement parametré."
|
||||
setup-buySuccess: "La vente de la région %lang:region% est parfaitement parametré."
|
||||
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%|%)."
|
||||
@@ -349,9 +333,9 @@ setteleport-help: "/as settp [region] [reset], Si non spécifiée, cible la rég
|
||||
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% à été définis."
|
||||
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% à été réinitialisé."
|
||||
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."
|
||||
@@ -379,7 +363,7 @@ groupdel-weFailed: "Nous ne sommes de toute façon pas dans le groupe %0% : [gr
|
||||
|
||||
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 suivant sont enregistrés: [gray]%0%."
|
||||
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."
|
||||
@@ -404,8 +388,8 @@ 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: "Regions supprimés: [gray]%0%."
|
||||
del-failed: "Pas de permission pour supprimer ou #Je comprend pas la suite#"
|
||||
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."
|
||||
@@ -431,11 +415,9 @@ 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-rentLine: "[darkgreen][bold]►[reset] %lang:region% [gray](pendant %until%, %timeleft% restant)."
|
||||
me-buyLine: "[darkgreen][bold]►[reset] %lang:region%."
|
||||
me-friendLine: "[darkgreen][bold]►[reset] %lang:region% [gray](ajouté comme ami, propriétaire: %lang:player%)."
|
||||
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% non trouvé, il ne c'est peut être jamais connecté sur le serveur."
|
||||
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."
|
||||
@@ -458,7 +440,7 @@ resell-noPermissionOther: "Vous n'avez pas la permission de mettre des régions
|
||||
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% est retourné en mode vente"
|
||||
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."
|
||||
|
||||
@@ -477,7 +459,6 @@ delfriend-noPermissionOther: "Vous n'avez pas la permission de supprimer des ami
|
||||
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-notAdded: "%lang:tPlayer|%0%|% n'est pas dans les amis de %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%."
|
||||
|
||||
@@ -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.1, 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:
|
||||
@@ -431,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."
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# ╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗
|
||||
# ║ Language file of the AreaShop plugin created by NLThijs48, Github can be found at https://github.com/NLthijs48/AreaShop ║
|
||||
# ║ Language: Norwegian, Version: V2.3.1, Percentage translated: 100% ║
|
||||
# ║ 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) ║
|
||||
@@ -8,8 +8,6 @@
|
||||
# ║ 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]"
|
||||
|
||||
button: "[bold]<%0%>[/bold]"
|
||||
|
||||
command:
|
||||
@@ -178,23 +176,9 @@ 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-entryForrent: "[darkgreen][bold]►[reset] %lang:region%: Til leie for %price% per %duration%."
|
||||
info-entryRented: "[darkgreen][bold]►[reset] %lang:region%: Utleid til %lang:player%."
|
||||
info-entryForsale: "[darkgreen][bold]►[reset] %lang:region%: Til salgs for %price%."
|
||||
info-entrySold: "[darkgreen][bold]►[reset] %lang:region%: Solgt til %lang:player%."
|
||||
info-entryReselling: "[darkgreen][bold]►[reset] %lang:region%: Solgt til %lang:player% (videresalg)."
|
||||
info-pageStatus: "[gray]Side %0%/%1%"
|
||||
info-pagePrevious:
|
||||
- " [gray][bold]◄Forrige[/bold] "
|
||||
- " hover: %lang:action|Vis forrige side|%"
|
||||
- " kommando: %0%"
|
||||
info-pageNoPrevious:
|
||||
- " [darkgray][bold]◄Forrige[/bold] "
|
||||
- " hover: Dette er første side"
|
||||
info-pageNext:
|
||||
- " [gray][bold]Neste►[/bold]"
|
||||
- " hover: %lang:action|Vis neste side|%"
|
||||
- " kommando: %0%"
|
||||
info-pageNoNext:
|
||||
- " [darkgray][bold]Neste►[/bold]"
|
||||
- " hover: Dette er siste side"
|
||||
@@ -431,9 +415,7 @@ 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-rentLine: "[darkgreen][bold]►[reset] %lang:region% [gray](frem til %until%, %timeleft% igjen)."
|
||||
me-buyLine: "[darkgreen][bold]►[reset] %lang:region%."
|
||||
me-friendLine: "[darkgreen][bold]►[reset] %lang:region% [gray](lagt til som venn, eier: %lang:player%)."
|
||||
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."
|
||||
|
||||
@@ -477,7 +459,6 @@ delfriend-noPermissionOther: "Du har ikke rettigheter til å fjerne venner fra r
|
||||
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-notAdded: "%lang:tPlayer|%0%|% er ikke lagt til som venn i %lang:region."
|
||||
delfriend-noOwner: "Du kan ikke fjerne venner fra en region uten eier."
|
||||
|
||||
linksigns-multipleRegions: "Fant flere regioner: [gray]%0%."
|
||||
|
||||
@@ -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%."
|
||||
@@ -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>
|
||||
Reference in new issue
Block a user