mirror of
https://github.com/RoinujNosde/SimpleClans.git
synced 2026-11-05 01:10:04 -05:00
Compare commits
17
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
af8edd0a24 | ||
|
|
2480bf47bc | ||
|
|
f9de9966ec | ||
|
|
f7304c00a7 | ||
|
|
cd451a2f1f | ||
|
|
707a6bfb66 | ||
|
|
f5ae7e23c3 | ||
|
|
91845abea3 | ||
|
|
7cb55f6177 | ||
|
|
949943fb5e | ||
|
|
56b4b64d21 | ||
|
|
b3324574da | ||
|
|
edd4c46a9e | ||
|
|
91c701a729 | ||
|
|
45ef2ce219 | ||
|
|
dd676565e2 | ||
|
|
6a570cf003 |
No files matched your search
@@ -16,8 +16,7 @@
|
||||
<filtering>true</filtering>
|
||||
<directory>${basedir}/src/main/resources</directory>
|
||||
<includes>
|
||||
<include>plugin.yml</include>
|
||||
<include>config.yml</include>
|
||||
<include>**/*.yml</include>
|
||||
<include>*.properties</include>
|
||||
</includes>
|
||||
</resource>
|
||||
@@ -230,7 +229,7 @@
|
||||
<dependency>
|
||||
<groupId>com.github.cryptomorin</groupId>
|
||||
<artifactId>XSeries</artifactId>
|
||||
<version>13.8.0</version>
|
||||
<version>11.2.0.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.sk89q</groupId>
|
||||
|
||||
@@ -75,8 +75,7 @@ public class SimpleClans extends JavaPlugin {
|
||||
}
|
||||
|
||||
public static void debug(String msg) {
|
||||
//instance may be null during tests
|
||||
if (getInstance() == null || getInstance().getSettingsManager().is(DEBUG)) {
|
||||
if (getInstance().getSettingsManager().is(DEBUG)) {
|
||||
logger.log(Level.INFO, msg);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,12 +79,8 @@ public class BankCommand extends BaseCommand {
|
||||
} else {
|
||||
clan.setBalance(operator, REVERT, BankLogger.Operation.WITHDRAW, clan.getBalance() + amount);
|
||||
}
|
||||
break;
|
||||
case NOT_ENOUGH_BALANCE:
|
||||
player.sendMessage(lang("clan.bank.not.enough.money", player));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.events;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.SCFrame;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class PostComponentsCreationEvent extends Event {
|
||||
|
||||
private static final HandlerList HANDLER_LIST = new HandlerList();
|
||||
|
||||
private final @NotNull SCFrame frame;
|
||||
|
||||
public PostComponentsCreationEvent(@NotNull SCFrame frame) {
|
||||
this.frame = frame;
|
||||
}
|
||||
|
||||
public SCFrame getFrame() {
|
||||
return frame;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return HANDLER_LIST;
|
||||
}
|
||||
|
||||
public static @NotNull HandlerList getHandlerList() {
|
||||
return HANDLER_LIST;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -330,7 +330,6 @@ public final class ClanManager {
|
||||
return clanPlayers.get(uuid);
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@Nullable
|
||||
public ClanPlayer getAnyClanPlayer(String playerName) {
|
||||
for (ClanPlayer cp : getAllClanPlayers()) {
|
||||
@@ -603,7 +602,7 @@ public final class ClanManager {
|
||||
}
|
||||
}
|
||||
|
||||
if (out.length() == 0) {
|
||||
if (out.isEmpty()) {
|
||||
out = lang("none", player);
|
||||
}
|
||||
|
||||
@@ -674,7 +673,7 @@ public final class ClanManager {
|
||||
out += ChatColor.WHITE + lang("weapon.A", player) + headColor + count;
|
||||
}
|
||||
|
||||
if (out.length() == 0) {
|
||||
if (out.isEmpty()) {
|
||||
out = lang("none", player);
|
||||
}
|
||||
|
||||
|
||||
@@ -3,17 +3,22 @@ package net.sacredlabyrinth.phaed.simpleclans.managers;
|
||||
import com.cryptomorin.xseries.XMaterial;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Rank;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.SCFrame;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.utils.ChatUtils;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.configuration.InvalidConfigurationException;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.util.*;
|
||||
import java.util.logging.Level;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.managers.SettingsManager.ConfigField.*;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.utils.RankingNumberResolver.RankingType;
|
||||
@@ -30,6 +35,7 @@ public final class SettingsManager {
|
||||
|
||||
private final FileConfiguration config;
|
||||
private final File configFile;
|
||||
private final Map<Class<? extends SCFrame>, FileConfiguration> frameConfigs = new ConcurrentHashMap<>();
|
||||
|
||||
public SettingsManager(SimpleClans plugin) {
|
||||
this.plugin = plugin;
|
||||
@@ -95,6 +101,7 @@ public final class SettingsManager {
|
||||
SimpleClans.getInstance().getLogger().log(Level.SEVERE, ex.getMessage(), ex);
|
||||
}
|
||||
}
|
||||
frameConfigs.clear();
|
||||
|
||||
save();
|
||||
}
|
||||
@@ -133,6 +140,30 @@ public final class SettingsManager {
|
||||
return new Locale(language);
|
||||
}
|
||||
|
||||
public FileConfiguration getConfig(Class<? extends SCFrame> clazz) {
|
||||
return frameConfigs.computeIfAbsent(clazz, this::readConfig);
|
||||
}
|
||||
|
||||
private FileConfiguration readConfig(Class<? extends SCFrame> clazz) {
|
||||
String configPath = clazz.getName().replace("net.sacredlabyrinth.phaed.simpleclans.ui.", "")
|
||||
.replace(".", File.separator) + ".yml";
|
||||
File externalFile = new File(plugin.getDataFolder(), configPath);
|
||||
InputStream resource = plugin.getResource(configPath);
|
||||
YamlConfiguration config = YamlConfiguration.loadConfiguration(externalFile);
|
||||
if (resource != null) {
|
||||
YamlConfiguration defaults = YamlConfiguration.loadConfiguration(new InputStreamReader(resource));
|
||||
config.setDefaults(defaults);
|
||||
if (!externalFile.exists()) {
|
||||
try {
|
||||
defaults.save(externalFile);
|
||||
} catch (IOException e) {
|
||||
plugin.getLogger().log(Level.SEVERE, String.format("Error saving defaults to %s", configPath), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
return config;
|
||||
}
|
||||
|
||||
public List<Material> getItemList() {
|
||||
List<Material> itemsList = new ArrayList<>();
|
||||
for (String material : getStringList(ITEM_LIST)) {
|
||||
|
||||
@@ -930,7 +930,7 @@ public final class StorageManager {
|
||||
* @param type the kill type
|
||||
*/
|
||||
public void insertKill(@NotNull ClanPlayer attacker, @NotNull ClanPlayer victim, @NotNull String type, @NotNull LocalDateTime time) {
|
||||
String query = "INSERT INTO `" + getPrefixedTable("kills") + "` ( `attacker_uuid`, `attacker`, `attacker_tag`, `victim_uuid`, " +
|
||||
String query = "INSERT INTO `sc_kills` ( `attacker_uuid`, `attacker`, `attacker_tag`, `victim_uuid`, " +
|
||||
"`victim`, `victim_tag`, `kill_type`, `created_at`) ";
|
||||
String values = "VALUES ( '" + attacker.getUniqueId() + "','" + attacker.getName() + "','" + attacker.getTag()
|
||||
+ "','" + victim.getUniqueId() + "','" + victim.getName() + "','" + victim.getTag() + "','" + type + "','" + time + "');";
|
||||
@@ -1175,7 +1175,7 @@ public final class StorageManager {
|
||||
|
||||
// From 2.19.3 to 2.20.0
|
||||
if (!core.existsColumn(getPrefixedTable("kills"), "created_at")) {
|
||||
query = "ALTER TABLE `" + getPrefixedTable("kills") + "` ADD `created_at` datetime NULL;";
|
||||
query = "ALTER TABLE sc_kills ADD `created_at` datetime NULL;";
|
||||
core.execute(query);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,16 +17,14 @@ import net.sacredlabyrinth.phaed.simpleclans.proxy.adapters.SCMessageAdapter;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.proxy.listeners.MessageListener;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.plugin.messaging.PluginMessageListener;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
import java.util.logging.Level;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public final class BungeeManager implements ProxyManager, PluginMessageListener {
|
||||
|
||||
@@ -37,15 +35,12 @@ public final class BungeeManager implements ProxyManager, PluginMessageListener
|
||||
private static final String CHAT_CHANNEL = "Chat";
|
||||
private static final String BROADCAST = "Broadcast";
|
||||
private static final String MESSAGE = "Message";
|
||||
private static final String VERSION = "v1";
|
||||
private static final Pattern SUBCHANNEL_PATTERN =
|
||||
Pattern.compile("SimpleClans\\|(?<subchannel>\\w+)\\|(?<version>v\\d+)\\|(?<server>.+)");
|
||||
|
||||
private final SimpleClans plugin;
|
||||
private final Gson gson;
|
||||
private final List<String> onlinePlayers = new ArrayList<>();
|
||||
private String serverName = "";
|
||||
private final Set<String> unsupportedChannels = new HashSet<>();
|
||||
private final Set<String> unknownChannels = new HashSet<>();
|
||||
|
||||
public BungeeManager(SimpleClans plugin) {
|
||||
this.plugin = plugin;
|
||||
@@ -65,47 +60,29 @@ public final class BungeeManager implements ProxyManager, PluginMessageListener
|
||||
|
||||
@SuppressWarnings("UnstableApiUsage")
|
||||
public void onPluginMessageReceived(@NotNull String channel, @NotNull Player player, byte[] data) {
|
||||
ByteArrayDataInput dataInput = ByteStreams.newDataInput(data);
|
||||
String subChannel = dataInput.readUTF();
|
||||
if (unsupportedChannels.contains(subChannel)) {
|
||||
ByteArrayDataInput input = ByteStreams.newDataInput(data);
|
||||
String subChannel = input.readUTF();
|
||||
if (unknownChannels.contains(subChannel)) {
|
||||
return;
|
||||
}
|
||||
|
||||
SimpleClans.debug("Message received, sub-channel: " + subChannel);
|
||||
try {
|
||||
String serverName = null;
|
||||
String className = subChannel;
|
||||
String version = null;
|
||||
Matcher matcher = SUBCHANNEL_PATTERN.matcher(subChannel);
|
||||
if (matcher.find()) {
|
||||
serverName = matcher.group("server");
|
||||
className = matcher.group("subchannel");
|
||||
version = matcher.group("version");
|
||||
}
|
||||
Class<?> clazz = Class.forName("net.sacredlabyrinth.phaed.simpleclans.proxy.listeners." + className);
|
||||
Class<?> clazz = Class.forName("net.sacredlabyrinth.phaed.simpleclans.proxy.listeners." + subChannel);
|
||||
MessageListener listener = (MessageListener) clazz.getConstructor(BungeeManager.class).newInstance(this);
|
||||
if (listener.isBungeeSubchannel()) {
|
||||
listener.accept(dataInput); //uses the original data
|
||||
return;
|
||||
}
|
||||
if (!VERSION.equals(version)) {
|
||||
plugin.getLogger().severe(String.format("Unsupported channel (%s), expected version: %s", subChannel, VERSION));
|
||||
unsupportedChannels.add(subChannel);
|
||||
return;
|
||||
String serverName = null;
|
||||
if (!listener.isBungeeSubchannel()) {
|
||||
serverName = input.readUTF();
|
||||
}
|
||||
if (serverName != null && !isServerAllowed(serverName)) {
|
||||
SimpleClans.debug(String.format("Server not allowed: %s", serverName));
|
||||
return;
|
||||
}
|
||||
byte[] messageBytes = new byte[dataInput.readShort()];
|
||||
dataInput.readFully(messageBytes);
|
||||
final ByteArrayDataInput message = ByteStreams.newDataInput(messageBytes);
|
||||
|
||||
listener.accept(message); // uses the internal data
|
||||
listener.accept(input);
|
||||
SimpleClans.debug("Message processed");
|
||||
} catch (ClassNotFoundException e) {
|
||||
SimpleClans.debug(String.format("Unknown channel: %s", subChannel));
|
||||
unsupportedChannels.add(subChannel);
|
||||
} catch (Exception ex) {
|
||||
unknownChannels.add(subChannel);
|
||||
} catch (ReflectiveOperationException ex) {
|
||||
plugin.getLogger().log(Level.SEVERE, String.format("Error processing channel %s", subChannel), ex);
|
||||
}
|
||||
}
|
||||
@@ -143,7 +120,7 @@ public final class BungeeManager implements ProxyManager, PluginMessageListener
|
||||
|
||||
@Override
|
||||
public void sendMessage(SCMessage message) {
|
||||
forwardToOnlineServers(CHAT_CHANNEL, gson.toJson(message));
|
||||
forwardPluginMessage(CHAT_CHANNEL, gson.toJson(message), false);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -168,27 +145,43 @@ public final class BungeeManager implements ProxyManager, PluginMessageListener
|
||||
}
|
||||
|
||||
private void sendBroadcast(@NotNull String message) {
|
||||
forwardToOnlineServers(BROADCAST, message);
|
||||
forwardPluginMessage(BROADCAST, message, false);
|
||||
}
|
||||
|
||||
@SuppressWarnings("UnstableApiUsage")
|
||||
private void sendPrivateMessage(@NotNull String playerName, @NotNull String message) {
|
||||
if (!isChannelRegistered()) {
|
||||
return;
|
||||
}
|
||||
ByteArrayDataOutput output = ByteStreams.newDataOutput();
|
||||
output.writeUTF("Forward");
|
||||
output.writeUTF("ONLINE");
|
||||
output.writeUTF(MESSAGE);
|
||||
output.writeUTF(serverName);
|
||||
output.writeUTF(playerName);
|
||||
output.writeUTF(message);
|
||||
|
||||
sendOnBungeeChannel(output);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendDelete(Clan clan) {
|
||||
forwardToAllServers(DELETE_CLAN_CHANNEL, clan.getTag());
|
||||
forwardPluginMessage(DELETE_CLAN_CHANNEL, clan.getTag());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendDelete(ClanPlayer cp) {
|
||||
forwardToAllServers(DELETE_CLANPLAYER_CHANNEL, cp.getUniqueId().toString());
|
||||
forwardPluginMessage(DELETE_CLANPLAYER_CHANNEL, cp.getUniqueId().toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendUpdate(Clan clan) {
|
||||
forwardToAllServers(UPDATE_CLAN_CHANNEL, gson.toJson(clan));
|
||||
forwardPluginMessage(UPDATE_CLAN_CHANNEL, gson.toJson(clan));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendUpdate(ClanPlayer cp) {
|
||||
forwardToAllServers(UPDATE_CLANPLAYER_CHANNEL, gson.toJson(cp));
|
||||
forwardPluginMessage(UPDATE_CLANPLAYER_CHANNEL, gson.toJson(cp));
|
||||
}
|
||||
|
||||
public SimpleClans getPlugin() {
|
||||
@@ -212,60 +205,40 @@ public final class BungeeManager implements ProxyManager, PluginMessageListener
|
||||
}
|
||||
|
||||
private void requestServerName() {
|
||||
Bukkit.getScheduler().runTaskTimer(plugin, task -> {
|
||||
if (!serverName.isEmpty()) {
|
||||
task.cancel();
|
||||
return;
|
||||
}
|
||||
Bukkit.getOnlinePlayers().stream().findFirst().ifPresent(player -> {
|
||||
@SuppressWarnings("UnstableApiUsage")
|
||||
Listener listener = new Listener() {
|
||||
@SuppressWarnings("UnstableApiUsage")
|
||||
@EventHandler
|
||||
void on(PlayerJoinEvent event) {
|
||||
ByteArrayDataOutput output = ByteStreams.newDataOutput();
|
||||
output.writeUTF("GetServer");
|
||||
player.sendPluginMessage(plugin, "BungeeCord", output.toByteArray());
|
||||
});
|
||||
}, 0L, 20L);
|
||||
|
||||
Bukkit.getScheduler().runTask(plugin, () -> {
|
||||
event.getPlayer().sendPluginMessage(plugin, "BungeeCord", output.toByteArray());
|
||||
PlayerJoinEvent.getHandlerList().unregister(this); //only needed once
|
||||
});
|
||||
}
|
||||
};
|
||||
Bukkit.getPluginManager().registerEvents(listener, plugin);
|
||||
}
|
||||
|
||||
private String createSubchannelName(String subchannel) {
|
||||
return String.format("SimpleClans|%s|%s|%s", subchannel, VERSION, serverName);
|
||||
private void forwardPluginMessage(final String subChannel, final String message) {
|
||||
forwardPluginMessage(subChannel, message, true);
|
||||
}
|
||||
|
||||
@SuppressWarnings("UnstableApiUsage")
|
||||
private void sendPrivateMessage(@NotNull String playerName, @NotNull String message) {
|
||||
ByteArrayDataOutput output = ByteStreams.newDataOutput();
|
||||
output.writeUTF(playerName);
|
||||
output.writeUTF(message);
|
||||
|
||||
forwardPluginMessage(MESSAGE, output, false);
|
||||
}
|
||||
|
||||
@SuppressWarnings("UnstableApiUsage")
|
||||
private void forwardToAllServers(final String subChannel, final String message) {
|
||||
ByteArrayDataOutput output = ByteStreams.newDataOutput();
|
||||
output.writeUTF(message);
|
||||
forwardPluginMessage(subChannel, output, true);
|
||||
}
|
||||
|
||||
@SuppressWarnings("UnstableApiUsage")
|
||||
private void forwardToOnlineServers(final String subChannel, final String message) {
|
||||
ByteArrayDataOutput output = ByteStreams.newDataOutput();
|
||||
output.writeUTF(message);
|
||||
forwardPluginMessage(subChannel, output, false);
|
||||
}
|
||||
|
||||
@SuppressWarnings("UnstableApiUsage")
|
||||
private void forwardPluginMessage(final String subChannel, final ByteArrayDataOutput message, final boolean all) {
|
||||
private void forwardPluginMessage(final String subChannel, final String message, final boolean all) {
|
||||
SimpleClans.debug(String.format("Forwarding message, channel %s, message %s, all %s", subChannel, message, all));
|
||||
if (!isChannelRegistered()) {
|
||||
SimpleClans.debug("Not registered");
|
||||
return;
|
||||
}
|
||||
String target = all ? "ALL" : "ONLINE";
|
||||
ByteArrayDataOutput output = ByteStreams.newDataOutput();
|
||||
output.writeUTF("Forward");
|
||||
output.writeUTF(all ? "ALL" : "ONLINE");
|
||||
output.writeUTF(createSubchannelName(subChannel));
|
||||
|
||||
output.writeShort(message.toByteArray().length);
|
||||
output.write(message.toByteArray());
|
||||
output.writeUTF(target);
|
||||
output.writeUTF(subChannel);
|
||||
output.writeUTF(serverName);
|
||||
output.writeUTF(message);
|
||||
|
||||
sendOnBungeeChannel(output);
|
||||
}
|
||||
@@ -275,11 +248,8 @@ public final class BungeeManager implements ProxyManager, PluginMessageListener
|
||||
player.sendPluginMessage(plugin, "BungeeCord", output.toByteArray()));
|
||||
}
|
||||
|
||||
@SuppressWarnings("BooleanMethodIsAlwaysInverted")
|
||||
private boolean isChannelRegistered() {
|
||||
boolean registered = Bukkit.getMessenger().isOutgoingChannelRegistered(plugin, "BungeeCord");
|
||||
SimpleClans.debug(String.format("BungeeCord channel registered: %s", registered));
|
||||
return registered;
|
||||
return Bukkit.getMessenger().isOutgoingChannelRegistered(plugin, "BungeeCord");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,7 +1,6 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.proxy.listeners;
|
||||
|
||||
import com.google.common.io.ByteArrayDataInput;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.proxy.BungeeManager;
|
||||
|
||||
public class GetServer extends MessageListener {
|
||||
@@ -14,7 +13,6 @@ public class GetServer extends MessageListener {
|
||||
public void accept(ByteArrayDataInput data) {
|
||||
String name = data.readUTF();
|
||||
bungee.setServerName(name);
|
||||
SimpleClans.debug(String.format("Server name: %s", name));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -3,6 +3,7 @@ package net.sacredlabyrinth.phaed.simpleclans.ui;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.RankPermission;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.events.FrameOpenEvent;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.events.PostComponentsCreationEvent;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.managers.SettingsManager;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.utils.WordWrapper;
|
||||
import org.bukkit.Bukkit;
|
||||
@@ -82,6 +83,7 @@ public class InventoryDrawer {
|
||||
frame.clear();
|
||||
try {
|
||||
frame.createComponents();
|
||||
Bukkit.getPluginManager().callEvent(new PostComponentsCreationEvent(frame));
|
||||
} catch (NoSuchFieldError ex) {
|
||||
runHelpCommand(frame.getViewer());
|
||||
return;
|
||||
@@ -93,7 +95,7 @@ public class InventoryDrawer {
|
||||
return;
|
||||
}
|
||||
for (SCComponent c : frame.getComponents()) {
|
||||
if (c.getSlot() >= frame.getSize()) {
|
||||
if (c.getSlot() >= frame.getSize() || !c.isEnabled()) {
|
||||
continue;
|
||||
}
|
||||
checkLorePermission(frame, c);
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.ui;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.utils.Paginator;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import javax.annotation.OverridingMethodsMustInvokeSuper;
|
||||
|
||||
public abstract class PageableFrame<T> extends SCFrame {
|
||||
|
||||
public PageableFrame(@Nullable SCFrame parent, @NotNull Player viewer) {
|
||||
super(parent, viewer);
|
||||
}
|
||||
|
||||
@Override
|
||||
@OverridingMethodsMustInvokeSuper
|
||||
public void createComponents() {
|
||||
super.createComponents();
|
||||
SCComponent nextPage = new SCComponentImpl.Builder(getConfig(), "next_page")
|
||||
.withViewer(getViewer())
|
||||
.withDisplayNameKey("gui.next.page.title").build();
|
||||
setOneTimeListener(nextPage, this::nextPage, getPaginator().hasNextPage());
|
||||
add(nextPage);
|
||||
|
||||
SCComponent previousPage = new SCComponentImpl.Builder(getConfig(), "previous_page")
|
||||
.withViewer(getViewer())
|
||||
.withDisplayNameKey("gui.previous.page.title").build();
|
||||
setOneTimeListener(previousPage, this::previousPage, getPaginator().hasPreviousPage());
|
||||
add(previousPage);
|
||||
}
|
||||
|
||||
public abstract Paginator<T> getPaginator();
|
||||
|
||||
public int getPageSize() {
|
||||
return getConfig().getIntegerList("components.list.slots").size();
|
||||
}
|
||||
|
||||
private void nextPage() {
|
||||
if (getPaginator().nextPage()) {
|
||||
update();
|
||||
}
|
||||
}
|
||||
|
||||
private void previousPage() {
|
||||
if (getPaginator().previousPage()) {
|
||||
update();
|
||||
}
|
||||
}
|
||||
|
||||
private void setOneTimeListener(final SCComponent component, final Runnable runnable, boolean pageCheck) {
|
||||
if (!pageCheck) {
|
||||
return;
|
||||
}
|
||||
component.setListener(ClickType.LEFT, () -> {
|
||||
component.setListener(ClickType.LEFT, null);
|
||||
runnable.run();
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
@@ -19,6 +19,7 @@ import java.util.Set;
|
||||
*/
|
||||
public abstract class SCComponent {
|
||||
|
||||
private boolean enabled = true;
|
||||
private final HashMap<ClickType, Runnable> listeners = new HashMap<>();
|
||||
private final HashMap<ClickType, Object> permissions = new HashMap<>();
|
||||
private final Set<ClickType> verified = new HashSet<>();
|
||||
@@ -30,6 +31,14 @@ public abstract class SCComponent {
|
||||
|
||||
public abstract int getSlot();
|
||||
|
||||
public boolean isEnabled() {
|
||||
return enabled;
|
||||
}
|
||||
|
||||
public void setEnabled(boolean enabled) {
|
||||
this.enabled = enabled;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public ItemMeta getItemMeta() {
|
||||
return getItem().getItemMeta();
|
||||
|
||||
@@ -1,15 +1,25 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.ui;
|
||||
|
||||
import com.cryptomorin.xseries.XMaterial;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.RankPermission;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.frames.Components;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.bukkit.inventory.ItemFlag;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.bukkit.inventory.meta.SkullMeta;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
|
||||
public class SCComponentImpl extends SCComponent {
|
||||
|
||||
@@ -45,6 +55,7 @@ public class SCComponentImpl extends SCComponent {
|
||||
itemMeta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
|
||||
item.setItemMeta(itemMeta);
|
||||
}
|
||||
checkSlot(slot);
|
||||
this.slot = slot;
|
||||
}
|
||||
|
||||
@@ -58,34 +69,66 @@ public class SCComponentImpl extends SCComponent {
|
||||
return slot;
|
||||
}
|
||||
|
||||
private static void checkMaterial(String material) {
|
||||
if (material == null || material.isEmpty()) {
|
||||
throw new IllegalStateException("material cannot be null or empty");
|
||||
}
|
||||
}
|
||||
|
||||
private static void checkSlot(int slot) {
|
||||
if (slot < 0) {
|
||||
throw new IllegalStateException("slot must be >= 0 and < 54");
|
||||
}
|
||||
}
|
||||
|
||||
public static class Builder {
|
||||
private final SCComponentImpl component = new SCComponentImpl();
|
||||
private boolean enabled;
|
||||
private final ItemStack item;
|
||||
private String displayName;
|
||||
private int slot;
|
||||
private @Nullable List<String> lore;
|
||||
private Player viewer;
|
||||
|
||||
public Builder(@NotNull XMaterial material) {
|
||||
this(material.parseItem());
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public Builder(@NotNull Material material) {
|
||||
component.item = new ItemStack(material);
|
||||
this(new ItemStack(material));
|
||||
}
|
||||
|
||||
public Builder(@Nullable ItemStack item) {
|
||||
if (item == null) {
|
||||
item = new ItemStack(Material.STONE);
|
||||
}
|
||||
component.item = item;
|
||||
this.item = item;
|
||||
}
|
||||
|
||||
public Builder(FileConfiguration config, String id) {
|
||||
String materialName = config.getString("components." + id + ".material");
|
||||
checkMaterial(materialName);
|
||||
item = Objects.requireNonNull(XMaterial.matchXMaterial(materialName).orElse(XMaterial.STONE).parseItem());
|
||||
slot = config.getInt("components." + id + ".slot");
|
||||
checkSlot(slot);
|
||||
enabled = config.getBoolean("components." + id + ".enabled");
|
||||
}
|
||||
|
||||
public Builder withViewer(@NotNull Player player) {
|
||||
this.viewer = player;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder withDisplayName(@Nullable String displayName) {
|
||||
ItemMeta itemMeta = component.getItemMeta();
|
||||
if (itemMeta != null) {
|
||||
itemMeta.setDisplayName(displayName);
|
||||
component.setItemMeta(itemMeta);
|
||||
}
|
||||
this.displayName = displayName;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder withDisplayNameKey(@NotNull String key, Object... args) {
|
||||
if (viewer == null) throw new IllegalStateException("viewer is null");
|
||||
return withDisplayName(lang(key, viewer, args));
|
||||
}
|
||||
|
||||
public Builder withLore(@Nullable List<String> lore) {
|
||||
this.lore = lore;
|
||||
return this;
|
||||
@@ -99,18 +142,154 @@ public class SCComponentImpl extends SCComponent {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder withLoreKey(@NotNull String key, Object... args) {
|
||||
if (viewer == null) throw new IllegalStateException("viewer is null");
|
||||
return withLoreLine(lang(key, viewer, args));
|
||||
}
|
||||
|
||||
public Builder withSlot(int slot) {
|
||||
component.slot = slot;
|
||||
checkSlot(slot);
|
||||
this.slot = slot;
|
||||
return this;
|
||||
}
|
||||
|
||||
public SCComponent build() {
|
||||
ItemMeta itemMeta = component.getItemMeta();
|
||||
SCComponentImpl component = new SCComponentImpl();
|
||||
component.item = item;
|
||||
component.setEnabled(enabled);
|
||||
ItemMeta itemMeta = item.getItemMeta();
|
||||
if (itemMeta != null) {
|
||||
itemMeta.setLore(lore);
|
||||
itemMeta.setDisplayName(displayName);
|
||||
component.setItemMeta(itemMeta);
|
||||
}
|
||||
component.slot = slot;
|
||||
return component;
|
||||
}
|
||||
}
|
||||
|
||||
public static class ListBuilder<T> {
|
||||
private final boolean enabled;
|
||||
private final XMaterial material;
|
||||
private Function<T, ItemStack> item;
|
||||
private Function<T, OfflinePlayer> owningPlayer;
|
||||
private final List<Integer> slots;
|
||||
private final List<T> elements;
|
||||
private Player viewer;
|
||||
private Function<T, String> displayName = (t) -> null;
|
||||
private final List<Function<T, String>> lore = new ArrayList<>();
|
||||
private final Map<ClickType, Function<T, Runnable>> listeners = new HashMap<>();
|
||||
private final Map<ClickType, String> bukkitPermissions = new HashMap<>();
|
||||
private final Map<ClickType, RankPermission> rankPermissions = new HashMap<>();
|
||||
private final Set<ClickType> confirmationRequired = new HashSet<>();
|
||||
private String lorePermission;
|
||||
|
||||
public ListBuilder(@NotNull FileConfiguration config, @NotNull String id, @NotNull List<T> elements) {
|
||||
String materialName = config.getString("components." + id + ".material");
|
||||
checkMaterial(materialName);
|
||||
material = XMaterial.matchXMaterial(materialName).orElse(XMaterial.STONE);
|
||||
item = (t) -> Objects.requireNonNull(material.parseItem());
|
||||
slots = config.getIntegerList("components." + id + ".slots").stream().filter(i -> i >= 0 && i < 54)
|
||||
.collect(Collectors.toList());
|
||||
this.elements = elements;
|
||||
enabled = config.getBoolean("components." + id + ".enabled");
|
||||
}
|
||||
|
||||
public ListBuilder(@NotNull FileConfiguration config, @NotNull String id) {
|
||||
this(config, id, new ArrayList<>());
|
||||
slots.forEach(e -> elements.add(null));
|
||||
}
|
||||
|
||||
public ListBuilder<T> withItem(@NotNull Function<T, ItemStack> item) {
|
||||
this.item = (t) -> {
|
||||
ItemStack result = item.apply(t);
|
||||
return result == null ? material.parseItem() : result;
|
||||
};
|
||||
return this;
|
||||
}
|
||||
|
||||
public ListBuilder<T> withViewer(@NotNull Player player) {
|
||||
viewer = player;
|
||||
return this;
|
||||
}
|
||||
|
||||
@SafeVarargs
|
||||
public final ListBuilder<T> withDisplayNameKey(@NotNull String key, Function<T, Object>... args) {
|
||||
displayName = (t) -> processLang(key, t, args);
|
||||
return this;
|
||||
}
|
||||
|
||||
@SafeVarargs
|
||||
public final ListBuilder<T> withLoreKey(@NotNull String key, Function<T, Object>... args) {
|
||||
lore.add((t) -> processLang(key, t, args));
|
||||
return this;
|
||||
}
|
||||
|
||||
public final ListBuilder<T> withLoreLine(Function<T, String> line) {
|
||||
lore.add(line);
|
||||
return this;
|
||||
}
|
||||
|
||||
public final ListBuilder<T> withOwningPlayer(Function<T, OfflinePlayer> owningPlayer) {
|
||||
this.owningPlayer = owningPlayer;
|
||||
return this;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private String processLang(@NotNull String key, T t, Function<T, Object>[] args) {
|
||||
Object[] processedArgs = Arrays.stream(args).map(func -> func.apply(t)).toArray();
|
||||
if (viewer == null) throw new IllegalStateException("viewer is null");
|
||||
return lang(key, viewer, processedArgs);
|
||||
}
|
||||
|
||||
public ListBuilder<T> withLorePermission(@Nullable String permission) {
|
||||
lorePermission = permission;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ListBuilder<T> withListener(@NotNull ClickType click, @Nullable Function<T, Runnable> runnable, @Nullable String permission) {
|
||||
bukkitPermissions.put(click, permission);
|
||||
listeners.put(click, runnable);
|
||||
return this;
|
||||
}
|
||||
|
||||
public ListBuilder<T> withListener(@NotNull ClickType click, @Nullable Function<T, Runnable> runnable, @Nullable RankPermission permission) {
|
||||
rankPermissions.put(click, permission);
|
||||
listeners.put(click, runnable);
|
||||
return this;
|
||||
}
|
||||
|
||||
public ListBuilder<T> withConfirmationRequired(@NotNull ClickType click) {
|
||||
confirmationRequired.add(click);
|
||||
return this;
|
||||
}
|
||||
|
||||
public List<SCComponent> build() {
|
||||
List<SCComponent> components = new ArrayList<>();
|
||||
for (int i = 0; i < elements.size() && i < slots.size(); i++) {
|
||||
T t = elements.get(i);
|
||||
SCComponentImpl component = new SCComponentImpl();
|
||||
component.setEnabled(enabled);
|
||||
component.item = item.apply(t);
|
||||
component.slot = slots.get(i);
|
||||
ItemMeta itemMeta = component.getItemMeta();
|
||||
if (itemMeta != null) {
|
||||
itemMeta.setDisplayName(displayName.apply(t));
|
||||
List<String> processedLore = lore.stream().map(f -> f.apply(t)).collect(Collectors.toList());
|
||||
itemMeta.setLore(processedLore);
|
||||
if (itemMeta instanceof SkullMeta && owningPlayer != null) {
|
||||
Components.setOwningPlayer(((SkullMeta) itemMeta), owningPlayer.apply(t));
|
||||
}
|
||||
component.setItemMeta(itemMeta);
|
||||
}
|
||||
component.setLorePermission(lorePermission);
|
||||
listeners.forEach((click, fn) -> component.setListener(click, fn.apply(t)));
|
||||
bukkitPermissions.forEach(component::setPermission);
|
||||
rankPermissions.forEach(component::setPermission);
|
||||
confirmationRequired.forEach(component::setConfirmationRequired);
|
||||
components.add(component);
|
||||
}
|
||||
return components;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,19 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.ui;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import javax.annotation.OverridingMethodsMustInvokeSuper;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author RoinujNosde
|
||||
@@ -17,7 +24,7 @@ public abstract class SCFrame {
|
||||
private final SCFrame parent;
|
||||
private final Player viewer;
|
||||
private final Set<SCComponent> components = ConcurrentHashMap.newKeySet();
|
||||
|
||||
|
||||
public SCFrame(@Nullable SCFrame parent, @NotNull Player viewer) {
|
||||
this.parent = parent;
|
||||
this.viewer = viewer;
|
||||
@@ -36,9 +43,27 @@ public abstract class SCFrame {
|
||||
return parent;
|
||||
}
|
||||
|
||||
public abstract int getSize();
|
||||
public int getSize() {
|
||||
return getConfig().getInt("rows", 6) * 9;
|
||||
}
|
||||
|
||||
public abstract void createComponents();
|
||||
@OverridingMethodsMustInvokeSuper
|
||||
public void createComponents() {
|
||||
SCComponent back = new SCComponentImpl.Builder(getConfig(), "back")
|
||||
.withViewer(getViewer())
|
||||
.withDisplayNameKey("gui.back.title").build();
|
||||
back.setListener(ClickType.LEFT, () -> InventoryDrawer.open(getParent()));
|
||||
add(back);
|
||||
|
||||
ConfigurationSection decorSection = getConfig().getConfigurationSection("components.decorations");
|
||||
if (decorSection != null) {
|
||||
for (String key : decorSection.getKeys(false)) {
|
||||
addAll(new SCComponentImpl.ListBuilder<>(getConfig(), "decorations." + key)
|
||||
.withViewer(getViewer())
|
||||
.withDisplayNameKey(" ").build());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public SCComponent getComponent(int slot) {
|
||||
@@ -51,18 +76,34 @@ public abstract class SCFrame {
|
||||
}
|
||||
|
||||
public void add(@NotNull SCComponent c) {
|
||||
SCComponent old = getComponent(c.getSlot());
|
||||
if (old != null) {
|
||||
components.remove(old);
|
||||
}
|
||||
components.add(c);
|
||||
}
|
||||
|
||||
|
||||
public void addAll(@NotNull Collection<SCComponent> collection) {
|
||||
collection.forEach(this::add);
|
||||
}
|
||||
|
||||
public void clear() {
|
||||
components.clear();
|
||||
}
|
||||
|
||||
public void update() {
|
||||
InventoryDrawer.open(this);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Set<SCComponent> getComponents() {
|
||||
return components;
|
||||
}
|
||||
|
||||
protected FileConfiguration getConfig() {
|
||||
return SimpleClans.getInstance().getSettingsManager().getConfig(getClass());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object other) {
|
||||
if (other instanceof SCFrame) {
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.ui.frames;
|
||||
|
||||
import com.cryptomorin.xseries.XMaterial;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Clan;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.RankPermission;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
@@ -10,77 +9,46 @@ import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
|
||||
public class AddAllyFrame extends SCFrame {
|
||||
private final List<Clan> notAllies;
|
||||
private final Paginator paginator;
|
||||
public class AddAllyFrame extends PageableFrame<Clan> {
|
||||
private final Paginator<Clan> paginator;
|
||||
|
||||
public AddAllyFrame(SCFrame parent, Player viewer, Clan subject) {
|
||||
super(parent, viewer);
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
notAllies = plugin.getClanManager().getClans().stream()
|
||||
.filter(c -> !c.equals(subject) && !c.isRival(subject.getTag()) && !c.isAlly(subject.getTag()))
|
||||
.collect(Collectors.toList());
|
||||
paginator = new Paginator(getSize() - 9, notAllies);
|
||||
}
|
||||
public AddAllyFrame(SCFrame parent, Player viewer, Clan subject) {
|
||||
super(parent, viewer);
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
List<Clan> notAllies = plugin.getClanManager().getClans().stream()
|
||||
.filter(c -> !c.equals(subject) && !c.isRival(subject.getTag()) && !c.isAlly(subject.getTag()))
|
||||
.collect(Collectors.toList());
|
||||
paginator = new Paginator<>(getPageSize(), notAllies);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void createComponents() {
|
||||
for (int slot = 0; slot < 9; slot++) {
|
||||
if (slot == 2 || slot == 6 || slot == 7)
|
||||
continue;
|
||||
add(Components.getPanelComponent(slot));
|
||||
}
|
||||
add(Components.getBackComponent(getParent(), 2, getViewer()));
|
||||
@Override
|
||||
public void createComponents() {
|
||||
super.createComponents();
|
||||
List<SCComponent> list = new SCComponentImpl.ListBuilder<>(getConfig(), "list", paginator.getCurrentElements())
|
||||
.withViewer(getViewer())
|
||||
.withLoreKey("gui.add.ally.clan.lore")
|
||||
.withListener(ClickType.LEFT, this::addAlly, RankPermission.ALLY_ADD)
|
||||
.build();
|
||||
addAll(list);
|
||||
}
|
||||
|
||||
add(Components.getPreviousPageComponent(6, this::previousPage, paginator, getViewer()));
|
||||
add(Components.getNextPageComponent(7, this::nextPage, paginator, getViewer()));
|
||||
private Runnable addAlly(Clan clan) {
|
||||
return () -> InventoryController.runSubcommand(getViewer(), "ally add", false, clan.getTag());
|
||||
}
|
||||
|
||||
int slot = 9;
|
||||
for (int i = paginator.getMinIndex(); paginator.isValidIndex(i); i++) {
|
||||
@Override
|
||||
public Paginator<Clan> getPaginator() {
|
||||
return paginator;
|
||||
}
|
||||
|
||||
Clan notRival = notAllies.get(i);
|
||||
SCComponent c = new SCComponentImpl(
|
||||
lang("gui.clanlist.clan.title", getViewer(), notRival.getColorTag(), notRival.getName()),
|
||||
Collections.singletonList(lang("gui.add.ally.clan.lore", getViewer())), XMaterial.CYAN_BANNER,
|
||||
slot);
|
||||
@Override
|
||||
public @NotNull String getTitle() {
|
||||
return lang("gui.add.ally.title", getViewer());
|
||||
}
|
||||
|
||||
c.setListener(ClickType.LEFT, () -> InventoryController.runSubcommand(getViewer(),
|
||||
"ally add", false, notRival.getTag()));
|
||||
c.setPermission(ClickType.LEFT, RankPermission.ALLY_ADD);
|
||||
add(c);
|
||||
slot++;
|
||||
}
|
||||
}
|
||||
|
||||
private void previousPage() {
|
||||
if (paginator.previousPage()) {
|
||||
updateFrame();
|
||||
}
|
||||
}
|
||||
|
||||
private void nextPage() {
|
||||
if (paginator.nextPage()) {
|
||||
updateFrame();
|
||||
}
|
||||
}
|
||||
|
||||
private void updateFrame() {
|
||||
InventoryDrawer.open(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getTitle() {
|
||||
return lang("gui.add.ally.title",getViewer());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSize() {
|
||||
return 6 * 9;
|
||||
}
|
||||
}
|
||||
+30
-51
@@ -1,23 +1,27 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.ui.frames;
|
||||
|
||||
import com.cryptomorin.xseries.XMaterial;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Helper;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Rank;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.*;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.InventoryController;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.PageableFrame;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.SCComponent;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.SCComponentImpl.ListBuilder;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.SCFrame;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.utils.Paginator;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
|
||||
public class AddPermissionFrame extends SCFrame {
|
||||
private final String[] availablePermissions;
|
||||
private final Paginator paginator;
|
||||
public class AddPermissionFrame extends PageableFrame<String> {
|
||||
private final List<String> availablePermissions;
|
||||
private final Paginator<String> paginator;
|
||||
private final Rank rank;
|
||||
|
||||
public AddPermissionFrame(SCFrame parent, Player viewer, Rank rank) {
|
||||
@@ -25,63 +29,38 @@ public class AddPermissionFrame extends SCFrame {
|
||||
this.rank = rank;
|
||||
Set<String> rankPerms = rank.getPermissions();
|
||||
availablePermissions = Arrays.stream(Helper.fromPermissionArray()).filter(p -> !rankPerms.contains(p))
|
||||
.toArray(String[]::new);
|
||||
paginator = new Paginator(getSize() - 9, availablePermissions.length);
|
||||
.collect(Collectors.toList());
|
||||
paginator = new Paginator<>(getPageSize(), availablePermissions);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void createComponents() {
|
||||
for (int slot = 0; slot < 9; slot++) {
|
||||
if (slot == 2 || slot == 6 || slot == 7)
|
||||
continue;
|
||||
add(Components.getPanelComponent(slot));
|
||||
}
|
||||
add(Components.getBackComponent(getParent(), 2, getViewer()));
|
||||
|
||||
add(Components.getPreviousPageComponent(6, this::previousPage, paginator, getViewer()));
|
||||
add(Components.getNextPageComponent(7, this::nextPage, paginator, getViewer()));
|
||||
|
||||
int slot = 9;
|
||||
for (int i = paginator.getMinIndex(); paginator.isValidIndex(i); i++) {
|
||||
|
||||
String permission = availablePermissions[i];
|
||||
|
||||
SCComponent c = new SCComponentImpl(
|
||||
lang("gui.add.permission.permission.title",getViewer(), permission),
|
||||
Collections.singletonList(lang("gui.add.permission.permission.lore",getViewer())),
|
||||
XMaterial.PAPER, slot);
|
||||
c.setListener(ClickType.LEFT, () -> InventoryController.runSubcommand(getViewer(),
|
||||
"rank permissions add", true, rank.getName(), permission));
|
||||
c.setPermission(ClickType.LEFT, "simpleclans.leader.rank.permissions.add");
|
||||
add(c);
|
||||
slot++;
|
||||
}
|
||||
super.createComponents();
|
||||
List<SCComponent> list = new ListBuilder<>(getConfig(), "list", paginator.getCurrentElements())
|
||||
.withViewer(getViewer())
|
||||
.withDisplayNameKey("gui.add.permission.permission.title", p -> p)
|
||||
.withLoreKey("gui.add.permission.permission.lore")
|
||||
.withListener(ClickType.LEFT, this::addPermission, "simpleclans.leader.rank.permissions.add")
|
||||
.build();
|
||||
addAll(list);
|
||||
}
|
||||
|
||||
private void previousPage() {
|
||||
if (paginator.previousPage()) {
|
||||
updateFrame();
|
||||
}
|
||||
private Runnable addPermission(String permission) {
|
||||
return () -> {
|
||||
availablePermissions.remove(permission);
|
||||
InventoryController.runSubcommand(getViewer(), "rank permissions add", true,
|
||||
rank.getName(), permission);
|
||||
};
|
||||
}
|
||||
|
||||
private void nextPage() {
|
||||
if (paginator.nextPage()) {
|
||||
updateFrame();
|
||||
}
|
||||
}
|
||||
|
||||
private void updateFrame() {
|
||||
InventoryDrawer.open(this);
|
||||
@Override
|
||||
public Paginator<String> getPaginator() {
|
||||
return paginator;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getTitle() {
|
||||
return lang("gui.add.permission.title",getViewer());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSize() {
|
||||
return 3 * 9;
|
||||
return lang("gui.add.permission.title", getViewer());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,6 +1,5 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.ui.frames;
|
||||
|
||||
import com.cryptomorin.xseries.XMaterial;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Clan;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.RankPermission;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
@@ -10,79 +9,45 @@ import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
|
||||
public class AddRivalFrame extends SCFrame {
|
||||
public class AddRivalFrame extends PageableFrame<Clan> {
|
||||
|
||||
private final List<Clan> notRivals;
|
||||
private final Paginator paginator;
|
||||
private final Paginator<Clan> paginator;
|
||||
|
||||
public AddRivalFrame(SCFrame parent, Player viewer, Clan subject) {
|
||||
super(parent, viewer);
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
notRivals = plugin.getClanManager().getClans().stream()
|
||||
.filter(c -> !c.equals(subject) && !c.isRival(subject.getTag()) && !c.isAlly(subject.getTag()))
|
||||
.collect(Collectors.toList());
|
||||
paginator = new Paginator(getSize() - 9, notRivals.size());
|
||||
}
|
||||
public AddRivalFrame(SCFrame parent, Player viewer, Clan subject) {
|
||||
super(parent, viewer);
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
List<Clan> notRivals = plugin.getClanManager().getClans().stream().filter(c -> !c.equals(subject) && !c.isRival(subject.getTag()) && !c.isAlly(subject.getTag())).collect(Collectors.toList());
|
||||
paginator = new Paginator<>(getPageSize(), notRivals);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void createComponents() {
|
||||
for (int slot = 0; slot < 9; slot++) {
|
||||
if (slot == 2 || slot == 6 || slot == 7)
|
||||
continue;
|
||||
add(Components.getPanelComponent(slot));
|
||||
}
|
||||
add(Components.getBackComponent(getParent(), 2, getViewer()));
|
||||
@Override
|
||||
public void createComponents() {
|
||||
super.createComponents();
|
||||
List<SCComponent> list = new SCComponentImpl.ListBuilder<>(getConfig(), "list", paginator.getCurrentElements())
|
||||
.withViewer(getViewer())
|
||||
.withDisplayNameKey("gui.clanlist.clan.title", Clan::getColorTag, Clan::getName)
|
||||
.withLoreKey("gui.add.rival.clan.lore")
|
||||
.withListener(ClickType.LEFT, this::addRival, RankPermission.RIVAL_ADD)
|
||||
.withConfirmationRequired(ClickType.LEFT).build();
|
||||
addAll(list);
|
||||
}
|
||||
|
||||
add(Components.getPreviousPageComponent(6, this::previousPage, paginator, getViewer()));
|
||||
add(Components.getNextPageComponent(7, this::nextPage, paginator, getViewer()));
|
||||
private Runnable addRival(Clan clan) {
|
||||
return () -> InventoryController.runSubcommand(getViewer(), "rival add", false, clan.getTag());
|
||||
}
|
||||
|
||||
int slot = 9;
|
||||
for (int i = paginator.getMinIndex(); paginator.isValidIndex(i); i++) {
|
||||
@Override
|
||||
public Paginator<Clan> getPaginator() {
|
||||
return paginator;
|
||||
}
|
||||
|
||||
Clan notRival = notRivals.get(i);
|
||||
SCComponent c = new SCComponentImpl(
|
||||
lang("gui.clanlist.clan.title",getViewer(), notRival.getColorTag(), notRival.getName()),
|
||||
Collections.singletonList(lang("gui.add.rival.clan.lore", getViewer())), XMaterial.RED_BANNER,
|
||||
slot);
|
||||
|
||||
c.setListener(ClickType.LEFT, () -> InventoryController.runSubcommand(getViewer(),
|
||||
"rival add", false, notRival.getTag()));
|
||||
c.setConfirmationRequired(ClickType.LEFT);
|
||||
c.setPermission(ClickType.LEFT, RankPermission.RIVAL_ADD);
|
||||
add(c);
|
||||
slot++;
|
||||
}
|
||||
}
|
||||
|
||||
private void previousPage() {
|
||||
if (paginator.previousPage()) {
|
||||
updateFrame();
|
||||
}
|
||||
}
|
||||
|
||||
private void nextPage() {
|
||||
if (paginator.nextPage()) {
|
||||
updateFrame();
|
||||
}
|
||||
}
|
||||
|
||||
private void updateFrame() {
|
||||
InventoryDrawer.open(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getTitle() {
|
||||
return lang("gui.add.rival.title",getViewer());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSize() {
|
||||
return 6 * 9;
|
||||
}
|
||||
@Override
|
||||
public @NotNull String getTitle() {
|
||||
return lang("gui.add.rival.title", getViewer());
|
||||
}
|
||||
}
|
||||
@@ -1,94 +1,64 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.ui.frames;
|
||||
|
||||
import com.cryptomorin.xseries.XMaterial;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Clan;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.RankPermission;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.managers.ClanManager;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.*;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.utils.Paginator;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
|
||||
public class AlliesFrame extends SCFrame {
|
||||
private final SimpleClans plugin = SimpleClans.getInstance();
|
||||
private final Paginator paginator;
|
||||
private final List<String> allies;
|
||||
private final Clan subject;
|
||||
public class AlliesFrame extends PageableFrame<Clan> {
|
||||
private final Paginator<Clan> paginator;
|
||||
private final Clan subject;
|
||||
|
||||
public AlliesFrame(Player viewer, SCFrame parent, Clan subject) {
|
||||
super(parent, viewer);
|
||||
this.subject = subject;
|
||||
allies = subject.getAllies();
|
||||
paginator = new Paginator(getSize() - 9, allies.size());
|
||||
}
|
||||
public AlliesFrame(Player viewer, SCFrame parent, Clan subject) {
|
||||
super(parent, viewer);
|
||||
this.subject = subject;
|
||||
ClanManager manager = SimpleClans.getInstance().getClanManager();
|
||||
List<Clan> allies = subject.getAllies().stream().map(manager::getClan).filter(Objects::nonNull).collect(Collectors.toList());
|
||||
paginator = new Paginator<>(getPageSize(), allies);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void createComponents() {
|
||||
for (int slot = 0; slot < 9; slot++) {
|
||||
if (slot == 2 || slot == 4 || slot == 6 || slot == 7)
|
||||
continue;
|
||||
add(Components.getPanelComponent(slot));
|
||||
}
|
||||
@Override
|
||||
public void createComponents() {
|
||||
super.createComponents();
|
||||
|
||||
add(Components.getBackComponent(getParent(), 2, getViewer()));
|
||||
SCComponent add = new SCComponentImpl.Builder(getConfig(), "add")
|
||||
.withViewer(getViewer())
|
||||
.withDisplayNameKey("gui.allies.add.title")
|
||||
.build();
|
||||
add.setVerifiedOnly(ClickType.LEFT);
|
||||
add.setListener(ClickType.LEFT, () -> InventoryDrawer.open(new AddAllyFrame(this, getViewer(), subject)));
|
||||
add.setPermission(ClickType.LEFT, RankPermission.ALLY_ADD);
|
||||
add(add);
|
||||
|
||||
SCComponent add = new SCComponentImpl(lang("gui.allies.add.title",getViewer()), null,
|
||||
XMaterial.CYAN_WOOL, 4);
|
||||
add.setVerifiedOnly(ClickType.LEFT);
|
||||
add.setListener(ClickType.LEFT, () -> InventoryDrawer.open(new AddAllyFrame(this, getViewer(), subject)));
|
||||
add.setPermission(ClickType.LEFT, RankPermission.ALLY_ADD);
|
||||
add(add);
|
||||
List<SCComponent> list = new SCComponentImpl.ListBuilder<>(getConfig(), "list", paginator.getCurrentElements())
|
||||
.withViewer(getViewer())
|
||||
.withDisplayNameKey("gui.clanlist.clan.title", Clan::getColorTag, Clan::getName)
|
||||
.withLoreKey("gui.allies.clan.lore")
|
||||
.withListener(ClickType.RIGHT, (clan) -> () -> InventoryController.runSubcommand(getViewer(),
|
||||
"ally remove", false, clan.getTag()), RankPermission.ALLY_REMOVE)
|
||||
.build();
|
||||
addAll(list);
|
||||
}
|
||||
|
||||
add(Components.getPreviousPageComponent(6, this::previousPage, paginator, getViewer()));
|
||||
add(Components.getNextPageComponent(7, this::nextPage, paginator, getViewer()));
|
||||
@Override
|
||||
public Paginator<Clan> getPaginator() {
|
||||
return paginator;
|
||||
}
|
||||
|
||||
int slot = 9;
|
||||
for (int i = paginator.getMinIndex(); paginator.isValidIndex(i); i++) {
|
||||
|
||||
Clan clan = plugin.getClanManager().getClan(allies.get(i));
|
||||
if (clan == null)
|
||||
continue;
|
||||
SCComponent c = new SCComponentImpl(
|
||||
lang("gui.clanlist.clan.title",getViewer(), clan.getColorTag(), clan.getName()),
|
||||
Collections.singletonList(lang("gui.allies.clan.lore",getViewer())), XMaterial.CYAN_BANNER, slot);
|
||||
c.setListener(ClickType.RIGHT, () -> InventoryController.runSubcommand(getViewer(),
|
||||
"ally remove", false, clan.getTag()));
|
||||
c.setPermission(ClickType.RIGHT, RankPermission.ALLY_REMOVE);
|
||||
add(c);
|
||||
slot++;
|
||||
}
|
||||
}
|
||||
|
||||
private void previousPage() {
|
||||
if (paginator.previousPage()) {
|
||||
updateFrame();
|
||||
}
|
||||
}
|
||||
|
||||
private void nextPage() {
|
||||
if (paginator.nextPage()) {
|
||||
updateFrame();
|
||||
}
|
||||
}
|
||||
|
||||
private void updateFrame() {
|
||||
InventoryDrawer.open(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getTitle() {
|
||||
return lang("gui.allies.title",getViewer());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSize() {
|
||||
return 6 * 9;
|
||||
}
|
||||
@Override
|
||||
public @NotNull String getTitle() {
|
||||
return lang("gui.allies.title", getViewer());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,31 +1,28 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.ui.frames;
|
||||
|
||||
import com.cryptomorin.xseries.XMaterial;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Clan;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.managers.SettingsManager;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.InventoryDrawer;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.PageableFrame;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.SCComponent;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.SCComponentImpl;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.SCComponentImpl.ListBuilder;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.SCFrame;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.utils.KDRFormat;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.utils.Paginator;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.utils.RankingNumberResolver;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.managers.SettingsManager.ConfigField.SHOW_UNVERIFIED_ON_LIST;
|
||||
|
||||
public class ClanListFrame extends SCFrame {
|
||||
public class ClanListFrame extends PageableFrame<Clan> {
|
||||
private final List<Clan> clans;
|
||||
private final Paginator paginator;
|
||||
private final Paginator<Clan> paginator;
|
||||
private final RankingNumberResolver<Clan, BigDecimal> rankingResolver;
|
||||
|
||||
public ClanListFrame(SCFrame parent, Player viewer) {
|
||||
@@ -34,8 +31,8 @@ public class ClanListFrame extends SCFrame {
|
||||
SettingsManager sm = plugin.getSettingsManager();
|
||||
clans = plugin.getClanManager().getClans().stream()
|
||||
.filter(clan -> clan.isVerified() || sm.is(SHOW_UNVERIFIED_ON_LIST)).collect(Collectors.toList());
|
||||
paginator = new Paginator(getSize() - 9, clans);
|
||||
plugin.getClanManager().sortClansByKDR(clans);
|
||||
paginator = new Paginator<>(getPageSize(), clans);
|
||||
|
||||
rankingResolver = new RankingNumberResolver<>(clans, c -> KDRFormat.toBigDecimal(c.getTotalKDR()), false,
|
||||
sm.getRankingType());
|
||||
@@ -43,57 +40,26 @@ public class ClanListFrame extends SCFrame {
|
||||
|
||||
@Override
|
||||
public void createComponents() {
|
||||
for (int slot = 0; slot < 9; slot++) {
|
||||
if (slot == 2 || slot == 6 || slot == 7)
|
||||
continue;
|
||||
add(Components.getPanelComponent(slot));
|
||||
}
|
||||
add(Components.getBackComponent(getParent(), 2, getViewer()));
|
||||
|
||||
add(Components.getPreviousPageComponent(6, this::previousPage, paginator, getViewer()));
|
||||
add(Components.getNextPageComponent(7, this::nextPage, paginator, getViewer()));
|
||||
|
||||
int slot = 9;
|
||||
for (int i = paginator.getMinIndex(); paginator.isValidIndex(i); i++) {
|
||||
Clan clan = clans.get(i);
|
||||
ItemStack banner = clan.getBanner() != null ? clan.getBanner() : XMaterial.BLACK_BANNER.parseItem();
|
||||
SCComponent c = new SCComponentImpl(
|
||||
lang("gui.clanlist.clan.title", getViewer(), clan.getColorTag(), clan.getName()),
|
||||
Arrays.asList(lang("gui.clanlist.clan.lore.position", getViewer(),
|
||||
rankingResolver.getRankingNumber(clan)),
|
||||
lang("gui.clanlist.clan.lore.kdr", getViewer(), KDRFormat.format(clan.getTotalKDR())),
|
||||
lang("gui.clanlist.clan.lore.members", getViewer(), clan.getMembers().size())),
|
||||
banner, slot);
|
||||
c.setLorePermission("simpleclans.anyone.list");
|
||||
add(c);
|
||||
slot++;
|
||||
}
|
||||
super.createComponents();
|
||||
List<SCComponent> list = new ListBuilder<>(getConfig(), "list", paginator.getCurrentElements())
|
||||
.withItem(Clan::getBanner)
|
||||
.withViewer(getViewer())
|
||||
.withDisplayNameKey("gui.clanlist.clan.title", Clan::getColorTag, Clan::getName)
|
||||
.withLoreKey("gui.clanlist.clan.lore.position", rankingResolver::getRankingNumber)
|
||||
.withLoreKey("gui.clanlist.clan.lore.kdr", clan -> KDRFormat.format(clan.getTotalKDR()))
|
||||
.withLoreKey("gui.clanlist.clan.lore.members", clan -> clan.getMembers().size())
|
||||
.withLorePermission("simpleclans.anyone.list").build();
|
||||
addAll(list);
|
||||
}
|
||||
|
||||
private void previousPage() {
|
||||
if (paginator.previousPage()) {
|
||||
updateFrame();
|
||||
}
|
||||
}
|
||||
|
||||
private void nextPage() {
|
||||
if (paginator.nextPage()) {
|
||||
updateFrame();
|
||||
}
|
||||
}
|
||||
|
||||
private void updateFrame() {
|
||||
InventoryDrawer.open(this);
|
||||
@Override
|
||||
public Paginator<Clan> getPaginator() {
|
||||
return paginator;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getTitle() {
|
||||
return lang("gui.clanlist.title",getViewer(), clans.size());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSize() {
|
||||
return 6 * 9;
|
||||
return lang("gui.clanlist.title", getViewer(), clans.size());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -12,6 +12,7 @@ import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.bukkit.inventory.meta.SkullMeta;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -147,6 +148,7 @@ public class Components {
|
||||
return c;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public static SCComponent getBackComponent(@Nullable SCFrame parent, int slot, Player viewer) {
|
||||
SCComponent back = new SCComponentImpl(lang("gui.back.title", viewer), null,
|
||||
XMaterial.ARROW, slot);
|
||||
@@ -154,11 +156,13 @@ public class Components {
|
||||
return back;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public static SCComponent getPanelComponent(int slot) {
|
||||
return new SCComponentImpl(" ", null, XMaterial.GRAY_STAINED_GLASS_PANE, slot);
|
||||
}
|
||||
|
||||
public static @NotNull SCComponent getPreviousPageComponent(int slot, @Nullable Runnable listener, @NotNull Paginator paginator, @NotNull Player viewer) {
|
||||
@Deprecated
|
||||
public static @NotNull SCComponent getPreviousPageComponent(int slot, @Nullable Runnable listener, @NotNull Paginator<?> paginator, @NotNull Player viewer) {
|
||||
if (!paginator.hasPreviousPage()) {
|
||||
return getPanelComponent(slot);
|
||||
}
|
||||
@@ -168,7 +172,8 @@ public class Components {
|
||||
return c;
|
||||
}
|
||||
|
||||
public static @NotNull SCComponent getNextPageComponent(int slot, @Nullable Runnable listener, @NotNull Paginator paginator, @NotNull Player viewer) {
|
||||
@Deprecated
|
||||
public static @NotNull SCComponent getNextPageComponent(int slot, @Nullable Runnable listener, @NotNull Paginator<?> paginator, @NotNull Player viewer) {
|
||||
if (!paginator.hasNextPage()) {
|
||||
return getPanelComponent(slot);
|
||||
}
|
||||
@@ -187,18 +192,23 @@ public class Components {
|
||||
});
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public static void setOwningPlayer(@NotNull ItemStack item, @NotNull OfflinePlayer player) {
|
||||
SkullMeta itemMeta = (SkullMeta) item.getItemMeta();
|
||||
if (itemMeta == null || player.getName() == null) {
|
||||
if (player.getName() == null) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
itemMeta.setOwningPlayer(player);
|
||||
} catch (NoSuchMethodError e) {
|
||||
itemMeta.setOwner(player.getName());
|
||||
ItemMeta itemMeta = item.getItemMeta();
|
||||
if (itemMeta instanceof SkullMeta) {
|
||||
setOwningPlayer((SkullMeta) itemMeta, player);
|
||||
item.setItemMeta(itemMeta);
|
||||
}
|
||||
}
|
||||
|
||||
item.setItemMeta(itemMeta);
|
||||
@SuppressWarnings("deprecation")
|
||||
public static void setOwningPlayer(@NotNull SkullMeta skullMeta, @NotNull OfflinePlayer player) {
|
||||
try {
|
||||
skullMeta.setOwningPlayer(player);
|
||||
} catch (NoSuchMethodError e) {
|
||||
skullMeta.setOwner(player.getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,13 +1,9 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.ui.frames;
|
||||
|
||||
import com.cryptomorin.xseries.XMaterial;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Clan;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ClanPlayer;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.RankPermission;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.InventoryDrawer;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.SCComponent;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.SCComponentImpl;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.SCFrame;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.*;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.utils.Paginator;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.utils.VanishUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
@@ -17,83 +13,63 @@ import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
|
||||
public class CoordsFrame extends SCFrame {
|
||||
public class CoordsFrame extends PageableFrame<ClanPlayer> {
|
||||
|
||||
private final List<ClanPlayer> allMembers;
|
||||
private final Paginator paginator;
|
||||
private final List<ClanPlayer> allMembers;
|
||||
private final Paginator<ClanPlayer> paginator;
|
||||
|
||||
public CoordsFrame(Player viewer, SCFrame parent, Clan subject) {
|
||||
super(parent, viewer);
|
||||
allMembers = VanishUtils.getNonVanished(getViewer(), subject);
|
||||
allMembers.sort((cp1, cp2) -> Boolean.compare(cp1.isLeader(), cp2.isLeader()));
|
||||
public CoordsFrame(Player viewer, SCFrame parent, Clan subject) {
|
||||
super(parent, viewer);
|
||||
allMembers = VanishUtils.getNonVanished(getViewer(), subject);
|
||||
allMembers.sort((cp1, cp2) -> Boolean.compare(cp1.isLeader(), cp2.isLeader()));
|
||||
|
||||
paginator = new Paginator(getSize() - 9, allMembers);
|
||||
}
|
||||
paginator = new Paginator<>(getPageSize(), allMembers);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void createComponents() {
|
||||
for (int slot = 0; slot < 9; slot++) {
|
||||
if (slot == 2 || slot == 6 || slot == 7)
|
||||
continue;
|
||||
add(Components.getPanelComponent(slot));
|
||||
}
|
||||
@Override
|
||||
public void createComponents() {
|
||||
super.createComponents();
|
||||
|
||||
add(Components.getBackComponent(getParent(), 2, getViewer()));
|
||||
List<SCComponent> list = new SCComponentImpl.ListBuilder<>(getConfig(), "list", paginator.getCurrentElements())
|
||||
.withViewer(getViewer())
|
||||
.withDisplayNameKey("gui.playerdetails.player.title", ClanPlayer::getName)
|
||||
.withLoreKey("gui.coords.player.lore.distance", cp -> {
|
||||
Location cpLoc = Objects.requireNonNull(cp.toPlayer()).getLocation();
|
||||
return (int) Math.ceil(cpLoc.toVector().distance(getViewer().getLocation().toVector()));
|
||||
}).withLoreKey("gui.coords.player.lore.coords", this::getBlocks)
|
||||
.withLoreKey("gui.coords.player.lore.world", cp ->
|
||||
Objects.requireNonNull(cp.toPlayer()).getWorld().getName())
|
||||
.withOwningPlayer(ClanPlayer::toPlayer)
|
||||
.withListener(ClickType.LEFT, cp -> () -> {
|
||||
OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(cp.getUniqueId());
|
||||
InventoryDrawer.open(new PlayerDetailsFrame(getViewer(), this, offlinePlayer));
|
||||
}, RankPermission.COORDS).build();
|
||||
addAll(list);
|
||||
}
|
||||
|
||||
add(Components.getPreviousPageComponent(6, this::previousPage, paginator, getViewer()));
|
||||
add(Components.getNextPageComponent(7, this::nextPage, paginator, getViewer()));
|
||||
int slot = 9;
|
||||
for (int i = paginator.getMinIndex(); paginator.isValidIndex(i); i++) {
|
||||
ClanPlayer cp = allMembers.get(i);
|
||||
Location cpLoc = Objects.requireNonNull(cp.toPlayer()).getLocation();
|
||||
int distance = (int) Math.ceil(cpLoc.toVector().distance(getViewer().getLocation().toVector()));
|
||||
private int[] getBlocks(ClanPlayer cp) {
|
||||
int[] blocks = new int[3];
|
||||
Location location = Objects.requireNonNull(cp.toPlayer()).getLocation();
|
||||
blocks[0] = location.getBlockX();
|
||||
blocks[1] = location.getBlockY();
|
||||
blocks[2] = location.getBlockZ();
|
||||
return blocks;
|
||||
}
|
||||
|
||||
SCComponent c = new SCComponentImpl(lang("gui.playerdetails.player.title",getViewer(), cp.getName()),
|
||||
Arrays.asList(lang("gui.coords.player.lore.distance",getViewer(), distance),
|
||||
lang("gui.coords.player.lore.coords",getViewer(), cpLoc.getBlockX(),
|
||||
cpLoc.getBlockY(), cpLoc.getBlockZ()),
|
||||
lang("gui.coords.player.lore.world",getViewer(), Objects.requireNonNull(cpLoc.getWorld()).getName())),
|
||||
XMaterial.PLAYER_HEAD, slot);
|
||||
OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(cp.getUniqueId());
|
||||
Components.setOwningPlayer(c.getItem(), offlinePlayer);
|
||||
c.setListener(ClickType.LEFT, () -> InventoryDrawer.open(new PlayerDetailsFrame(getViewer(), this, offlinePlayer)));
|
||||
c.setLorePermission(RankPermission.COORDS);
|
||||
add(c);
|
||||
slot++;
|
||||
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public Paginator<ClanPlayer> getPaginator() {
|
||||
return paginator;
|
||||
}
|
||||
|
||||
private void previousPage() {
|
||||
if (paginator.previousPage()) {
|
||||
updateFrame();
|
||||
}
|
||||
}
|
||||
@Override
|
||||
@NotNull
|
||||
public String getTitle() {
|
||||
return lang("gui.coords.title", getViewer());
|
||||
}
|
||||
|
||||
private void nextPage() {
|
||||
if (paginator.nextPage()) {
|
||||
updateFrame();
|
||||
}
|
||||
}
|
||||
|
||||
private void updateFrame() {
|
||||
InventoryDrawer.open(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public String getTitle() {
|
||||
return lang("gui.coords.title",getViewer());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSize() {
|
||||
return 6 * 9;
|
||||
}
|
||||
}
|
||||
@@ -1,19 +1,20 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.ui.frames;
|
||||
|
||||
import com.cryptomorin.xseries.XMaterial;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.RankPermission;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.managers.ClanManager;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.*;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.managers.SettingsManager;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.InventoryController;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.PageableFrame;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.SCComponentImpl.ListBuilder;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.SCFrame;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.utils.CurrencyFormat;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.utils.Paginator;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -21,87 +22,53 @@ import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.managers.SettingsManager.ConfigField.ECONOMY_INVITE_PRICE;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.managers.SettingsManager.ConfigField.ECONOMY_PURCHASE_CLAN_INVITE;
|
||||
|
||||
public class InviteFrame extends SCFrame {
|
||||
public class InviteFrame extends PageableFrame<Player> {
|
||||
|
||||
private final Paginator paginator;
|
||||
private final SimpleClans plugin;
|
||||
private final List<Player> players;
|
||||
private final Paginator<Player> paginator;
|
||||
private final SimpleClans plugin;
|
||||
|
||||
public InviteFrame(SCFrame parent, Player viewer) {
|
||||
super(parent, viewer);
|
||||
this.plugin = SimpleClans.getInstance();
|
||||
ClanManager cm = plugin.getClanManager();
|
||||
players = plugin.getServer().getOnlinePlayers().stream().filter(p -> cm.getClanPlayer(p) == null)
|
||||
.collect(Collectors.toList());
|
||||
paginator = new Paginator(getSize() - 9, players.size());
|
||||
public InviteFrame(SCFrame parent, Player viewer) {
|
||||
super(parent, viewer);
|
||||
this.plugin = SimpleClans.getInstance();
|
||||
ClanManager cm = plugin.getClanManager();
|
||||
List<Player> players = plugin.getServer().getOnlinePlayers().stream().filter(p -> cm.getClanPlayer(p) == null)
|
||||
.collect(Collectors.toList());
|
||||
paginator = new Paginator<>(getPageSize(), players);
|
||||
}
|
||||
|
||||
}
|
||||
@Override
|
||||
public void createComponents() {
|
||||
super.createComponents();
|
||||
SettingsManager settings = plugin.getSettingsManager();
|
||||
double price = settings.is(ECONOMY_PURCHASE_CLAN_INVITE) ? settings.getDouble(ECONOMY_INVITE_PRICE) : 0;
|
||||
|
||||
@Override
|
||||
public void createComponents() {
|
||||
addHeader();
|
||||
ListBuilder<Player> builder = new ListBuilder<>(getConfig(), "list", paginator.getCurrentElements())
|
||||
.withViewer(getViewer())
|
||||
.withDisplayNameKey("gui.invite.player.title", Player::getName)
|
||||
.withOwningPlayer(p -> Bukkit.getOfflinePlayer(p.getUniqueId()))
|
||||
.withListener(ClickType.LEFT, this::invite, RankPermission.INVITE);
|
||||
|
||||
int slot = 9;
|
||||
for (int i = paginator.getMinIndex(); paginator.isValidIndex(i); i++) {
|
||||
if (price != 0) {
|
||||
String formattedPrice = CurrencyFormat.format(price);
|
||||
builder.withLoreKey("gui.invite.player.price.lore", p -> formattedPrice);
|
||||
}
|
||||
builder.withLoreKey("gui.invite.player.lore")
|
||||
;
|
||||
|
||||
Player player = players.get(i);
|
||||
SCComponent c = createPlayerComponent(player, slot);
|
||||
add(c);
|
||||
slot++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private SCComponent createPlayerComponent(@NotNull Player player, int slot) {
|
||||
double price = plugin.getSettingsManager().is(ECONOMY_PURCHASE_CLAN_INVITE) ? plugin.getSettingsManager().getDouble(ECONOMY_INVITE_PRICE) : 0;
|
||||
List<String> lore = new ArrayList<>();
|
||||
if (price != 0) lore.add(lang("gui.invite.player.price.lore", getViewer(), CurrencyFormat.format(price)));
|
||||
lore.add(lang("gui.invite.player.lore", getViewer()));
|
||||
private Runnable invite(Player player) {
|
||||
return () -> InventoryController.runSubcommand(getViewer(), "invite", false, player.getName());
|
||||
}
|
||||
|
||||
SCComponent c = new SCComponentImpl(
|
||||
lang("gui.invite.player.title", getViewer(), player.getName()), lore, XMaterial.PLAYER_HEAD, slot);
|
||||
OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(player.getUniqueId());
|
||||
Components.setOwningPlayer(c.getItem(), offlinePlayer);
|
||||
c.setListener(ClickType.LEFT, () -> InventoryController.runSubcommand(getViewer(), "invite", false, player.getName()));
|
||||
c.setPermission(ClickType.LEFT, RankPermission.INVITE);
|
||||
return c;
|
||||
}
|
||||
@Override
|
||||
public Paginator<Player> getPaginator() {
|
||||
return paginator;
|
||||
}
|
||||
|
||||
public void addHeader() {
|
||||
for (int slot = 0; slot < 9; slot++) {
|
||||
if (slot == 2 || slot == 6 || slot == 7)
|
||||
continue;
|
||||
add(Components.getPanelComponent(slot));
|
||||
}
|
||||
add(Components.getBackComponent(getParent(), 2, getViewer()));
|
||||
@Override
|
||||
public @NotNull String getTitle() {
|
||||
return lang("gui.invite.title", getViewer());
|
||||
}
|
||||
|
||||
add(Components.getPreviousPageComponent(6, this::previousPage, paginator, getViewer()));
|
||||
add(Components.getNextPageComponent(7, this::nextPage, paginator, getViewer()));
|
||||
}
|
||||
|
||||
private void previousPage() {
|
||||
if (paginator.previousPage()) {
|
||||
updateFrame();
|
||||
}
|
||||
}
|
||||
|
||||
private void nextPage() {
|
||||
if (paginator.nextPage()) {
|
||||
updateFrame();
|
||||
}
|
||||
}
|
||||
|
||||
private void updateFrame() {
|
||||
InventoryDrawer.open(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getTitle() {
|
||||
return lang("gui.invite.title",getViewer());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSize() {
|
||||
return 3 * 9;
|
||||
}
|
||||
}
|
||||
+31
-65
@@ -1,38 +1,32 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.ui.frames;
|
||||
|
||||
import com.cryptomorin.xseries.XMaterial;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ClanPlayer;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.language.LanguageResource;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.InventoryDrawer;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.SCComponent;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.SCComponentImpl;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.SCFrame;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.*;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.utils.Paginator;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
|
||||
public class LanguageSelectorFrame extends SCFrame {
|
||||
public class LanguageSelectorFrame extends PageableFrame<Locale> {
|
||||
|
||||
private final ClanPlayer clanPlayer;
|
||||
private final SimpleClans plugin;
|
||||
private final Paginator paginator;
|
||||
private final List<Locale> languages;
|
||||
private final Paginator<Locale> paginator;
|
||||
|
||||
public LanguageSelectorFrame(@Nullable SCFrame parent, @NotNull Player viewer) {
|
||||
super(parent, viewer);
|
||||
plugin = SimpleClans.getInstance();
|
||||
clanPlayer = plugin.getClanManager().getCreateClanPlayer(viewer.getUniqueId());
|
||||
languages = LanguageResource.getAvailableLocales();
|
||||
paginator = new Paginator(getSize() - 9, languages);
|
||||
List<Locale> languages = LanguageResource.getAvailableLocales();
|
||||
paginator = new Paginator<>(getPageSize(), languages);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -44,44 +38,38 @@ public class LanguageSelectorFrame extends SCFrame {
|
||||
return lang("gui.languageselector.title", getViewer(), locale.toLanguageTag());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSize() {
|
||||
return 3 * 9;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void createComponents() {
|
||||
addHeader();
|
||||
int slot = 9;
|
||||
for (int i = paginator.getMinIndex(); paginator.isValidIndex(i); i++) {
|
||||
Locale locale = languages.get(i);
|
||||
addLanguage(slot, locale);
|
||||
slot++;
|
||||
}
|
||||
super.createComponents();
|
||||
List<SCComponent> list = new SCComponentImpl.ListBuilder<>(getConfig(), "list", paginator.getCurrentElements())
|
||||
.withViewer(getViewer())
|
||||
.withDisplayNameKey("gui.languageselector.language.title",
|
||||
loc -> loc.toLanguageTag().replace("-", "_"))
|
||||
.withLoreKey("gui.languageselector.language.lore.left.click")
|
||||
.withLoreKey("gui.languageselector.language.lore.translation.status", LanguageResource::getTranslationStatus)
|
||||
.withLoreLine(loc -> !loc.equals(Locale.ENGLISH)
|
||||
? lang("gui.languageselector.language.lore.right.click", getViewer()) : "")
|
||||
.withListener(ClickType.LEFT, this::setLocale, (String) null)
|
||||
.withListener(ClickType.RIGHT, this::translate, (String) null).build();
|
||||
addAll(list);
|
||||
|
||||
}
|
||||
|
||||
private void addLanguage(int slot, Locale locale) {
|
||||
SCComponent c = new SCComponentImpl.Builder(XMaterial.PAPER)
|
||||
.withDisplayName(lang("gui.languageselector.language.title", getViewer(), locale.toLanguageTag().replace("-", "_")))
|
||||
.withSlot(slot).withLore(
|
||||
Arrays.asList(lang("gui.languageselector.language.lore.left.click", getViewer()),
|
||||
lang("gui.languageselector.language.lore.translation.status", getViewer(),
|
||||
LanguageResource.getTranslationStatus(locale)),
|
||||
!locale.equals(Locale.ENGLISH) ?
|
||||
lang("gui.languageselector.language.lore.right.click", getViewer()) : ""))
|
||||
.build();
|
||||
c.setListener(ClickType.LEFT, () -> {
|
||||
private Runnable setLocale(Locale locale) {
|
||||
return () -> {
|
||||
clanPlayer.setLocale(locale);
|
||||
plugin.getStorageManager().updateClanPlayer(clanPlayer);
|
||||
InventoryDrawer.open(this);
|
||||
});
|
||||
if (!locale.equals(Locale.ENGLISH)) {
|
||||
c.setListener(ClickType.RIGHT, () -> {
|
||||
};
|
||||
}
|
||||
|
||||
private Runnable translate(Locale locale) {
|
||||
return () -> {
|
||||
if (!locale.equals(Locale.ENGLISH)) {
|
||||
getViewer().sendMessage(lang("click.to.help.translating", getViewer(), getCrowdinLink(locale)));
|
||||
getViewer().closeInventory();
|
||||
});
|
||||
}
|
||||
add(c);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private String getCrowdinLink(@NotNull Locale locale) {
|
||||
@@ -97,31 +85,9 @@ public class LanguageSelectorFrame extends SCFrame {
|
||||
return base + locale.toLanguageTag();
|
||||
}
|
||||
|
||||
public void addHeader() {
|
||||
for (int slot = 0; slot < 9; slot++) {
|
||||
if (slot == 2 || slot == 6 || slot == 7)
|
||||
continue;
|
||||
add(Components.getPanelComponent(slot));
|
||||
}
|
||||
add(Components.getBackComponent(getParent(), 2, getViewer()));
|
||||
|
||||
add(Components.getPreviousPageComponent(6, this::previousPage, paginator, getViewer()));
|
||||
add(Components.getNextPageComponent(7, this::nextPage, paginator, getViewer()));
|
||||
@Override
|
||||
public Paginator<Locale> getPaginator() {
|
||||
return paginator;
|
||||
}
|
||||
|
||||
private void previousPage() {
|
||||
if (paginator.previousPage()) {
|
||||
updateFrame();
|
||||
}
|
||||
}
|
||||
|
||||
private void nextPage() {
|
||||
if (paginator.nextPage()) {
|
||||
updateFrame();
|
||||
}
|
||||
}
|
||||
|
||||
private void updateFrame() {
|
||||
InventoryDrawer.open(this);
|
||||
}
|
||||
}
|
||||
+25
-55
@@ -1,30 +1,28 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.ui.frames;
|
||||
|
||||
import com.cryptomorin.xseries.XMaterial;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ClanPlayer;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.InventoryDrawer;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.PageableFrame;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.SCComponent;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.SCComponentImpl;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.SCComponentImpl.ListBuilder;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.SCFrame;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.utils.KDRFormat;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.utils.Paginator;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.utils.RankingNumberResolver;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
|
||||
public class LeaderboardFrame extends SCFrame {
|
||||
public class LeaderboardFrame extends PageableFrame<ClanPlayer> {
|
||||
|
||||
private final Paginator paginator;
|
||||
private final Paginator<ClanPlayer> paginator;
|
||||
private final List<ClanPlayer> clanPlayers;
|
||||
private final RankingNumberResolver<ClanPlayer, BigDecimal> rankingResolver;
|
||||
|
||||
@@ -36,58 +34,35 @@ public class LeaderboardFrame extends SCFrame {
|
||||
|
||||
rankingResolver = new RankingNumberResolver<>(clanPlayers, c -> KDRFormat.toBigDecimal(c.getKDR()), false,
|
||||
plugin.getSettingsManager().getRankingType());
|
||||
paginator = new Paginator(getSize() - 9, this.clanPlayers);
|
||||
paginator = new Paginator<>(getPageSize(), this.clanPlayers);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void createComponents() {
|
||||
for (int slot = 0; slot < 9; slot++) {
|
||||
if (slot == 2 || slot == 6 || slot == 7)
|
||||
continue;
|
||||
add(Components.getPanelComponent(slot));
|
||||
}
|
||||
add(Components.getBackComponent(getParent(), 2, getViewer()));
|
||||
|
||||
add(Components.getPreviousPageComponent(6, this::previousPage, paginator, getViewer()));
|
||||
add(Components.getNextPageComponent(7, this::nextPage, paginator, getViewer()));
|
||||
|
||||
int slot = 9;
|
||||
for (int i = paginator.getMinIndex(); paginator.isValidIndex(i); i++) {
|
||||
ClanPlayer cp = clanPlayers.get(i);
|
||||
SCComponent c = new SCComponentImpl(
|
||||
lang("gui.leaderboard.player.title", getViewer(),
|
||||
rankingResolver.getRankingNumber(cp), cp.getName()),
|
||||
Arrays.asList(
|
||||
cp.getClan() == null ? lang("gui.playerdetails.player.lore.noclan", getViewer())
|
||||
: lang("gui.playerdetails.player.lore.clan", getViewer(),
|
||||
cp.getClan().getColorTag(), cp.getClan().getName()),
|
||||
lang("gui.playerdetails.player.lore.kdr", getViewer(), KDRFormat.format(cp.getKDR())),
|
||||
lang("gui.playerdetails.player.lore.last.seen", getViewer(), cp.getLastSeenString(getViewer()))),
|
||||
XMaterial.PLAYER_HEAD, slot);
|
||||
OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(cp.getUniqueId());
|
||||
Components.setOwningPlayer(c.getItem(), offlinePlayer);
|
||||
c.setListener(ClickType.LEFT,
|
||||
() -> InventoryDrawer.open(new PlayerDetailsFrame(getViewer(), this, offlinePlayer)));
|
||||
c.setLorePermission("simpleclans.anyone.leaderboard");
|
||||
add(c);
|
||||
slot++;
|
||||
}
|
||||
super.createComponents();
|
||||
List<SCComponent> list = new ListBuilder<>(getConfig(), "list", paginator.getCurrentElements())
|
||||
.withViewer(getViewer())
|
||||
.withDisplayNameKey("gui.leaderboard.player.title", rankingResolver::getRankingNumber, ClanPlayer::getName)
|
||||
.withListener(ClickType.LEFT, this::openDetails, (String) null)
|
||||
.withLorePermission("simpleclans.anyone.leaderboard")
|
||||
.withLoreLine(cp ->
|
||||
cp.getClan() == null ? lang("gui.playerdetails.player.lore.noclan", getViewer())
|
||||
: lang("gui.playerdetails.player.lore.clan", getViewer()
|
||||
))
|
||||
.withLoreKey("gui.playerdetails.player.lore.kdr", cp -> KDRFormat.format(cp.getKDR()))
|
||||
.withLoreKey("gui.playerdetails.player.lore.last.seen", cp -> cp.getLastSeenString(getViewer()))
|
||||
.withOwningPlayer(cp -> Bukkit.getOfflinePlayer(cp.getUniqueId())).build();
|
||||
addAll(list);
|
||||
}
|
||||
|
||||
private void previousPage() {
|
||||
if (paginator.previousPage()) {
|
||||
updateFrame();
|
||||
}
|
||||
private Runnable openDetails(ClanPlayer cp) {
|
||||
return () -> InventoryDrawer.open(new PlayerDetailsFrame(getViewer(), this,
|
||||
Bukkit.getOfflinePlayer(cp.getUniqueId())));
|
||||
}
|
||||
|
||||
private void nextPage() {
|
||||
if (paginator.nextPage()) {
|
||||
updateFrame();
|
||||
}
|
||||
}
|
||||
|
||||
private void updateFrame() {
|
||||
InventoryDrawer.open(this);
|
||||
@Override
|
||||
public Paginator<ClanPlayer> getPaginator() {
|
||||
return paginator;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -95,9 +70,4 @@ public class LeaderboardFrame extends SCFrame {
|
||||
return lang("gui.leaderboard.title", getViewer(), clanPlayers.size());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSize() {
|
||||
return 6 * 9;
|
||||
}
|
||||
|
||||
}
|
||||
+40
-66
@@ -1,6 +1,5 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.ui.frames;
|
||||
|
||||
import com.cryptomorin.xseries.XMaterial;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Rank;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.*;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.utils.Paginator;
|
||||
@@ -8,80 +7,55 @@ import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
|
||||
public class PermissionsFrame extends SCFrame {
|
||||
private final Rank rank;
|
||||
private final Paginator paginator;
|
||||
private final String[] permissions;
|
||||
public class PermissionsFrame extends PageableFrame<String> {
|
||||
private final Rank rank;
|
||||
private final Paginator<String> paginator;
|
||||
|
||||
public PermissionsFrame(SCFrame parent, Player viewer, Rank rank) {
|
||||
super(parent, viewer);
|
||||
this.rank = rank;
|
||||
permissions = rank.getPermissions().toArray(new String[0]);
|
||||
paginator = new Paginator(getSize() - 9, permissions.length);
|
||||
}
|
||||
public PermissionsFrame(SCFrame parent, Player viewer, Rank rank) {
|
||||
super(parent, viewer);
|
||||
this.rank = rank;
|
||||
paginator = new Paginator<>(getPageSize(), new ArrayList<>(rank.getPermissions()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void createComponents() {
|
||||
for (int slot = 0; slot < 9; slot++) {
|
||||
if (slot == 2 || slot == 4 || slot == 6 || slot == 7)
|
||||
continue;
|
||||
add(Components.getPanelComponent(slot));
|
||||
}
|
||||
@Override
|
||||
public void createComponents() {
|
||||
super.createComponents();
|
||||
|
||||
add(Components.getBackComponent(getParent(), 2, getViewer()));
|
||||
SCComponent add = new SCComponentImpl.Builder(getConfig(), "add")
|
||||
.withViewer(getViewer())
|
||||
.withDisplayNameKey("gui.permissions.add.title")
|
||||
.build();
|
||||
add.setListener(ClickType.LEFT, () -> InventoryDrawer.open(new AddPermissionFrame(this, getViewer(), rank)));
|
||||
add.setPermission(ClickType.LEFT, "simpleclans.leader.rank.permissions.add");
|
||||
add(add);
|
||||
|
||||
SCComponent add = new SCComponentImpl(lang("gui.permissions.add.title",getViewer()), null, XMaterial.WHITE_WOOL,
|
||||
4);
|
||||
add.setListener(ClickType.LEFT, () -> InventoryDrawer.open(new AddPermissionFrame(this, getViewer(), rank)));
|
||||
add.setPermission(ClickType.LEFT, "simpleclans.leader.rank.permissions.add");
|
||||
add(add);
|
||||
List<SCComponent> list = new SCComponentImpl.ListBuilder<>(getConfig(), "list", paginator.getCurrentElements())
|
||||
.withViewer(getViewer())
|
||||
.withDisplayNameKey("gui.permissions.permission.title", p -> p)
|
||||
.withLoreKey("gui.permissions.permission.lore")
|
||||
.withListener(ClickType.RIGHT, this::removePermission, "simpleclans.leader.rank.permissions.remove")
|
||||
.build();
|
||||
addAll(list);
|
||||
}
|
||||
|
||||
add(Components.getPreviousPageComponent(6, this::previousPage, paginator, getViewer()));
|
||||
add(Components.getNextPageComponent(7, this::nextPage, paginator, getViewer()));
|
||||
private Runnable removePermission(String permission) {
|
||||
return () -> InventoryController.runSubcommand(getViewer(),
|
||||
"rank permissions remove", true, rank.getName(), permission);
|
||||
}
|
||||
|
||||
int slot = 9;
|
||||
for (int i = paginator.getMinIndex(); paginator.isValidIndex(i); i++) {
|
||||
@Override
|
||||
public Paginator<String> getPaginator() {
|
||||
return paginator;
|
||||
}
|
||||
|
||||
String permission = permissions[i];
|
||||
|
||||
SCComponent c = new SCComponentImpl(lang("gui.permissions.permission.title",getViewer(), permission),
|
||||
Collections.singletonList(lang("gui.permissions.permission.lore",getViewer())), XMaterial.PAPER, slot);
|
||||
c.setListener(ClickType.RIGHT, () -> InventoryController.runSubcommand(getViewer(),
|
||||
"rank permissions remove", true, rank.getName(), permission));
|
||||
c.setPermission(ClickType.RIGHT, "simpleclans.leader.rank.permissions.remove");
|
||||
add(c);
|
||||
slot++;
|
||||
}
|
||||
}
|
||||
|
||||
private void previousPage() {
|
||||
if (paginator.previousPage()) {
|
||||
updateFrame();
|
||||
}
|
||||
}
|
||||
|
||||
private void nextPage() {
|
||||
if (paginator.nextPage()) {
|
||||
updateFrame();
|
||||
}
|
||||
}
|
||||
|
||||
private void updateFrame() {
|
||||
InventoryDrawer.open(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getTitle() {
|
||||
return lang("gui.permissions.title",getViewer(), rank.getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSize() {
|
||||
return 3 * 9;
|
||||
}
|
||||
@Override
|
||||
public @NotNull String getTitle() {
|
||||
return lang("gui.permissions.title", getViewer(), rank.getName());
|
||||
}
|
||||
|
||||
}
|
||||
+19
-35
@@ -1,10 +1,8 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.ui.frames.staff;
|
||||
|
||||
import com.cryptomorin.xseries.XMaterial;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.managers.SettingsManager;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.*;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.frames.Components;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -25,20 +23,9 @@ public class StaffFrame extends SCFrame {
|
||||
return lang("gui.staff.title", getViewer());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSize() {
|
||||
return 3 * 9;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void createComponents() {
|
||||
for (int slot = 0; slot < 9; slot++) {
|
||||
if (slot == 4)
|
||||
continue;
|
||||
add(Components.getPanelComponent(slot));
|
||||
}
|
||||
|
||||
add(Components.getBackComponent(getParent(), 4, getViewer()));
|
||||
super.createComponents();
|
||||
addClans();
|
||||
addPlayers();
|
||||
addGlobalFf();
|
||||
@@ -46,10 +33,11 @@ public class StaffFrame extends SCFrame {
|
||||
}
|
||||
|
||||
private void addClans() {
|
||||
SCComponent clanList = new SCComponentImpl.Builder(XMaterial.PURPLE_BANNER)
|
||||
.withDisplayName(lang("gui.main.clan.list.title", getViewer())).withSlot(9)
|
||||
.withLoreLine(lang("gui.staff.clan.list.lore.left.click", getViewer()))
|
||||
.withLoreLine(lang("gui.staff.clan.list.lore.right.click", getViewer())).build();
|
||||
SCComponent clanList = new SCComponentImpl.Builder(getConfig(), "clans")
|
||||
.withViewer(getViewer())
|
||||
.withDisplayNameKey("gui.main.clan.list.title")
|
||||
.withLoreKey("gui.staff.clan.list.lore.left.click")
|
||||
.withLoreKey("gui.staff.clan.list.lore.right.click").build();
|
||||
clanList.setListener(ClickType.LEFT, () -> InventoryDrawer.open(new ClanListFrame(this, getViewer(),
|
||||
Type.ALL, null)));
|
||||
clanList.setListener(ClickType.RIGHT, () -> InventoryDrawer.open(new ClanListFrame(this, getViewer(),
|
||||
@@ -58,19 +46,19 @@ public class StaffFrame extends SCFrame {
|
||||
}
|
||||
|
||||
private void addPlayers() {
|
||||
SCComponent players = new SCComponentImpl.Builder(XMaterial.WHITE_BANNER)
|
||||
.withDisplayName(lang("gui.staff.player.list.title", getViewer())).withSlot(10)
|
||||
.withLoreLine(lang("gui.staff.player.list.lore.left.click", getViewer()))
|
||||
.withLoreLine(lang("gui.staff.player.list.lore.right.click", getViewer())).build();
|
||||
SCComponent players = new SCComponentImpl.Builder(getConfig(), "players")
|
||||
.withViewer(getViewer())
|
||||
.withDisplayNameKey("gui.staff.player.list.title")
|
||||
.withLoreKey("gui.staff.player.list.lore.left.click")
|
||||
.withLoreKey("gui.staff.player.list.lore.right.click").build();
|
||||
players.setListener(ClickType.LEFT, () -> InventoryDrawer.open(new PlayerListFrame(getViewer(), this, false)));
|
||||
players.setListener(ClickType.RIGHT, () -> InventoryDrawer.open(new PlayerListFrame(getViewer(), this, true)));
|
||||
add(players);
|
||||
}
|
||||
|
||||
private void addReload() {
|
||||
SCComponent reload = new SCComponentImpl.Builder(XMaterial.SPAWNER)
|
||||
.withDisplayName(lang("gui.staff.reload.title", getViewer())).withSlot(17)
|
||||
.withLoreLine(lang("gui.staff.reload.lore", getViewer())).build();
|
||||
SCComponent reload = new SCComponentImpl.Builder(getConfig(), "reload").withViewer(getViewer())
|
||||
.withDisplayNameKey("gui.staff.reload.title").withLoreKey("gui.staff.reload.lore").build();
|
||||
reload.setPermission(ClickType.LEFT, "simpleclans.admin.reload");
|
||||
reload.setConfirmationRequired(ClickType.LEFT);
|
||||
reload.setListener(ClickType.LEFT, () ->
|
||||
@@ -82,18 +70,14 @@ public class StaffFrame extends SCFrame {
|
||||
SettingsManager sm = SimpleClans.getInstance().getSettingsManager();
|
||||
boolean globalffAllowed = sm.is(GLOBAL_FRIENDLY_FIRE);
|
||||
String status = globalffAllowed ? lang("allowed", getViewer()) : lang("auto", getViewer());
|
||||
SCComponent globalFf = new SCComponentImpl.Builder(XMaterial.DIAMOND_SWORD).withSlot(12)
|
||||
.withDisplayName(lang("gui.staff.global.ff.title", getViewer()))
|
||||
.withLoreLine(lang("gui.staff.global.ff.lore.status", getViewer(), status))
|
||||
.withLoreLine(lang("gui.staff.global.ff.lore.toggle", getViewer())).build();
|
||||
|
||||
SCComponent globalFf = new SCComponentImpl.Builder(getConfig(), "global_ff").withViewer(getViewer())
|
||||
.withDisplayNameKey("gui.staff.global.ff.title")
|
||||
.withLoreKey("gui.staff.global.ff.lore.status", status)
|
||||
.withLoreKey("gui.staff.global.ff.lore.toggle").build();
|
||||
globalFf.setPermission(ClickType.LEFT, "simpleclans.mod.globalff");
|
||||
globalFf.setListener(ClickType.LEFT, () -> {
|
||||
String arg;
|
||||
if (globalffAllowed) {
|
||||
arg = "auto";
|
||||
} else {
|
||||
arg = "allow";
|
||||
}
|
||||
String arg = globalffAllowed ? "auto" : "allow";
|
||||
InventoryController.runSubcommand(getViewer(), "mod globalff", true, arg);
|
||||
});
|
||||
add(globalFf);
|
||||
|
||||
@@ -2,19 +2,21 @@ package net.sacredlabyrinth.phaed.simpleclans.utils;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author RoinujNosde
|
||||
*
|
||||
*/
|
||||
public class Paginator {
|
||||
public class Paginator<T> {
|
||||
|
||||
private int currentPage;
|
||||
private final int sizePerPage;
|
||||
private int totalElements;
|
||||
private Collection<?> collection;
|
||||
private List<T> collection;
|
||||
|
||||
public Paginator(int sizePerPage, int totalElements) {
|
||||
if (sizePerPage < 1) {
|
||||
@@ -27,12 +29,17 @@ public class Paginator {
|
||||
this.totalElements = totalElements;
|
||||
}
|
||||
|
||||
public Paginator(int sizePerPage, @NotNull Collection<?> collection) {
|
||||
@Deprecated
|
||||
public Paginator(int sizePerPage, @NotNull Collection<T> collection) {
|
||||
this(sizePerPage, new ArrayList<>(collection));
|
||||
}
|
||||
|
||||
public Paginator(int sizePerPage, @NotNull List<T> list) {
|
||||
if (sizePerPage < 1) {
|
||||
throw new IllegalArgumentException("sizePerPage cannot be less than 1");
|
||||
}
|
||||
this.sizePerPage = sizePerPage;
|
||||
this.collection = collection;
|
||||
this.collection = list;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -81,7 +88,21 @@ public class Paginator {
|
||||
public int getCurrentPage() {
|
||||
return currentPage;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @return the elements in the current page
|
||||
*
|
||||
* @throws IllegalStateException if the underlining collection is null
|
||||
*/
|
||||
public @NotNull List<T> getCurrentElements() throws IllegalStateException {
|
||||
if (collection == null) {
|
||||
throw new IllegalStateException("the collection is null");
|
||||
}
|
||||
int maxIndex = Math.min(getMaxIndex(), collection.size());
|
||||
return collection.subList(getMinIndex(), maxIndex);
|
||||
}
|
||||
|
||||
/**
|
||||
* Increases the page number if there are elements to display
|
||||
*
|
||||
@@ -90,11 +111,11 @@ public class Paginator {
|
||||
* </p>
|
||||
*/
|
||||
public boolean nextPage() {
|
||||
if (!hasNextPage()) {
|
||||
return false;
|
||||
boolean hasNext = hasNextPage();
|
||||
if (hasNext) {
|
||||
currentPage++;
|
||||
}
|
||||
currentPage++;
|
||||
return true;
|
||||
return hasNext;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -112,11 +133,11 @@ public class Paginator {
|
||||
* </p>
|
||||
*/
|
||||
public boolean previousPage() {
|
||||
if (hasPreviousPage()) {
|
||||
boolean hasPrevious = hasPreviousPage();
|
||||
if (hasPrevious) {
|
||||
currentPage--;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
return hasPrevious;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -138,13 +138,9 @@ public final class UUIDFetcher {
|
||||
|
||||
private static @Nullable UUID fetchUUID(@NotNull URL url) throws IOException {
|
||||
HttpURLConnection connection = createConnection(url);
|
||||
int responseCode = connection.getResponseCode();
|
||||
if (responseCode == HttpURLConnection.HTTP_NOT_FOUND) {
|
||||
return null;
|
||||
}
|
||||
if (responseCode != HttpURLConnection.HTTP_OK) {
|
||||
if (connection.getResponseCode() != HttpURLConnection.HTTP_OK) {
|
||||
throw new IOException(String.format("Unexpected response code: %d. Response: %s",
|
||||
responseCode, connection.getResponseMessage()));
|
||||
connection.getResponseCode(), connection.getResponseMessage()));
|
||||
}
|
||||
|
||||
JsonObject response = gson.fromJson(new InputStreamReader(connection.getInputStream(), UTF_8), JsonObject.class);
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
rows: 6
|
||||
components:
|
||||
list:
|
||||
enabled: true
|
||||
slots: [ 9, 10, 11, 12, 13, 14, 15, 16, 17,
|
||||
18, 19, 20, 21, 22, 23, 24, 25, 26,
|
||||
27, 28, 29, 30, 31, 32, 33, 34, 35,
|
||||
36, 37, 38, 39, 40, 41, 42, 43, 44,
|
||||
45, 46, 47, 48, 49, 50, 51, 52, 53 ]
|
||||
material: CYAN_BANNER
|
||||
next_page:
|
||||
enabled: true
|
||||
slot: 7
|
||||
material: STONE_BUTTON
|
||||
previous_page:
|
||||
enabled: true
|
||||
slot: 6
|
||||
material: STONE_BUTTON
|
||||
back:
|
||||
enabled: true
|
||||
slot: 2
|
||||
material: ARROW
|
||||
decorations:
|
||||
panels:
|
||||
enabled: true
|
||||
slots: [ 0, 1, 3, 4, 5, 8 ]
|
||||
material: GRAY_STAINED_GLASS_PANE
|
||||
@@ -0,0 +1,24 @@
|
||||
rows: 3
|
||||
components:
|
||||
list:
|
||||
enabled: true
|
||||
slots: [ 9, 10, 11, 12, 13, 14, 15, 16, 17,
|
||||
18, 19, 20, 21, 22, 23, 24, 25, 26 ]
|
||||
material: PAPER
|
||||
next_page:
|
||||
enabled: true
|
||||
slot: 7
|
||||
material: STONE_BUTTON
|
||||
previous_page:
|
||||
enabled: true
|
||||
slot: 6
|
||||
material: STONE_BUTTON
|
||||
back:
|
||||
enabled: true
|
||||
slot: 2
|
||||
material: ARROW
|
||||
decorations:
|
||||
panels:
|
||||
enabled: true
|
||||
slots: [ 0, 1, 3, 4, 5, 8 ]
|
||||
material: GRAY_STAINED_GLASS_PANE
|
||||
@@ -0,0 +1,27 @@
|
||||
rows: 6
|
||||
components:
|
||||
list:
|
||||
enabled: true
|
||||
slots: [ 9, 10, 11, 12, 13, 14, 15, 16, 17,
|
||||
18, 19, 20, 21, 22, 23, 24, 25, 26,
|
||||
27, 28, 29, 30, 31, 32, 33, 34, 35,
|
||||
36, 37, 38, 39, 40, 41, 42, 43, 44,
|
||||
45, 46, 47, 48, 49, 50, 51, 52, 53 ]
|
||||
material: RED_BANNER
|
||||
next_page:
|
||||
enabled: true
|
||||
slot: 7
|
||||
material: STONE_BUTTON
|
||||
previous_page:
|
||||
enabled: true
|
||||
slot: 6
|
||||
material: STONE_BUTTON
|
||||
back:
|
||||
enabled: true
|
||||
slot: 2
|
||||
material: ARROW
|
||||
decorations:
|
||||
panels:
|
||||
enabled: true
|
||||
slots: [ 0, 1, 3, 4, 5, 8 ]
|
||||
material: GRAY_STAINED_GLASS_PANE
|
||||
@@ -0,0 +1,31 @@
|
||||
rows: 6
|
||||
components:
|
||||
list:
|
||||
enabled: true
|
||||
slots: [ 9, 10, 11, 12, 13, 14, 15, 16, 17,
|
||||
18, 19, 20, 21, 22, 23, 24, 25, 26,
|
||||
27, 28, 29, 30, 31, 32, 33, 34, 35,
|
||||
36, 37, 38, 39, 40, 41, 42, 43, 44,
|
||||
45, 46, 47, 48, 49, 50, 51, 52, 53 ]
|
||||
material: CYAN_BANNER
|
||||
next_page:
|
||||
enabled: true
|
||||
slot: 7
|
||||
material: STONE_BUTTON
|
||||
previous_page:
|
||||
enabled: true
|
||||
slot: 6
|
||||
material: STONE_BUTTON
|
||||
back:
|
||||
enabled: true
|
||||
slot: 2
|
||||
material: ARROW
|
||||
add:
|
||||
enabled: true
|
||||
slot: 4
|
||||
material: CYAN_WOOL
|
||||
decorations:
|
||||
panels:
|
||||
enabled: true
|
||||
slots: [ 0, 1, 3, 5, 8 ]
|
||||
material: GRAY_STAINED_GLASS_PANE
|
||||
@@ -0,0 +1,27 @@
|
||||
rows: 6
|
||||
components:
|
||||
list:
|
||||
slots: [ 9, 10, 11, 12, 13, 14, 15, 16, 17,
|
||||
18, 19, 20, 21, 22, 23, 24, 25, 26,
|
||||
27, 28, 29, 30, 31, 32, 33, 34, 35,
|
||||
36, 37, 38, 39, 40, 41, 42, 43, 44,
|
||||
45, 46, 47, 48, 49, 50, 51, 52, 53 ]
|
||||
material: BLACK_BANNER
|
||||
enabled: true
|
||||
next_page:
|
||||
enabled: true
|
||||
slot: 7
|
||||
material: STONE_BUTTON
|
||||
previous_page:
|
||||
enabled: true
|
||||
slot: 6
|
||||
material: STONE_BUTTON
|
||||
back:
|
||||
enabled: true
|
||||
slot: 2
|
||||
material: ARROW
|
||||
decorations:
|
||||
panels:
|
||||
slots: [0, 1, 3, 4, 5, 8]
|
||||
enabled: true
|
||||
material: GRAY_STAINED_GLASS_PANE
|
||||
@@ -0,0 +1,31 @@
|
||||
rows: 6
|
||||
components:
|
||||
list:
|
||||
enabled: true
|
||||
slots: [ 9, 10, 11, 12, 13, 14, 15, 16, 17,
|
||||
18, 19, 20, 21, 22, 23, 24, 25, 26,
|
||||
27, 28, 29, 30, 31, 32, 33, 34, 35,
|
||||
36, 37, 38, 39, 40, 41, 42, 43, 44,
|
||||
45, 46, 47, 48, 49, 50, 51, 52, 53 ]
|
||||
material: PLAYER_HEAD
|
||||
next_page:
|
||||
enabled: true
|
||||
slot: 7
|
||||
material: STONE_BUTTON
|
||||
previous_page:
|
||||
enabled: true
|
||||
slot: 6
|
||||
material: STONE_BUTTON
|
||||
back:
|
||||
enabled: true
|
||||
slot: 2
|
||||
material: ARROW
|
||||
add:
|
||||
enabled: true
|
||||
slot: 4
|
||||
material: CYAN_WOOL
|
||||
decorations:
|
||||
panels:
|
||||
enabled: true
|
||||
slots: [ 0, 1, 3, 5, 8 ]
|
||||
material: GRAY_STAINED_GLASS_PANE
|
||||
@@ -0,0 +1,28 @@
|
||||
rows: 3
|
||||
components:
|
||||
list:
|
||||
enabled: true
|
||||
slots: [ 9, 10, 11, 12, 13, 14, 15, 16, 17,
|
||||
18, 19, 20, 21, 22, 23, 24, 25, 26 ]
|
||||
material: PLAYER_HEAD
|
||||
next_page:
|
||||
enabled: true
|
||||
slot: 7
|
||||
material: STONE_BUTTON
|
||||
previous_page:
|
||||
enabled: true
|
||||
slot: 6
|
||||
material: STONE_BUTTON
|
||||
back:
|
||||
enabled: true
|
||||
slot: 2
|
||||
material: ARROW
|
||||
add:
|
||||
enabled: true
|
||||
slot: 4
|
||||
material: CYAN_WOOL
|
||||
decorations:
|
||||
panels:
|
||||
enabled: true
|
||||
slots: [ 0, 1, 3, 5, 8 ]
|
||||
material: GRAY_STAINED_GLASS_PANE
|
||||
@@ -0,0 +1,24 @@
|
||||
rows: 3
|
||||
components:
|
||||
list:
|
||||
enabled: true
|
||||
slots: [ 9, 10, 11, 12, 13, 14, 15, 16, 17,
|
||||
18, 19, 20, 21, 22, 23, 24, 25, 26 ]
|
||||
material: PAPER
|
||||
next_page:
|
||||
enabled: true
|
||||
slot: 7
|
||||
material: STONE_BUTTON
|
||||
previous_page:
|
||||
enabled: true
|
||||
slot: 6
|
||||
material: STONE_BUTTON
|
||||
back:
|
||||
enabled: true
|
||||
slot: 2
|
||||
material: ARROW
|
||||
decorations:
|
||||
panels:
|
||||
enabled: true
|
||||
slots: [ 0, 1, 3, 4, 5, 8 ]
|
||||
material: GRAY_STAINED_GLASS_PANE
|
||||
@@ -0,0 +1,27 @@
|
||||
rows: 6
|
||||
components:
|
||||
list:
|
||||
enabled: true
|
||||
slots: [ 9, 10, 11, 12, 13, 14, 15, 16, 17,
|
||||
18, 19, 20, 21, 22, 23, 24, 25, 26,
|
||||
27, 28, 29, 30, 31, 32, 33, 34, 35,
|
||||
36, 37, 38, 39, 40, 41, 42, 43, 44,
|
||||
45, 46, 47, 48, 49, 50, 51, 52, 53 ]
|
||||
material: PLAYER_HEAD
|
||||
next_page:
|
||||
enabled: true
|
||||
slot: 7
|
||||
material: STONE_BUTTON
|
||||
previous_page:
|
||||
enabled: true
|
||||
slot: 6
|
||||
material: STONE_BUTTON
|
||||
back:
|
||||
enabled: true
|
||||
slot: 2
|
||||
material: ARROW
|
||||
decorations:
|
||||
panels:
|
||||
slots: [0, 1, 3, 4, 5, 8]
|
||||
enabled: true
|
||||
material: GRAY_STAINED_GLASS_PANE
|
||||
@@ -0,0 +1,28 @@
|
||||
rows: 3
|
||||
components:
|
||||
list:
|
||||
enabled: true
|
||||
slots: [ 9, 10, 11, 12, 13, 14, 15, 16, 17,
|
||||
18, 19, 20, 21, 22, 23, 24, 25, 26 ]
|
||||
material: PAPER
|
||||
next_page:
|
||||
enabled: true
|
||||
slot: 7
|
||||
material: STONE_BUTTON
|
||||
previous_page:
|
||||
enabled: true
|
||||
slot: 6
|
||||
material: STONE_BUTTON
|
||||
back:
|
||||
enabled: true
|
||||
slot: 2
|
||||
material: ARROW
|
||||
add:
|
||||
enabled: true
|
||||
slot: 4
|
||||
material: WHITE_WOOL
|
||||
decorations:
|
||||
panels:
|
||||
enabled: true
|
||||
slots: [ 0, 1, 3, 5, 8 ]
|
||||
material: GRAY_STAINED_GLASS_PANE
|
||||
@@ -0,0 +1,27 @@
|
||||
rows: 3
|
||||
components:
|
||||
decorations:
|
||||
panels:
|
||||
enabled: true
|
||||
slots: [ 0, 1, 2, 3, 5, 6, 7, 8 ]
|
||||
material: GRAY_STAINED_GLASS_PANE
|
||||
clans:
|
||||
enabled: true
|
||||
material: PURPLE_BANNER
|
||||
slot: 9
|
||||
players:
|
||||
enabled: true
|
||||
material: WHITE_BANNER
|
||||
slot: 10
|
||||
reload:
|
||||
enabled: true
|
||||
material: SPAWNER
|
||||
slot: 17
|
||||
global_ff:
|
||||
enabled: true
|
||||
material: DIAMOND_SWORD
|
||||
slot: 12
|
||||
back:
|
||||
enabled: true
|
||||
slot: 4
|
||||
material: ARROW
|
||||
@@ -1,7 +1,7 @@
|
||||
description.command=beschreibung
|
||||
create.command=erstellen
|
||||
delete.command=lösche
|
||||
rank.command=Rang
|
||||
rank.command=rang
|
||||
setdisplayname.command=setdisplayname
|
||||
setdefault.command=setdefault
|
||||
removedefault.command=removedefault
|
||||
@@ -11,9 +11,9 @@ balance.command=guthaben
|
||||
list.order.asc=aufsteigend
|
||||
list.order.desc=absteigend
|
||||
list.type.name=Name
|
||||
list.type.kdr=Kill-Death-Ratio
|
||||
list.type.size=Größe
|
||||
list.type.founded=Gegründet
|
||||
list.type.kdr=kdr
|
||||
list.type.size=größe
|
||||
list.type.founded=gegründet
|
||||
list.type.active=aktiv
|
||||
land.command=land
|
||||
break.command=abbauen
|
||||
@@ -94,11 +94,9 @@ help.command=hilfe
|
||||
leave.command=verlassen
|
||||
join.command=beitreten
|
||||
mute.command=stummschalten
|
||||
tag.completion=[tag]
|
||||
name.completion=[name]
|
||||
acf-core.parameter.amount=betrag
|
||||
acf-core.parameter.member=mitglieder
|
||||
acf-core.parameter.rank=Rang
|
||||
acf-core.parameter.rank=rang
|
||||
acf-core.parameter.leader=anführer
|
||||
acf-core.parameter.displayname=angezeigter_name
|
||||
acf-core.parameter.permission=berechtigung
|
||||
@@ -418,7 +416,6 @@ inactive.0=Inaktiv\: {0}
|
||||
clan.commands=clan Befehle
|
||||
you.can.only.modify.the.color.and.case.of.the.tag=Du kannst nur die Farbe und die Gros- / Kleinschreibung dieses Tags ändern
|
||||
locale.has.been.changed=&cDeine Sprache wurde geändert
|
||||
locale.is.prohibited=&cSprachauswahl ist auf dem Server verboten.
|
||||
tag.changed.to.0=Tag geändert zu {0}
|
||||
0.tag.changed.to.1=&bErfolgreich den Tag von {0} zu {1} geändert
|
||||
name.0=Name\: {0}
|
||||
|
||||
@@ -94,8 +94,6 @@ help.command=ayuda
|
||||
leave.command=salir
|
||||
join.command=entrar
|
||||
mute.command=silenciar
|
||||
tag.completion=
|
||||
name.completion=
|
||||
acf-core.parameter.amount=cantidad
|
||||
acf-core.parameter.member=miembro
|
||||
acf-core.parameter.rank=rank
|
||||
@@ -515,7 +513,7 @@ off=off
|
||||
player.rank.changed=El rango se ha asignado
|
||||
your.clans.are.already.rivals=Sus clanes ya son rivales
|
||||
player.got.money=Obtuviste {0} por matar a {1} basado en tu KDR\: {2}
|
||||
cleared.bb=Has limpiado el tablón de anuncios
|
||||
cleared.bb=Has limpieado el tablon de anuncios
|
||||
clan.balance=Balance del Clan\: {0}
|
||||
clan.admin.balance=&8(&cClan&8)&7 El dinero del clan &c{0}&7 es\: &c${1}&7.
|
||||
bb.fee.player.kicked={0} fue expulsado por no pagar la cuota
|
||||
|
||||
@@ -94,8 +94,6 @@ help.command=apu
|
||||
leave.command=poistua
|
||||
join.command=liittyä
|
||||
mute.command=mykistys
|
||||
tag.completion=[tag]
|
||||
name.completion=[name]
|
||||
acf-core.parameter.amount=määrä
|
||||
acf-core.parameter.member=jäsen
|
||||
acf-core.parameter.rank=/rankki
|
||||
@@ -418,7 +416,6 @@ inactive.0=Inaktiivinen\: {0}
|
||||
clan.commands=klaanin komennot
|
||||
you.can.only.modify.the.color.and.case.of.the.tag=Voit ainoastaan muokata tunnisteen väriä ja muotoa
|
||||
locale.has.been.changed=&cKielesi on vaihdettu
|
||||
locale.is.prohibited=&cLanguage valinta palvelimella on kielletty.
|
||||
tag.changed.to.0=Tunniste on nyt {0}
|
||||
0.tag.changed.to.1=&bOnnistuneesti vaihdettu {0}\: n tunniste {1}
|
||||
name.0=Nimi\: {0}
|
||||
|
||||
@@ -94,8 +94,6 @@ help.command=aide
|
||||
leave.command=quitter
|
||||
join.command=rejoindre
|
||||
mute.command=muet
|
||||
tag.completion=[tag]
|
||||
name.completion=[nom]
|
||||
acf-core.parameter.amount=montant
|
||||
acf-core.parameter.member=membre
|
||||
acf-core.parameter.rank=rang
|
||||
@@ -418,7 +416,6 @@ inactive.0=Inactif\: {0}
|
||||
clan.commands=commandes de clan
|
||||
you.can.only.modify.the.color.and.case.of.the.tag=Vous ne pouvez seulement modifier la couleur et le tag
|
||||
locale.has.been.changed=&cVotre langue a été modifiée
|
||||
locale.is.prohibited=&cLa sélection de la langue sur le serveur est interdite.
|
||||
tag.changed.to.0=Tag changé à {0}
|
||||
0.tag.changed.to.1=&bLe tag de {0} a été changé avec succès en {1}
|
||||
name.0=Nom\: {0}
|
||||
|
||||
@@ -1,888 +1,28 @@
|
||||
description.command=
|
||||
create.command=
|
||||
delete.command=
|
||||
rank.command=
|
||||
setdisplayname.command=
|
||||
setdefault.command=
|
||||
removedefault.command=
|
||||
permissions.command=
|
||||
list.command=
|
||||
balance.command=
|
||||
list.order.asc=בסדר עולה
|
||||
list.order.desc=בסדר יורד
|
||||
list.type.name=שם
|
||||
list.type.kdr=יחס הריגות מוות
|
||||
list.type.size=גודל
|
||||
list.type.founded=יוסד
|
||||
list.type.active=פעיל
|
||||
land.command=
|
||||
break.command=
|
||||
interact.command=
|
||||
place_block.command=
|
||||
damage.command=
|
||||
interact_entity.command=
|
||||
container.command=
|
||||
confirm.command=
|
||||
profile.command=
|
||||
roster.command=
|
||||
lookup.command=
|
||||
leaderboard.command=
|
||||
alliances.command=
|
||||
rivalries.command=
|
||||
vitals.command=
|
||||
coords.command=
|
||||
stats.command=
|
||||
ally.command=
|
||||
add.command=
|
||||
remove.command=
|
||||
allow.command=
|
||||
block.command=
|
||||
auto.command=
|
||||
check.command=
|
||||
assign.command=
|
||||
unassign.command=
|
||||
rival.command=
|
||||
bb.command=
|
||||
display.command=
|
||||
clear.command=
|
||||
modtag.command=
|
||||
rename.command=
|
||||
toggle.command=
|
||||
tag.command=
|
||||
deposit.command=
|
||||
all.command=
|
||||
withdraw.command=
|
||||
invite.command=
|
||||
kick.command=
|
||||
bank.command=
|
||||
give.command=
|
||||
take.command=
|
||||
status.command=
|
||||
fee.command=
|
||||
set.command=
|
||||
purge.command=
|
||||
trust.command=
|
||||
untrust.command=
|
||||
admin.command=
|
||||
mod.command=
|
||||
promote.command=
|
||||
demote.command=
|
||||
clanff.command=
|
||||
ff.command=
|
||||
resign.command=
|
||||
disband.command=
|
||||
verify.command=
|
||||
ban.command=
|
||||
unban.command=
|
||||
reload.command=
|
||||
globalff.command=
|
||||
kills.command=
|
||||
mostkilled.command=
|
||||
war.command=
|
||||
start.command=
|
||||
end.command=
|
||||
home.command=
|
||||
regroup.command=
|
||||
me.command=
|
||||
tp.command=
|
||||
setrank.command=
|
||||
place.command=
|
||||
resetkdr.command=
|
||||
everyone.command=
|
||||
setbanner.command=
|
||||
help.command=
|
||||
leave.command=
|
||||
join.command=
|
||||
mute.command=
|
||||
tag.completion=[תג קלאן]
|
||||
name.completion=[שם הקלאן המלא]
|
||||
description.command=תיאור
|
||||
create.command=צור
|
||||
delete.command=למחוק
|
||||
rank.command=דרוג
|
||||
setdisplayname.command=להביא שם
|
||||
permissions.command=הרשאה
|
||||
list.command=רשימה
|
||||
balance.command=יתרה
|
||||
give.command=להביא
|
||||
resign.command=להטפטר
|
||||
reload.command=רענון
|
||||
start.command=התחל
|
||||
leave.command=לעזוב
|
||||
acf-core.parameter.amount=סכום
|
||||
acf-core.parameter.member=חברים
|
||||
acf-core.parameter.rank=
|
||||
acf-core.parameter.leader=מנהיג
|
||||
acf-core.parameter.displayname=שם לתצוגה
|
||||
acf-core.parameter.permission=הרשאה
|
||||
acf-core.parameter.message=הודעה
|
||||
acf-core.parameter.tag=
|
||||
acf-core.parameter.name=שם
|
||||
acf-core.parameter.fee=
|
||||
acf-core.parameter.description=
|
||||
acf-core.parameter.player=שחקן
|
||||
acf-core.parameter.rank=דרוג
|
||||
acf-core.parameter.description=תיאור
|
||||
acf-core.parameter.clan=קלאן
|
||||
acf-core.parameter.type=סוג
|
||||
acf-core.parameter.order=סדר
|
||||
acf-core.parameter.help=עמדו או מילות מפתח
|
||||
command.description.land.allow.all=מאפשר את כל הפעולות בארץ שלך
|
||||
command.description.land.allow.interact_entity=מאפשר לחברי קלאן הידוד עם ישויות בארץ שלך
|
||||
command.description.land.allow.interact=מאפשר לחברי קלאן הידוד בארץ שלך
|
||||
command.description.land.allow.container=מאפשר לחברי קלאן לפתוח מכולות בארץ שלך
|
||||
command.description.land.allow.place=מאפשר לחברי קלאן לשים בלוקים בארץ שלך
|
||||
command.description.land.allow.break=מאפשר לחברי קלאן לשבור בלוקים בארץ שלך
|
||||
command.description.land.allow.damage=מאפשר לחברי קלאן לגרום לדמג' בארץ שלך
|
||||
command.description.land.block.all=חוסם את כל הפעולות בארץ שלך
|
||||
command.description.land.block.interact_entity=חוסם חברי קלאן מביצוע הידוד עם ישויות בארץ שלך
|
||||
command.description.land.block.interact=חוסם חברי קלאן מביצוע הידוד בארץ שלך
|
||||
command.description.land.block.container=חוסם חברי קלאן מלפתוח מכולות בארץ שלך
|
||||
command.description.land.block.place=חוסם חברי קלאן מלשים בלוקים בארץ שלך
|
||||
command.description.land.block.break=חוסם חברי קלאן מלשבור בלוקים בארץ שלך
|
||||
command.description.land.block.damage=חוסם חברי קלאן מלגרום דמג' בשטח הקלאן
|
||||
command.description.stats=מראה את המידע על חברי הקלאן שלך
|
||||
command.description.rivalries=מראה את כל יריבויות הקלאן
|
||||
command.description.mostkilled=מציג בסדר יורד את כמות הקילים בשרת
|
||||
command.description.kills=מראה כמות הריגות שלך או של שחקן אחר
|
||||
command.description.lookup=בודק מידע עליך
|
||||
command.description.lookup.other=בודק מידע על שחקן
|
||||
command.description.leaderboard=מציג את לוח המובילים
|
||||
command.description.roster.other=מציג חברי קלאן מסוים
|
||||
command.description.roster=מציג את חברי הקלאן שלך
|
||||
command.description.profile.other=מראה פרופיל של קלאן אחר
|
||||
command.description.profile=מראה את פרופיל הלקאן שלך
|
||||
command.description.vitals=מראה את האנשים החיוניים בקלאן שלך ובני בריתך
|
||||
command.description.list=מציג את כל הקלאנים
|
||||
command.description.list.balance=מראה את הקלאנים העשירים ביותר
|
||||
command.description.chat=מדבר בצ'אט קלאן
|
||||
command.description.ally=מדבר בצ'אט בריתות
|
||||
command.description.deny=דוחה בקשה
|
||||
command.description.accept=מאשר בקשה
|
||||
command.description.more=מראה מידע נוסף
|
||||
command.description.create=יוצר קלאן
|
||||
command.description.discord.create=יוצר חדר דיסקורד לקלאן שלך
|
||||
command.description.ff.allow=מגדיר אש ידידותית אישית למותרת
|
||||
command.description.ff.auto=מגדיר אש ידידותית אישית לאוטומטית
|
||||
command.description.globalff.allow=מגדיר אש ידיותית גלובלית למותרת
|
||||
command.description.globalff.auto=מגדיר אש ידיותית גלובלית לאוטומטית
|
||||
command.description.clanff.allow=מאשר אש ידידותית בקרב הקלאן שלך
|
||||
command.description.clanff.block=חוסם אש ידידותית בקרב הקלאן שלך
|
||||
command.description.description=הגדרת תיאור לקלאן שלך
|
||||
command.description.ban=חוסם לשחקן גישה לפקודות קלאן
|
||||
command.description.unban=מוריד משחקן חסימת גישה לפקודות קלאן
|
||||
command.description.regroup.me=מקבץ את חברי הקלאן שלך למיקום שלך
|
||||
command.description.regroup.home=מקבץ את חברי הקלאן שלך לבית הקלאן שלך
|
||||
command.description.home.tp=משגר אותך לבית הקלאן שלך
|
||||
command.description.home.clear=מנקה את הבית של הקלאן שלך
|
||||
command.description.home.set=מגדיר בית לקלאן שלך
|
||||
command.description.mod.home.set=מגדיר בית של קלאן
|
||||
command.description.mod.home.tp=משתגר לבית של קלאן
|
||||
command.description.rival.remove=מסיר יריב
|
||||
command.description.rival.add=מוסיף יריב
|
||||
command.description.ally.remove=מסיר יריב
|
||||
command.description.kick=מעיף חבר מהקלאן שלך
|
||||
command.description.bb.display=מציג את לוח המודעות של הקלאן שלך
|
||||
command.description.bb.clear=מוחק את תוכן לוח המודעות של הקלאן שלך
|
||||
command.description.bb.post=מפרסם הודעות בלוח המודעות של הקלאן שלך
|
||||
command.description.mod.bb.display=מציג לוח מודעות של קלאן
|
||||
command.description.mod.bb.clear=מוחק את תוכן לוח המודעות של קלאן מסוים
|
||||
command.description.mod.bb.post=פרסם הודעה בלוח מודעות של קלאן מסוים
|
||||
command.description.place=מכניס שחקן לקלאן
|
||||
command.description.reload=טוען מחדש את הפלאגין עם תצורותיו
|
||||
command.description.trust=הופך חבר קלאן למוסמך
|
||||
command.description.untrust=הופך חבר קלאן ללא-מוסמך
|
||||
command.description.resign=פורש מהקלאן שלך
|
||||
command.description.help=מראה את העזרה הזו או חיפושים בעזרה
|
||||
command.description.ally.add=מוסיף בן ברית
|
||||
command.description.clan=פותח את התפריט
|
||||
command.description.disband=מפרק את הקלאן שלך
|
||||
command.description.mod.disband=מפרק קלאן מסוים
|
||||
command.description.mod.kick=מעיף שחקן מקלאן מסוים
|
||||
command.description.modtag.other=משנה תג של קלאן מסוים
|
||||
command.description.modtag=משנה את התג של הקלאן שלך
|
||||
command.description.purge=מטהר חלק ממידע של שחקן
|
||||
command.description.setbanner=מגדיר באנר לקלאן שלך
|
||||
command.description.verify=מאמת את הקלאן שלך
|
||||
command.description.mod.verify=מאמת קלאן מסוים
|
||||
command.description.invite=מזמין שחקן לקלאן שלך
|
||||
command.description.fee.check=בודק את הערך של עמלת הקלאן שלך, והאם היא מופעלת
|
||||
command.description.fee.set=מגדיר את עמלת הקלאן שלך
|
||||
command.description.bank.status=בודק את יתרת בנק הקלאן שלך
|
||||
command.description.bank.admin.status=בודק יתרת בנק של קלאן מסוים
|
||||
command.description.bank.withdraw.all=משיכה של הכל מבנק הקלאן שלך
|
||||
command.description.bank.withdraw.amount=משיכת כמות כסף מבנק הקלאן שלך
|
||||
command.description.bank.admin.take=לוקחת כמות כסף מבנק של קלאן מסוים
|
||||
command.description.bank.deposit.all=הפקדה של כל הכסף שלך אל בנק הקלאן שלך
|
||||
command.description.bank.deposit.amount=הפקדה של כמות מהכסף שלך אל בנק הקלאן שלך
|
||||
command.description.bank.admin.give=מעניק כמות כסף לבנק של קלאן מסוים
|
||||
command.description.bank.admin.set=מגדיר כמות כסף לבנק של קלאן
|
||||
command.description.war.start=מתחיל מלחמה
|
||||
command.description.war.end=מסיים מלחמה
|
||||
command.description.resetkdr.everyone=מאפס את יחס הריגות-מוות של כולם
|
||||
command.description.resetkdr.player=מאפס את יחס הריגות-מוות של שחקן
|
||||
command.description.resetkdr=מאפס את יחס הריגות-מוות שלך
|
||||
command.description.admin.demote=מוריד בדרגה כל מנהיג מכל קלאן
|
||||
command.description.demote=מוריד בדרגה מנהיג
|
||||
command.description.admin.promote=מקדם כל חבר קלאן מכל קלאן
|
||||
command.description.promote=מקדם חבר קלאן למנהיג
|
||||
command.description.admin.permanent=מפעיל/מכבה את הסטטוס הנצחי של כל קלאן
|
||||
command.description.toggle.bb=מפעיל/מכבה הצגת לוח המודעות עם כניסה
|
||||
command.description.toggle.invite=מפעיל/מכבה קבלת הזמנות לקלאן
|
||||
command.description.toggle.tag=מפעיל/מכבה הצגת תג קלאן ליד השם שלך
|
||||
command.description.toggle.deposit=מפעיל/מכבה הפקדות אל קלאן שלך
|
||||
command.description.toggle.withdraw=מפעיל/מכבה משיכות מהקלאן שלך
|
||||
command.description.toggle.fee=מפעיל/מכבה עמלה של קלאן
|
||||
command.description.alliances=מציג את כל הבריתות של כל הקלאנים
|
||||
command.description.coords=מציג את כל הקורדינטות של חברי הקלאן שלך
|
||||
command.description.rank.assign=מעניק דרגה לחבר קלאן
|
||||
command.description.rank.unassign=מסיר דרגה לחבר קלאן
|
||||
command.description.rank.create=יוצר דרגה
|
||||
command.description.rank.delete=מוחק דרגה
|
||||
command.description.rank.list=מציג את כל הדרגות בקלאן שלך
|
||||
command.description.rank.setdisplayname=מגדיר שם לתצוגה של דרגה
|
||||
command.description.rank.setdefault=מגדיר את דרגת ברירת המחדל
|
||||
command.description.rank.removedefault=מסיר את דרגת ברירת המחדל
|
||||
command.description.rank.permissions.available=מציג את ההרשאות הזמינות לדרגה
|
||||
command.description.rank.permissions.rank=מציג גישות של דרגה
|
||||
command.description.rank.permissions.add=מוסיף גישות לדרגה
|
||||
command.description.rank.permissions.remove=מסיר גישות מדרגה
|
||||
command.description.rename=משנה שם לקלאן שלך
|
||||
command.description.mod.rename=משנה שם לקלאן מסוים
|
||||
command.description.locale=מגדיר את השפה שלך
|
||||
command.description.mod.locale=מגדיר את השפה של שחקן מסוים
|
||||
home-menu=/{0} home{1} - טלפורט לבית הקלאן
|
||||
home-set-menu=/{0} home set{1} - קבע את בסיס הבית של הקלאן
|
||||
home-clear-menu=/{0} home clear{1} - הסר את נקודת בסיס הבית של הקלאן
|
||||
clan=קלאן
|
||||
allies=בני ברית
|
||||
alliances=
|
||||
coords=
|
||||
name=שם
|
||||
distance=מרחק
|
||||
coords.upper=קורדים
|
||||
world=עולם
|
||||
kdr=יחס הריגה/מוות
|
||||
members=חברים
|
||||
clans.lower=קלאנים
|
||||
rival=יריב
|
||||
civilian=אזרח
|
||||
neutral=נטרלי
|
||||
ally=בן ברית
|
||||
free.agent=סוכן חופשי
|
||||
days=ימים
|
||||
rivals=יריבים
|
||||
rivalries=
|
||||
online=מחובר
|
||||
player=שחקן
|
||||
seen=נראה
|
||||
leader=מנהיג
|
||||
roster=
|
||||
trusted=מוסמך
|
||||
untrusted=לא מוסמך
|
||||
in.rank=בדרגה
|
||||
deaths=מקרי מוות
|
||||
weights=משקלים
|
||||
stats=
|
||||
health=חיים
|
||||
armor=שריון
|
||||
weapons=נשקים
|
||||
food=אוכל
|
||||
vitals=
|
||||
verified=מאומת
|
||||
unverified=לא מאומת
|
||||
permanent=תמידי
|
||||
profile=
|
||||
civilian.abbreviation=אזרח
|
||||
rank=דרגה
|
||||
leaders=מנהיגים
|
||||
none=&8ללא
|
||||
today=היום
|
||||
kills=הריגות
|
||||
mostkilled=נהרג הכי הרבה
|
||||
killcount=כמות הריגות
|
||||
attacker=תוקף
|
||||
victim=קורבן
|
||||
kill.death.ratio=יחס הריגות/מוות
|
||||
nokillsfound=לא נמצאו הריגות
|
||||
promoted.to.leader=השחקן {0} קודם לדרגת מנהיג
|
||||
denied.demotion=ההורדה בדרגה של {1} סורבה על ידי {0}. לא הושגה הסכמה כללית.
|
||||
membership.invitation=ההזמנה לחברות נדחתה על ידי {0}
|
||||
joined.the.clan=השחקן {0} הצטרף לקלאן
|
||||
signed.off.request.cancelled=השחקן {0} התנתק. הבקשה של {1} בוטלה.
|
||||
clan.deletion=המחיקה של הקלאן סורבה על ידי {0}. לא הושגה הסכמה כללית.
|
||||
rename.refused=שינוי שם הקלאן סורב על ידי {0}. לא הושגה הסכמה כללית.
|
||||
has.been.disbanded=הקלאן {0} התפרק
|
||||
denied.the.promotion=הקידום של {1} סורב על ידי {0}. לא הושגה הסכמה כללית.
|
||||
demoted.back.to.member=הורדה לדרגת חבר בוצעה ל{0}
|
||||
peace.agreement.denied=ההסכם לשלום עם {0} סורב
|
||||
denied.to.make.peace=השלום עם {1} סורב על ידי {0}
|
||||
broken.the.rivalry=היריבות עם {1} נשברה על ידי {0}
|
||||
broken.the.rivalry.with=היריבות עם {1} נשברה על ידי {0}
|
||||
the.alliance.was.denied=הברית עם {0} נדחתה
|
||||
denied.an.alliance=ברית עם {1} סורבה על ידי {0}
|
||||
accepted.an.alliance=ברית עם {1} אושרה על ידי {0}
|
||||
created.an.alliance=ברית עם {1} נוצרה על ידי {0}
|
||||
has.joined=הקידום של {1} סורב על ידי {0}. לא הושגה הסכמה כללית
|
||||
proposing.to.end.the.rivalry=הצעה לסיום היריבות עם {1} הועלתה על ידי {0}
|
||||
proposing.an.alliance=הצעה לברית עם {1} הועלתה על ידי {0}
|
||||
inviting.you.to.join=ההזמנה להצטרף ל־{1} נשלחה על ידי {0}
|
||||
asking.for.the.promotion=בקשה לקידום של {1} הועלתה על ידי {0}
|
||||
asking.for.the.demotion=בקשה להורדה בדרגה של {1} הועלתה על ידי {0}
|
||||
asking.to.disband=בקשה לפירוק הקלאן הועלתה על ידי {0}
|
||||
asking.to.rename=בקשה לשינוי שם הקלאן ל־{1} הועלתה על ידי {0}
|
||||
# suppress inspection "TrailingSpacesInProperty"
|
||||
request.message= \n&8[&8{0}&8] &b{1}\n %accept% &bאו %deny%
|
||||
clickable.accept=&a&l[אישור]
|
||||
clickable.deny=&c&l[דחייה]
|
||||
hover.click.to.accept=&aלחץ כאן על מנת לאשר
|
||||
hover.click.to.deny=&cלחץ כאן על מנת לדחות
|
||||
not.sufficient.money=אין לך מספיק כסף בחשבון (נדרש\: {0} $)
|
||||
account.has.been.debited=החשבון שלך חויב ב־{0}
|
||||
mysql.connection.successful=חיבור MySQL צלח
|
||||
mysql.connection.failed=חיבור MySQL כשל
|
||||
sqlite.connection.successful=חיבור עם SQLite צלח
|
||||
sqlite.connection.failed= חיבור עם SQLite נכשל
|
||||
purging.player.data=ניקוי נתוני שחקן\: {0}
|
||||
purging.clan=ניקוי קלאן\: {0}
|
||||
clan.players=שחקני הקלאן\: {0}
|
||||
clans=קלאנים\: {0}\n
|
||||
banned=אתה חסום מלהשתמש בפקודות קלאן
|
||||
nothing.more.to.see=לא נשאר דבר לראות
|
||||
nothing.to.vote=&cאין מה לאשר או לדחות
|
||||
no.leader.permissions=אין לך גישות מנהיג
|
||||
you.have.already.voted=כבר הצבעת
|
||||
has.voted.to.deny=ההצבעה לסירוב בוצעה על ידי {0}
|
||||
view.next.page=הקלד {0}/ כדי לצפות בעמוד הבא.
|
||||
voted.to.accept=ההצבעה לאישור בוצעה על ידי {0}
|
||||
bulletin.board.header=&8* &e{0} &fלוח מודעות
|
||||
bulletin.board.message={0}\: &f{1}
|
||||
has.been.disbanded.rivalry.ended=הקלאן {0} פורק. היריבות הסתיימה.
|
||||
has.been.disbanded.alliance.ended=הקלאן {0} פורק. הברית הסתיימה.
|
||||
clan.disbanded=קלאן פורק
|
||||
1.color.day=1 {0}יום
|
||||
many.color.days={0}{1} ימים
|
||||
insufficient.permissions=אין מספיק גישות
|
||||
clan.is.not.verified=קלאן לא מאומת
|
||||
player.not.a.member.of.any.clan=&cהשחקן לא חבר באף קלאן
|
||||
not.a.member.of.any.clan=אתה לא חבר באף קלאן
|
||||
minimum.to.make.alliance=לקלאן חייב להיות לפחות {0} שחקנים על מנת ליצור בריתות
|
||||
cannot.be.same.clan=&cעליך להזין קלאן שונה מהקלאן שלך\!
|
||||
other.clan.not.verified=&cהקלאן האחר לא מאומת\!
|
||||
your.clans.are.not.allies=הקלאנים שלכם לא בעלי ברית
|
||||
has.broken.the.alliance=הברית עם {1} נשברה על ידי {0}
|
||||
at.least.one.leader.accept.the.alliance=לפחות מנהיג מצד הברית חייב להיות מחובר כדי לכרות ברית
|
||||
leaders.have.been.asked.for.an.alliance=מנהיגי {0} התבקשו לברית
|
||||
your.clans.are.already.allies=הקלאנים שלכם כבר בני ברית
|
||||
your.clan.cannot.create.rivals=הקלאן שלך לא יכול ליצור יריבים
|
||||
min.players.rivalries=לקלאן שלך חייב להיות לפחות {0} שחקנים על מנת ליצור יריבויות
|
||||
this.player.is.already.banned=השחקן הזה כבר בבאן
|
||||
player.added.to.banned.list=השחקן נוסף לרשימת הבאנים
|
||||
you.banned=אתה בבאן מפקודות קלאן
|
||||
clan.wide.friendly.fire.blocked=אש ידידותית ברחבי הקלאן חסומה
|
||||
clan.wide.friendly.fire.is.allowed=אש ידידותית ברחבי הקלאן פועלת
|
||||
you.are.the.only.member.online=אתה חבר הקלאן היחיד שמחובר
|
||||
your.clan.color.tag.cannot.be.longer.than.characters=&cתג הקלאן שלך לא יכול להיות ארוך מ־{0} תווים
|
||||
your.clan.tag.cannot.be.longer.than.characters=&cתג הקלאן שלך לא יכול להיות ארוך מ־{0} תווים
|
||||
your.clan.tag.must.be.longer.than.characters=&cתג הקלאן שלך חייב להיות ארוך מ־{0} תווים
|
||||
your.tag.cannot.contain.the.following.colors=&cהתג שלך לא יכול להכיל את הצבעים הבאים\: {0}
|
||||
your.tag.doesnt.meet.the.requirements=&cהתג שלך לא עומד בדרישות.
|
||||
your.tag.cannot.contain.color.codes=&cהתג שלך לא יכול להכיל קודי צבעים
|
||||
your.clan.tag.can.only.contain.letters.numbers.and.color.codes=&cתג הקלאן שלך יכול להכיל רק אותיות, מספרים, וקודי צבעים
|
||||
you.cannot.set.colored.ranks=אתה לא יכול להגדיר דרגות צבועות
|
||||
your.clan.name.cannot.be.longer.than.characters=שם הקלאן שלך לא יכול להיות ארוך מ־{0} תווים
|
||||
your.clan.name.must.be.longer.than.characters=שם הקלאן שלך חייב להיות ארוך מ־{0} תווים
|
||||
your.clan.name.cannot.contain.color.codes=שם הקלאן שלך לא יכול להכיל קודי צבעים
|
||||
that.tag.name.is.disallowed=&cהתג הזה לא מותר
|
||||
you.must.first.resign=עליך לפרוש מ־{0} קודם כל
|
||||
clan.with.this.tag.already.exists=כבר קיים קלאן עם התג הזה
|
||||
get.your.clan.verified.to.access.advanced.features=אמת את הקלאן שלך כדי לקבל גישה לעוד פיטצ'רים מתקדמים
|
||||
clan.created=קלאן {0} נוצר
|
||||
not.enough.leaders.online.to.vote.on.demotion=אין מספיק מנהיגים מחוברים בכדי להצביע על הורדת הדרגה
|
||||
demotion.vote.has.been.requested.from.all.leaders=נדרשה הצבעת הורדה בדרגה מכל המנהיגים
|
||||
player.is.not.a.leader.of.your.clan=השחקן לא מנהיג של הקלאן שלך
|
||||
player.is.not.a.leader=השחקן הזה לא מנהיג
|
||||
clan.has.been.disbanded=הקלאן {0} התפרק
|
||||
clan.disband.vote.has.been.requested.from.all.leaders=נדרשה הצבעת פירוק הקלאן מכל המנהיגים
|
||||
friendy.fire.is.now.managed.by.your.clan=ירי ידידותי מנוהל כעת על ידי הקלאן שלך
|
||||
personal.friendly.fire.is.set.to.allowed=ירי ידידותי אישי הוגדר כמאושר
|
||||
global.friendy.fire.is.now.managed.by.each.clan=ירי ידידותי גלובלי מנוהל כעת על ידי כל קלאן
|
||||
global.friendy.fire.is.already.being.managed.by.each.clan=ירי ידידותי גלובלי כבר מנוהל על ידי כל קלאן
|
||||
global.friendly.fire.is.set.to.allowed=ירי ידידותי גלובלי הוגדר כמאושר
|
||||
global.friendly.fire.is.already.being.allowed=ירי ידידותי גלובלי כבר מוגדר כמאושר
|
||||
the.player.doesn.t.not.have.the.permissions.to.join.clans=לשחקן אין גישות להצטרף לקלאנים
|
||||
you.cannot.invite.yourself=אתה לא יכול להזמין את עצמך
|
||||
you.did.not.answer.in.time=לא ענית בזמן, מבטל...
|
||||
this.player.is.banned.from.using.clan.commands=השחקן הזה חסום מלהשתמש בפקודות קלאנים
|
||||
the.player.is.already.member.of.another.clan=השחקן הזה כבר חבר בקלאן אחר
|
||||
has.been.asked.to.join=השחקן {0} נשאל להצטרף אל {1}
|
||||
you.cannot.kick.yourself=אתה לא יכול להעיף את עצמך
|
||||
the.player.is.not.a.member.of.your.clan=השחקן הזה לא חבר בקלאן שלך
|
||||
you.cannot.kick.another.leader=אתה לא יכול להעיף מנהיג נוסף
|
||||
has.been.kicked.by=השחקן {1} העיף את {0} מהקלאן
|
||||
no.clans.have.been.created=אף קלאנים נוצרו
|
||||
total.clans=סך הכל קלאנים\:
|
||||
legend=לג'נדה\:
|
||||
kill.type.civilian=סוג הריגה\: {0} אזרח
|
||||
no.player.data.found=לא נמצאו נתוני שחקן
|
||||
clan.0=קלאן\: {0}
|
||||
status.0=סטטוס\: {0}
|
||||
rank.0=דרגה\: {0}
|
||||
kdr.0=יחס הריגות/מוות\: {0}
|
||||
inactive.0=לא פעיל\: {0}
|
||||
clan.commands=פקודות קלאן
|
||||
you.can.only.modify.the.color.and.case.of.the.tag=אתה יכול רק לשנות את הצבע והקייס של התג
|
||||
locale.has.been.changed=&cהשפה שלך שונתה
|
||||
locale.is.prohibited=&cבחירת שפה בשרת הזה אסורה.
|
||||
tag.changed.to.0=התג שונה ל{0}
|
||||
0.tag.changed.to.1=&bשינוי התג של {0} ל־{1} בוצע בהצלחה
|
||||
name.0=שם\: {0}
|
||||
description.0=תיאור\: {0}
|
||||
leaders.0=מנהיגים\: {0}
|
||||
allies.0=בני ברית\: {0}
|
||||
rivals.0=יריבים\: {0}
|
||||
other.player.must.be.online=&cהשחקן חייב להיות מחובר\!
|
||||
the.player.does.not.have.the.permissions.to.lead.a.clan=לשחקן אין גישות להנהיג קלאן
|
||||
you.cannot.promote.yourself=אתה לא יכול לקדם את עצמך
|
||||
the.player.is.already.a.leader=השחקן הזה כבר מנהיג
|
||||
configuration.reloaded=הגדרות נטענו מחדש
|
||||
last.leader.cannot.resign.you.must.appoint.another.leader.or.disband.the.clan=המנהיג האחרון לא יכול לפרוש. אתה צריך למנות מנהיג נוסף או לפרק את הקלאן
|
||||
0.has.resigned=השחקן {0} פרש מהקלאן
|
||||
you.cannot.trust.yourself=אתה לא יכול להפוך את עצנך למוסמך
|
||||
leaders.are.already.trusted=מנהיגים כבר מוסמכים
|
||||
this.player.is.already.trusted=השחקן הזה כבר מוסמך
|
||||
has.been.given.trusted.status.by=השחקן {0} קיבל מעמד מוסמך מ־{1}
|
||||
this.player.is.not.banned=השחקן הזה לא חסום
|
||||
player.removed.from.the.banned.list=שחקן הוסר מרשימת חסימה
|
||||
you.have.been.unbanned.from.clan.commands=ירדה לך החסימה מפקודות קלאן
|
||||
you.cannot.untrust.yourself=אתה לא יכול להוריד לך סמכות
|
||||
leaders.cannot.be.untrusted=מנהיגים לא יכולים להיות לא-מוסמכים
|
||||
this.player.is.already.untrusted=השחקן הזה כבר לא מוסמך
|
||||
has.been.given.untrusted.status.by=השחקן {1} העניק ל־{0} מעמד לא מוסמך
|
||||
the.clan.does.not.exist=הקלאן לא קיים
|
||||
the.clan.is.already.verified=הקלאן כבר מאומת
|
||||
the.clan.has.been.verified=הקלאן אומת
|
||||
clan.0.has.been.verified=קלאן {0} אומת\!
|
||||
total.clan.players.0=שחקני קלאן בסה"כ\: {0}
|
||||
proposing.war=קלאן {0} מציע להכריז מלחמה על {1}
|
||||
you.can.only.start.war.with.rivals=אתה יכול להתחיל מלחמה עם רק עם יריבים
|
||||
leaders.have.been.asked.to.accept.the.war.request=מנהיגי {0} התבקשו לקבל את בקשת המלחמה
|
||||
leaders.asked.to.end.rivalry=מנהיגי {0} התבקשו לקבל את בקשת סיום המלחמה
|
||||
proposing.to.end.the.war=קלאן {0} מציע להפסיק את המלחמה עם {1}
|
||||
clans.already.at.war=הקלאנים שלכם כבר במלחמה
|
||||
clans.not.at.war=הקלאנים שלכם לא במלחמה
|
||||
you.are.at.war=קלאן {0} כרגע במלחמה עם {1}
|
||||
denied.war.req=השחקן {0} סירב לבקשת המלחמה שנשלחה על ידי {1}
|
||||
you.are.no.longer.at.war=קלאן {0} כבר לא במלחמה עם {1}
|
||||
end.war.denied=הבקשה לסיים את המלחמה נדחתה על ידי {0}
|
||||
denied.war.end=קלאן {0} דחה את בקשת הסיום של {1} במלחמה
|
||||
has.initiated.a.rivalry=קלאן {0} הכריז יריבות על {1}
|
||||
start=
|
||||
end=
|
||||
add=
|
||||
remove=
|
||||
allow=
|
||||
block=
|
||||
auto=
|
||||
war=
|
||||
0.s.sword.1.2.b.bow.3.4.a.arrow=
|
||||
weapon.S=חר'
|
||||
weapon.B=ק'
|
||||
weapon.A=חצ'
|
||||
materials=חומרים
|
||||
armor.h=
|
||||
armor.c=
|
||||
armor.l=
|
||||
armor.B=ק'
|
||||
diamond=יהלום
|
||||
gold=זהב
|
||||
wood=עץ
|
||||
server.announce=הכרזת שרת
|
||||
clan.announce=הכזרת קלאן
|
||||
leader.announce=הכזרת מנהיג
|
||||
hunger=רעב
|
||||
stone=אבן
|
||||
iron=ברזל
|
||||
the.clan.cannot.be.rivaled=לא ניתן ליצור יריבות עם הקלאן
|
||||
bboff=לוח מודעות כבוי
|
||||
bbon=לוח מודעות דולק
|
||||
inviteon=הזמנות דולקות
|
||||
inviteoff=הזמנות כבויות
|
||||
tagoff=תג כבוי
|
||||
tagon=תג דולק
|
||||
depositon=הפקדה דולקת
|
||||
depositoff=הפקדה כבויה
|
||||
withdrawon=משיכה דולקת
|
||||
withdrawoff=משיכה כבויה
|
||||
feeoff=עמלה כבויה
|
||||
feeon=עמלה דולקת
|
||||
home.base.only.once=בית קלאן יכול להיות מוגדר רק פעם אחת
|
||||
now.at.homebase=אתה כעת בבית הקלאן של {0}
|
||||
hombase.set=בית קלאן הוגדר ב\: {0}
|
||||
hombase.cleared=בית קלאן נוקה
|
||||
hombase.mod.set=בית הקלאן של {0} הוגדר ב\:
|
||||
hombase.not.set=בית קלאן לא הוגדר
|
||||
home.set.in.different.server=
|
||||
rival.limit.reached=הגעת למכסת היריבים. לא תוכל להוסיף עוד.
|
||||
you.moved.teleport.cancelled=זזת, השתגרות בוטלה
|
||||
waiting.for.teleport.stand.still.for.0.seconds=ממתין להשתגרות, אל תזוז למשך {0} שניות
|
||||
on=דולק
|
||||
off=כבוי
|
||||
player.rank.changed=דרגה הוגדרה
|
||||
your.clans.are.already.rivals=הקלאנים שלכם כבר יריבים
|
||||
player.got.money=קיבלת {0} על ההריגה של {1} בהתחשב ביחס ההריגה-מוות שלך\: {2}
|
||||
cleared.bb=ניקה את לוח המודעות
|
||||
clan.balance=יתרת הקלאן\: {0}
|
||||
clan.admin.balance=היתרה של {0}\: $ {1}
|
||||
bb.fee.player.kicked=השחקן {0} הוצא מהקלאן בגלל שלא שילם עמלה
|
||||
bb.fee.set=העמלה הינה {0}
|
||||
bb.clan.deposit={0} $ הופקדו על ידי {1}
|
||||
player.clan.deposit=הפקדת {0}
|
||||
bb.clan.withdraw={0} $ נמשכו על ידי {1}
|
||||
bb.clan.take={0} $ נלקחו על ידי {1}
|
||||
bb.clan.give={0} $ ניתנו על ידי {1}
|
||||
bb.clan.set=הסכום {0} $ נקבע על ידי {1}
|
||||
player.clan.withdraw=משכת {0}
|
||||
clan.admin.take=לקחת {0} $ מהבנק של {1}
|
||||
clan.admin.give=הענקת {0} $ לבנק של {1}
|
||||
clan.admin.set=הגדרת את יתרת הבנק של {0} ל־{1}$
|
||||
clan.admin.bank.not.enough.money=לבנק של {0} אין מספיק כסף\!
|
||||
clan.bank.not.enough.money=לבנק הקלאן אין מספיק כסף
|
||||
your.clans.are.not.rivals=הקלאנים שלכם לא יריבים
|
||||
the.clan.members.reached.limit=הקלאן שלך הגיע למספר החברים המקסימלי
|
||||
this.clan.has.reached.the.member.limit=&bהקלאן הזה הגיע למספר החברים המקסימלי
|
||||
you.have.reseted.your.kdr=איפסת את יחס ההריגות-מוות שלך
|
||||
you.have.reseted.0.kdr=איפסת ל{0} את יחס ההריגות-מוות
|
||||
you.have.reseted.kdr.of.all.players=איפסת את יחס ההריגות-מוות לכל השחקנים
|
||||
you.have.successfully.renamed.your.clan=&bשם הקלאן שונה ל־{0} בהצלחה
|
||||
you.have.successfully.renamed.the.clan=&bשם הקלאן שונה ל־{0} בהצלחה
|
||||
you.have.toggled.permanent.status=הסטטוס הקבוע של {0} הוחלף על ידך
|
||||
permanent.status.enabled=הסטטוס הקבוע של הקלאן שלך הופעל על ידי {0}
|
||||
permanent.status.disabled=הסטטוס הקבוע של הקלאן שלך הושבת על ידי {0}
|
||||
yes=כן
|
||||
cancel=ביטול
|
||||
resign.confirmation=האם אתה בטוח שברצונך לעזוב את הקלאן? {0}
|
||||
disband.confirmation=האם אתה בטוח שברצונך לפרק את הקלאן שלך? {0}
|
||||
resetkdr.confirmation=האם אתה בטוח שברצונך לאפס את יחס ההריגות-מוות שלך? {0}
|
||||
resign.success=עזבת את הקלאן שלך בהצלחה
|
||||
you.cannot.demote.the.last.leader=אתה לא יכול להוריד דרגה למנהיג האחרון
|
||||
you.cannot.move.the.last.leader=אתה לא יכול להעביר את המנהיג האחרון
|
||||
player.successfully.demoted=השחקן הורד בדרגה בהצלחה
|
||||
player.successfully.promoted=השחקן קודם בהצלחה
|
||||
bb.ago= \ לפני כן
|
||||
bb.moments=\ רגעים
|
||||
bb.seconds= \ שניות
|
||||
bb.minutes= \ דקות
|
||||
bb.one.minute=דקה
|
||||
bb.hours= \ שעות
|
||||
bb.one.hour=שעה
|
||||
bb.days= \ ימים
|
||||
bb.one.day=יום
|
||||
the.fee.is.0.and.its.current.value.is.1=העמלה הינה {0} וערכה הוא כרגע {1}$
|
||||
fee.enabled=פועל
|
||||
fee.disabled=כבוי
|
||||
fee.set=העמלה הוגדרה בהצלחה
|
||||
max.fee.allowed.is.0=העמלה המותרת המקסימלית הינה {0}
|
||||
fee.collected={0}$ נוכו לעמלת הקלאן
|
||||
player.purged=השחקן טוהר בהצלחה
|
||||
upkeep.collected={0}$ נוכו לתשלום תחזוקה
|
||||
balance.is.not.enough.for.upkeep=יתרת הקלאן אינה מספיקה לתשלום התחזוקה ({0}$), הפקד את הסכום כדי להימנע מפירוק הקלאן
|
||||
your.clan.description.must.be.longer.than=תיאור הקלאן שלך חייב להיות ארוך מ־{0} תווים
|
||||
your.clan.description.cannot.be.longer.than=תיאור הקלאן שלך לא יכול להיות ארוך מ־{0} תווים
|
||||
description.changed=שינית את תיאור הקלאן שלך בהצלחה
|
||||
no.description=-אין תיאור-
|
||||
the.player.must.wait.0.before.joining.your.clan.again=השחקן חייב להמתין {0} דקות לפני שיוכל להצטרף שוב לקלאן שלך
|
||||
disabled.command=פקודה לא זמינה
|
||||
rank.displayname.updated=שם תצוגת הדרגה עודכן\!
|
||||
rank.setdefault=דרגת ברירת המחדל של הקלאן הוגדרה ל {0}
|
||||
rank.removedefault=דרגת ברירת המחדל של הקלאן שלך הוסרה
|
||||
rank.0.permissions=גישות דרגת {0}\:
|
||||
available.rank.permissions=גישות זמינות לדרגות\:
|
||||
rank.already.exists=דרגה כבר קיימת
|
||||
rank.0.does.not.exist=דרגה {0} לא קיימת
|
||||
rank.created=דרגה נוצרה
|
||||
permission.0.added.to.rank.1=גישה {0} נוספה אל דרגה {1}
|
||||
permission.0.removed.from.rank.1=גישה {0} הוסרה מדרגה {1}
|
||||
rank.0.deleted=דרגה {0} הוסרה
|
||||
clans.ranks=דרגות הקלאן\:
|
||||
ranks.list.item=
|
||||
no.ranks=שום דרגות נוצרו
|
||||
rank.no.permissions=לדרגה הזו אין שום גישות
|
||||
player.unassigned.from.rank=השחקן הוסר מהדרגה
|
||||
you.must.be.0.or.have.the.permission.1.to.use.this=אתה חייב להיות {0} או שהמנהיג שלך חייב לתת לדרגה שלך את ההרשאה {1} כדי להשתמש בזה
|
||||
deposit.not.allowed=הפקדת כסף אינה מותרת, השתמש ב־%clan %toggle %deposit/ כדי לאפשר אותה
|
||||
withdraw.not.allowed=משיכת כסף אינה מותרת, השתמש ב־%clan %toggle %withdraw/ כדי לאפשר אותה
|
||||
resign.request.cancelled=בקשת עזיבה בוטלה
|
||||
disband.request.cancelled=בקשת פירוק בוטלה
|
||||
resetkdr.request.cancelled=בקשת איפוס יחס הריגות-מוות בוטלה
|
||||
clan.create.request.cancelled=בקשה יצירת קלאן בוטלה
|
||||
rank.create.request.cancelled=בקשת יצירת דרגה בוטלה
|
||||
promotion.vote.has.been.requested.from.all.leaders=הצבעת קידום נתבקשה מכל המנהיגים
|
||||
rename.vote.has.been.requested.from.all.leaders=הצבעת שינוי שם נתבקשה מכל המנהיגים
|
||||
allowed=מותר
|
||||
blocked=אסור
|
||||
chat.joined=הצטרף
|
||||
chat.not.joined=לא הצטרף
|
||||
chat.didnt.join=&bלא הצטרפת לערוץ זה
|
||||
gui.loading=&7טוען...
|
||||
gui.back.title=&fחזרה
|
||||
gui.previous.page.title=&fעמוד קודם
|
||||
gui.next.page.title=&fעמוד הבא
|
||||
gui.lore.no.permission=&cאין לך גישה לראות את זה\!
|
||||
gui.main.title={0} - תפריט קלאן
|
||||
gui.main.languageselector.title=&fבחר את השפה שלך
|
||||
gui.main.languageselector.lore.left.click=&7לחיצה שמאלית כדי לבחור את השפה שלך
|
||||
gui.main.languageselector.lore.right.click=&7לחיצה ימנית כדי לעזור לתרגם
|
||||
gui.main.other.commands.title=&fפקודות אחרות
|
||||
gui.main.other.commands.lore=&7לחיצה שמאלית לראות את כל הפקודות קלאן
|
||||
gui.main.clan.list.title=&fרשימת קלאנים
|
||||
gui.main.clan.list.lore=&7לחיצה שמאלית לראות את רשימת הקלאנים
|
||||
gui.main.reset.kdr.title=&f איפוס יחס הריגות-מוות
|
||||
gui.main.reset.kdr.lore.price=&7מחיר\: &b{0}
|
||||
gui.main.reset.kdr.lore=&7לחיצה שמאלית כדי לאפס את יחס ההריגות-מוות שלך
|
||||
gui.main.leaderboard.title=&fלוח המובילים
|
||||
gui.main.leaderboard.lore=&7לחיצה שמאלית כדי לראות את לוח המובילים
|
||||
gui.main.staff.title=&fצוות
|
||||
gui.main.staff.lore=&7לחיצה שמאלית כדי לפתוח את תפריט הצוות
|
||||
gui.staff.title=צוות
|
||||
gui.staff.clan.list.lore.left.click=&7לחיצה שמאלית כדי לראות את כל הקלאנים
|
||||
gui.staff.clan.list.lore.right.click=&7לחיצה ימנית כדי לראות את כל הקלאנים הלא מאומתים
|
||||
gui.player.list.title=רשימת שחקנים
|
||||
gui.staff.player.list.title=&fרשימת שחקנים
|
||||
gui.staff.player.list.lore.left.click=&7לחיצה שמאלית לראות את כל השחקנים
|
||||
gui.staff.player.list.lore.right.click=&7לחיצה ימנית כדי לראות את כל השחקנים המחוברים
|
||||
gui.staff.global.ff.title=&fאש ידידותית גלובלית
|
||||
gui.staff.global.ff.lore.status=&7סטטוס\: &b{0}
|
||||
gui.staff.global.ff.lore.toggle=&7לחיצה שמאלית כדי להפעיל/לכבות את סטטוס האש הידידותית
|
||||
gui.staff.reload.title=&fטען מחדש
|
||||
gui.staff.reload.lore=&7לחיצה שמאלית כדי לטעון מחדש את הפלאגין
|
||||
gui.staff.clanlist.unverified.title=קלאנים לא מאומתים - סה"כ\: {0}
|
||||
gui.staff.clanlist.toplace.title=בחר את הקלאן החדש של {0}
|
||||
gui.warning.title=אזהרה
|
||||
gui.warning.no.permission.title=&fאין גישה
|
||||
gui.warning.no.permission.plugin.lore=&7אין לך גישה לבצע את זה\!
|
||||
gui.warning.no.permission.leader.lore=&7האם אתה אחד ממנהיגי הקלאן?
|
||||
gui.warning.no.permission.rank.lore=&7אתה חייב להיות {0} או שהמנהיג שלך חייב לתת לדרגה שלך את ההרשאה {1} כדי להשתמש בזה\!
|
||||
gui.warning.not.verified.title=&fלא מאומת
|
||||
gui.warning.not.verified.lore=&7הקלאן שלך חייב להיות מאומת\!
|
||||
gui.allies.title=בני ברית
|
||||
gui.allies.clan.lore=&7לחיצה ימנית כדי להסיר את בן הברית הזה
|
||||
gui.allies.add.title=&fהוסף בן ברית
|
||||
gui.add.ally.title=הוסף בן ברית
|
||||
gui.add.ally.clan.lore=&7לחיצה שמאלית כדי לכרות ברית עם הקלאן הזה
|
||||
gui.rivals.title=יריבים
|
||||
gui.rivals.clan.lore=&7לחיצה ימנית כדי להסיר את היריב הזה
|
||||
gui.rivals.add.title=&הוסף יריב
|
||||
gui.add.rival.title=הוסף יריב
|
||||
gui.add.rival.clan.lore=&7לחיצה שמאלית כדי ליצור יריבות עם הקלאן הזה
|
||||
gui.clanlist.title=קלאנים - סה"כ\: {0}
|
||||
gui.clanlist.clan.title=&fקלאן\: [{0}&f] {1}
|
||||
gui.clanlist.clan.lore.position=
|
||||
gui.clanlist.clan.lore.kdr=&7יחס הריגות-מוות\: &b{0}
|
||||
gui.clanlist.clan.lore.members=&7חברי קלאן\: &b{0}
|
||||
gui.coords.title=קורדינטות
|
||||
gui.coords.player.lore.distance=&7מרחק\: &b{0}
|
||||
gui.coords.player.lore.coords=&7קורדינטות\: &bZ{2} Y{1} X{0}
|
||||
gui.coords.player.lore.world=&7עולם\: &b{0}
|
||||
gui.invite.title=הזמן שחקן
|
||||
gui.invite.player.title=
|
||||
gui.invite.player.price.lore=&7מחיר\: &b{0}
|
||||
gui.invite.player.lore=&7לחיצה שמאלית כדי להזמין
|
||||
gui.roster.title=חברי הקלאן של {0}
|
||||
gui.roster.invite.title=&fהזמנה
|
||||
gui.roster.invite.lore=&7הזמן שחקן לקלאן שלך
|
||||
gui.leaderboard.title=לוח המובילים - שחקנים\: {0}
|
||||
gui.leaderboard.player.title=
|
||||
gui.ranks.title=דרגות
|
||||
gui.ranks.title.set.rank=הגדר דרגה - נוכחי\: {0}
|
||||
gui.ranks.create.title=&fצור דרגה
|
||||
gui.ranks.create.lore=&7לחיצה שמאלית כדי ליצור דרגה
|
||||
gui.ranks.rank.title=&fדרגה\: {0}
|
||||
gui.ranks.rank.displayname.lore=&7שם תצוגה\: &b{0}
|
||||
gui.ranks.rank.remove.lore=&7לחיצה ימנית כדי להסיר את הדרגה הזו
|
||||
gui.ranks.rank.edit.permissions.lore=&7לחיצה שמאלית כדי לערוך את הגישות של הדרגה הזו
|
||||
gui.ranks.rank.assign.lore=&7לחיצה שמאלית כדי להעניק את הדרגה זו אל {0}
|
||||
gui.permissions.title=הגישות של {0}
|
||||
gui.permissions.add.title=&fהוספת גישה
|
||||
gui.permissions.permission.title=
|
||||
gui.permissions.permission.lore=&7לחיצה ימנית כדי להסיר את הגישה הזו מהדרגה
|
||||
gui.add.permission.title=הוספת גישה
|
||||
gui.add.permission.permission.title=
|
||||
gui.add.permission.permission.lore=&7לחיצה שמאלית כדי להוסיף את הגישה הזו לדרגה
|
||||
gui.clandetails.title=
|
||||
gui.clandetails.free.agent.title=&fסוכן חופשי
|
||||
gui.clandetails.free.agent.create.clan.price.lore=&7מחיר\: &b{0}
|
||||
gui.clandetails.free.agent.create.clan.lore=77לחיצה שמאלית כדי ליצור קלאן
|
||||
gui.clandetails.clan.title=
|
||||
gui.clandetails.clan.lore.description=77תיאור\: &b{0}
|
||||
gui.clandetails.clan.lore.status=&7סטטוס\: &b{0}
|
||||
gui.clandetails.clan.lore.leaders=&7מנהיגים\: &b{0}
|
||||
gui.clandetails.clan.lore.online.members=&7חברי קלאן מחוברים\: &b {0}/{1}
|
||||
gui.clandetails.clan.lore.kdr=&7יחס הריגות-מוות\: &b{0}
|
||||
gui.clandetails.clan.lore.kill.totals=&7סך כל ההריגות\: &b[יריבים\: {0} נייטרלים\: {1} אזרחים\: {2}]
|
||||
gui.clandetails.clan.lore.deaths=&7מיתות\: &b{0}
|
||||
gui.clandetails.clan.lore.fee=&7עמלה\: &b{0}, {1} $
|
||||
start=התחל
|
||||
# suppress inspection "TrailingSpacesInProperty"
|
||||
gui.clandetails.clan.lore.allies.separator=
|
||||
# suppress inspection "TrailingSpacesInProperty"
|
||||
gui.clandetails.clan.lore.rivals.separator=
|
||||
gui.clandetails.clan.lore.allies=&7בני ברית\: &b{0}
|
||||
gui.clandetails.clan.lore.rivals=&7יריבים\: &b{0}
|
||||
gui.clandetails.clan.lore.founded=&7תאריך הקמה\: &b{0}
|
||||
gui.clandetails.clan.lore.inactive=&7חוסר פעילות\: &b{0}/{1} ימים
|
||||
gui.clandetails.allies.title=&fבני ברית
|
||||
gui.clandetails.allies.lore=&7לחיצה שמאלית כדי לראות את בני הברית שלך ולהוסיף עוד
|
||||
gui.clandetails.rivals.title=&fיריבים
|
||||
gui.clandetails.rivals.lore=&7לחיצה שמאלית כדי לראות את האויבים שלך ולהוסיף עוד
|
||||
gui.clandetails.roster.title=&fחברי קלאן
|
||||
gui.clandetails.roster.lore=&7לחיצה שמאלית כדי לראות את חברי הקלאן שלך או להזמין עוד
|
||||
gui.staffclandetails.roster.lore=&7לחיצה שמאלית כדי לראות את חברי הקלאן
|
||||
gui.clandetails.coords.title=&fקורדינטות
|
||||
gui.clandetails.coords.lore=&7לחיצה שמאלית לראות את הקורדינטות של חברי הקלאן שלך
|
||||
gui.clandetails.home.title=&fבית קלאן
|
||||
gui.clandetails.home.lore.teleport.price=&7עמלת השתגרות\: &b{0}
|
||||
gui.clandetails.home.lore.teleport=&7לחיצה שמאלית כדי להשתגר אל בית הקלאן שלך
|
||||
gui.staffclandetails.home.lore.teleport=&7לחיצה שמאלית כדי להשתגר אל בית הקלאן הזה
|
||||
gui.clandetails.home.lore.clear=&7זרוק את הפריט כדי לאפס את בית הקלאן שלך
|
||||
gui.clandetails.home.lore.set.price=&7קבע מחיר\: &b{0}
|
||||
gui.clandetails.home.lore.set=&7לחיצה ימנית כדי להגדיר את בית הקלאן שלך
|
||||
gui.staffclandetails.home.lore.set=&7לחיצה ימנית כדי להגדיר את בית הקלאן הזה
|
||||
gui.clandetails.regroup.title=&7קיבוץ
|
||||
gui.clandetails.regroup.lore.price=&7מחיר\: &b{0}
|
||||
gui.clandetails.regroup.lore.home=&7לחיצה שמאלית כדי לקבץ את חברי הקלאן שלך בבית הקלאן
|
||||
gui.clandetails.regroup.lore.me=&7לחיצה ימנית כדי לקבץ את חברי הקלאן שלך במיקומך
|
||||
gui.clandetails.ff.title=&fאש ידידותית
|
||||
gui.clandetails.ff.personal.lore=&7אישי\: &b{0}
|
||||
gui.clandetails.ff.clan.lore=&7קלאן\: &b
|
||||
gui.clandetails.ff.personal.toggle.lore=&7לחיצה שמאלית כדי להפעיל/לכבות את האש הידידותית שלך
|
||||
gui.clandetails.ff.clan.toggle.lore=&7לחיצה ימנית כדי להפעיל/לכבות את האש הידידותית של הקלאן שלך
|
||||
gui.clandetails.bank.title=&fבנק
|
||||
gui.clandetails.bank.balance.lore=&7יתרה\: &b{0}
|
||||
gui.clandetails.bank.withdraw.status.lore=&7משיכה\: &b{0}
|
||||
gui.clandetails.bank.deposit.status.lore=&7הפקדה\: &b{0}
|
||||
gui.clandetails.bank.withdraw.toggle.lore=&7זרוק את הפריט כדי להפעיל/לכבות את סטטוס המשיכה
|
||||
gui.clandetails.bank.deposit.toggle.lore=&7לחיצה ימנית כדי להפעיל/לכבות את סטטוס ההפקדה
|
||||
gui.clandetails.fee.title=&fעמלה
|
||||
gui.clandetails.fee.status.lore=&7סטטוס\: &b{0}
|
||||
gui.clandetails.fee.value.lore=&7ערך\: &b{0}
|
||||
gui.clandetails.fee.toggle.lore=&7לחיצה שמאלית כדי להפעיל/לכבות את סטטוס העמלה
|
||||
gui.clandetails.rank.title=&fדרגה
|
||||
gui.clandetails.rank.lore=&7לחיצה שמאלית כדי לראות את דרגות בקלאן ולערוך אותן
|
||||
gui.clandetails.verified.title=&fמאומת
|
||||
gui.clandetails.not.verified.title=&fלא מאומת
|
||||
gui.clandetails.verify.price.lore=&7מחיר\: &b{0}
|
||||
gui.clandetails.not.verified.lore=&7לחיצה שמאלית כדי לאמת את הקלאן שלך
|
||||
gui.staffclandetails.not.verified.lore=&7לחיצה שמאלית כדי לאמת את הקלאן הזה
|
||||
gui.clandetails.resign.title=&fעזיבה
|
||||
gui.clandetails.resign.lore=&7לחיצה שמאלית כדי לעזוב את הקלאן שלך
|
||||
gui.clandetails.disband.title=&fפירוק
|
||||
gui.clandetails.disband.lore=&7זרוק את הפריט כדי לפרק את הקלאן שלך
|
||||
gui.staffclandetails.disband.lore=&7לחיצה שמאלית כדי לפרק את הקלאן הזה
|
||||
gui.clandetails.chat.title=&fצ'אט
|
||||
gui.clandetails.chat.clan.chat.lore=&7/{0} [message] - &bשולח הודעה בצ'אט הקלאן
|
||||
gui.clandetails.chat.clan.join.leave.lore=&7/{0} {1}/{2} - &bמצטרף/עוזב את צ'אט הקלאן
|
||||
gui.clandetails.chat.ally.chat.lore=&7/{0} [message] - &bשולח הודעה בצ'אט הברית
|
||||
gui.clandetails.chat.ally.join.leave.lore=&7/{0} {1}/{2} - &bמצטרף/עוזב את צ'אט הברית
|
||||
gui.clandetails.chat.clan.status.lore=&7קלאן\: &b
|
||||
gui.clandetails.chat.ally.status.lore=&7ברית\: &b{0}
|
||||
gui.clandetails.chat.clan.toggle.lore=&7לחיצה שמאלית כדי לשנות את סטטוס צ'אט הקלאן
|
||||
gui.clandetails.chat.ally.toggle.lore=&7לחיצה ימנית כדי לשנות את סטטוס צ'אט הברית
|
||||
gui.playerdetails.title={0}
|
||||
gui.playerdetails.player.title=
|
||||
gui.playerdetails.player.lore.noclan=&7קלאן\: &bללא
|
||||
gui.playerdetails.player.lore.clan=&7קלאן\: &b[{0}&b] {1}
|
||||
gui.playerdetails.player.lore.rank=&7דרגה\: &b{0}
|
||||
gui.playerdetails.player.lore.status=&7סטטוס\: &b{0}
|
||||
gui.playerdetails.player.lore.kdr=&7יחס הריגות-מוות\: &b{0}
|
||||
gui.playerdetails.player.lore.kill.totals=&7סך כל ההריגות\: &b[יריבים\: {0} נייטרלים\: {1} אזרחים\: {2}]
|
||||
gui.playerdetails.player.lore.deaths=&7מיתות\: &b{0}
|
||||
gui.playerdetails.player.lore.join.date=&7תאריך הצטרפות\: &b{0}
|
||||
gui.playerdetails.player.lore.last.seen=&7נראה לאחרונה\: &b{0}
|
||||
# suppress inspection "TrailingSpacesInProperty"
|
||||
gui.playerdetails.player.lore.past.clans.separator=
|
||||
gui.playerdetails.player.lore.past.clans=&7קלאנים לשעבר\: &b{0}
|
||||
gui.playerdetails.player.lore.inactive=&7חוסר פעילות\: &b{0}/{1} ימים
|
||||
gui.playerdetails.kick.title=&fהעף
|
||||
gui.playerdetails.promote.demote.title=&fקידום/שלילה
|
||||
gui.playerdetails.promote.lore.left.click=&7לחיצה שמאלית להעלאה בדרגה
|
||||
gui.playerdetails.demote.lore.right.click=&7לחיצה ימנית להורדה בדרגה
|
||||
gui.playerdetails.assign.unassign.title=&fהענק/שלול דרגה
|
||||
gui.playerdetails.assign.lore.left.click=&7לחיצה שמאלית כדי להעניק
|
||||
gui.playerdetails.unassign.lore.right.click=&7לחיצה שמאלית כדי לשלול
|
||||
gui.playerdetails.trust.untrust.title=&fמוסמך/לאמוסמך
|
||||
gui.playerdetails.trust.lore.left.click=&7לחיצה שמאלית כדי להעניק סטטוס מוסמך
|
||||
gui.playerdetails.untrust.lore.right.click=&7לחיצה שמאלית כדי להעניק סטטוס לא מוסמך
|
||||
gui.playerdetails.ban.unban.title=&fבאן/אנבאן
|
||||
gui.playerdetails.ban.left.click=&7לחיצה שמאלית כדי לחסום את השחקן מקלאנים
|
||||
gui.playerdetails.unban.right.click=&7לחיצה ימנית כדי לבטל חסימה לשחקן
|
||||
gui.playerdetails.resetkdr.lore=&7לחיצה שמאלית כדי לאפס לשחקן הזה את יחס ההריגות-מוות
|
||||
gui.playerdetails.purge.title=&fטיהור
|
||||
gui.playerdetails.purge.lore=&7לחיצה שמאלית כדי לנקות את המידע על השחקן
|
||||
gui.playerdetails.place.title=&fמקם
|
||||
gui.playerdetails.place.lore=&7לחיצה שמאלית כדי לבחור קלאן לשחקן זה
|
||||
gui.languageselector.title=שפות - נוכחות\: {0}
|
||||
gui.languageselector.language.title=
|
||||
gui.languageselector.language.lore.left.click=&7לחיצה שמאלית כדי להגדיר את שפה זו לשפה שלך
|
||||
gui.languageselector.language.lore.translation.status=&7סטטוס תרגום\: &b{0}%
|
||||
gui.languageselector.language.lore.right.click=&7לחיצה ימנית כדי לעזור לתרגם
|
||||
gui.confirmation.title=אימות
|
||||
gui.confirmation.confirm=&7לחץ כאן כדי לאמת
|
||||
gui.confirmation.return=&7לחץ כאן כדי לחזור
|
||||
gui.not.supported=&cאירעה שגיאה בעת פתיחת התפריט\! מבטל... האם הורדת את הגרסה הנכונה?
|
||||
staff.member.verify.clan=&cחבר צוות חייב לאשר את הקלאן שלך\!
|
||||
player.already.has.that.rank=&cלשחקן כבר יש את הדרגה הזאת\!
|
||||
joined.clan.chat=&bהצטרפת לצ'אט קלאן
|
||||
already.joined.clan.chat=&bאתה כבר בצ'אט קלאן
|
||||
left.clan.chat=&bעזבת צ'אט קלאן
|
||||
muted.clan.chat=&bהשתקת את צ'אט הקלאן
|
||||
unmuted.clan.chat=&bביטלת השתקה של צ'אט הקלאן
|
||||
joined.ally.chat=&bהצטרפת לצ'אט ברית
|
||||
left.ally.chat=&bעזבת צ'אט ברית
|
||||
muted.ally.chat=&bהשתקת את צ'אט ברית
|
||||
unmuted.ally.chat=&bביטלת השתקה של צ'אט הברית
|
||||
already.joined.ally.chat=&bאתה כבר בצ'אט ברית
|
||||
player.already.in.this.clan=&cהשחקן כבר בקלאן הזה
|
||||
your.clan.reached.max.alliances=&cהקלאן שלך הגיע למספר הבריתות המקסימלי
|
||||
other.clan.reached.max.alliances=&cהקלאן האחר הגיע למספר הבריתות המקסימלי
|
||||
insert.clan.tag=&b הכנס את תג הקלאן (או "{0}")\:
|
||||
insert.clan.name=&bהכנס את שם הקלאן\:
|
||||
insert.rank.name=&bהכנס את שם הדרגה (או "{0}")\:
|
||||
click.to.help.translating=&bלחץ על הלינק הנ"ל כדי לעזור לתרגם\: \n&r{0}
|
||||
your.clan.must.have.members.to.verify=&cהקלאן שלך צריך לפחות {0} חברים כדי להיות מאומת\!
|
||||
you.must.hold.a.banner=&cאתה חייב באנר ביד שלך\!
|
||||
you.changed.clan.banner=&bשינית את באנר הקלאן שלך\!
|
||||
your.clan.already.verified=&cהקלאן שלך כבר מאומת\!
|
||||
# suppress inspection "TrailingSpacesInProperty"
|
||||
clan.profile=\n&b%clan_name%&7 פרופיל &8-------------------------------------------\n\n &7שם\: &e[&8%clan_color_tag%&e] &b%clan_name%\n &7תיאור\: &f%clan_description%\n &7סטטוס\: &f%clan_status%\n &7מנהיגים\: %clan_leaders%\n &7חברים מחוברים\: &f%clan_online_count%&7/&f%clan_size%\n &7יחס הריגות/מתות (Kdr)\: &e%clan_kdr%\n &7סך כל ההריגות\: &8[יריבים\:&f%clan_rival_kills% &8בעלי ברית\:&f%clan_ally_kills% &8נייטרלים\:&f%clan_neutral_kills% &8אזרחים\:&f%clan_civilian_kills%&8]\n &7מתות\: &f%clan_deaths%\n &7דמי חבר\: &f%clan_fee_enabled%&7, &f%clan_fee_value% $\n &7בעלי ברית\: &f%clan_allies%\n &7יריבים\: &f%clan_rivals%\n &7תאריך ייסוד\: &f%clan_founded%\n &7ימי חוסר פעילות\: &f%clan_inactive_days%&7/&f%clan_max_inactive_days% ימים
|
||||
player.lookup.clanname=&e[&8%clan_color_tag%&e] &b%clan_name%
|
||||
# suppress inspection "TrailingSpacesInProperty"
|
||||
player.lookup.killtype=&7סוג הריגה\: %player_kill_type%
|
||||
player.lookup=\n&bהפרופיל של %player_name% &8-------------------------------------------\n\n &7קלאן\: &f%clan_name%\n &7דרגה\: &f%player_rank%\n &7סטטוס\: &f%player_status%\n &7יחס הריגות/מתות (Kdr)\: &e%player_kdr%\n &7סך כל ההריגות\: &8[יריבים\:&f%player_rival_kills% &8בעלי ברית\:&7%player_ally_kills% &8נייטרלים\:&f%player_neutral_kills% &8אזרחים\:&f%player_civilian_kills%&8]\n &7מתות\: &f%player_deaths%\n &7תאריך הצטרפות\: &f%player_join_date%\n &7נראה לאחרונה\: &f%player_last_seen%\n &7קלאנים קודמים\: &f%player_past_clans%\n &7חוסר פעילות\: &f%player_inactive_days%&7/&f%player_max_inactive_days% ימים\n %kill_type_line%
|
||||
economy.disabled=&cכלכלה מושבתת\!
|
||||
has.been.purged=הנתונים של {0} טוהרו
|
||||
accepted.invitation=&bאתה אישרת את ההזמנה של {0}
|
||||
denied.invitation=&cסירבת את ההזמנה של {0}
|
||||
must.be.in.clan.to.pvp=&cאתה ו{0} חייבים להיות חברי קלאן כדי להילחם\!
|
||||
clans.not.at.war.pvp.denied=&cהקלאן שלך לא במלחמה עם {0}\!
|
||||
cannot.attack.civilians=&cאתה לא יכול לתקוף אזרחים\!
|
||||
cannot.attack.clan.member=&cאתה לא יכול לתקוף חבר קלאן נוסף\!
|
||||
cannot.attack.ally=&cאתה לא יכול לתקוף בן ברית\!
|
||||
cannot.send.discord.message=אתה לא יכול לשלוח הודעות אל {0}. אתה לא חבר של הקלאן הזה\!
|
||||
discordhook.is.disabled=&cאינטגרציה עם דיסקורד מושבתת או אינה זמינה\!
|
||||
your.clan.doesnt.have.any.linked.player=לקלאן שלך אין משחקנים מקושרים
|
||||
your.clan.doesnt.have.minimum.linked.player=לקלאן שלך אין מינימום שחקנים מקושרים
|
||||
your.clan.is.not.on.the.whitelist=הקלאן שלך לא ברשימת המורשים
|
||||
your.clan.already.has.channel=לקלאן שלך כבר יש ערוץ בדיסקורד
|
||||
discord.reached.category.limit=דיסקורד הגיעו לכמות הקטגוריות המקסימלית\!
|
||||
discord.reached.channels.limit=דיסקורד הגיעו לכמות הערוצים המקסימלית\!
|
||||
discord.created.successfully=&bערוץ דיסקורד נוצר בהצלחה\!
|
||||
you.did.not.link.your.account=אתה לא קישרת את חשבונך\!
|
||||
# suppress inspection "TrailingSpacesInProperty"
|
||||
cannot.change.member.fee.now=&cאין באפשרותך לשנות את עמלות חברי הקלאן קרוב למועד הגבייה
|
||||
cannot.change.member.fee.hours=&cנסה שוב בעוד {0} שעות...
|
||||
cannot.change.member.fee.minutes=&cנסה שוב בעוד {0} דקות...
|
||||
cannot.kick.last.leader=&cאתה לא יכול להעיף את המנהיג האחרון\!
|
||||
cannot.disband.permanent=&cאתה לא יכול לפרק את הקלאן הזה. הוא תחת סטטוס 'נצחי'.
|
||||
you.can.only.set.base.in.your.land=&cאתה יכול להגדיר בית רק באדמה שלך\!
|
||||
only.leaders.can.create.lands=&cרק מנהיגים יכולים ליצור אדמות\!
|
||||
only.one.land.per.clan=&cלקלאן שלך כבר יש אדמה\!
|
||||
only.clan.members.can.create.lands=&cרק חברי קלאן יכולים ליצור אדמות\!
|
||||
land.allowed.all.actions=&bכל הפעולות מותרות\!
|
||||
land.blocked.all.actions=&bכל הפעולות חסומות\!
|
||||
land.allowed.action=&bפעולה מאושרת\!
|
||||
land.blocked.action=&bפעולה חסומה\!
|
||||
you.do.not.own.lands=&cאין לך אדמה עם בעלות\!
|
||||
land.sharing.disabled=&cשיתוף אדמות מושבת\!
|
||||
clan.chat.disabled=&cצ'אט הקלאן מושבת\!
|
||||
ally.chat.disabled=&cצ'אט הברית מושבת\!
|
||||
war.expired=המלחמה עם {0} הגיעה לתוקפה\!
|
||||
you.cant.start.war.online.members.difference=אינך יכול להתחיל את המלחמה – לאחד הקלאנים יש יותר שחקנים מחוברים מהשני.
|
||||
invitedplayer.invite.off=שחקן זה השבית הזמנות לקלאן
|
||||
user.hasnt.played.before=&cהשחקן הזה לעולם לא התחבר לשרת
|
||||
clan.list.balance.header=\n{0} &7דירוג קלאנים לפי יתרה &8-----------------------\n\n&8סה"כ קלאנים\: &7{1}\n\n&8\#&7. &8קלאן &7- &8יתרה
|
||||
clan.list.balance.line=&f{0}. {1}{2}{3}&b{4} &7- &e{5}$
|
||||
@@ -3,8 +3,8 @@ create.command=létrehozás
|
||||
delete.command=törlés
|
||||
rank.command=rang
|
||||
setdisplayname.command=név beállítása
|
||||
setdefault.command=alap beállítás
|
||||
removedefault.command=alap törlés
|
||||
setdefault.command=simabeallitasa
|
||||
removedefault.command=simatorlese
|
||||
permissions.command=jogosultságok
|
||||
list.command=lista
|
||||
balance.command=egyenleg
|
||||
@@ -94,7 +94,6 @@ help.command=segítség
|
||||
leave.command=kilépés
|
||||
join.command=belépés
|
||||
mute.command=némítás
|
||||
tag.completion=
|
||||
acf-core.parameter.amount=darab
|
||||
acf-core.parameter.member=tag
|
||||
acf-core.parameter.rank=rang
|
||||
|
||||
@@ -94,8 +94,6 @@ help.command=aiuto
|
||||
leave.command=leave
|
||||
join.command=join
|
||||
mute.command=mute
|
||||
tag.completion=[tag]
|
||||
name.completion=[nome]
|
||||
acf-core.parameter.amount=importo
|
||||
acf-core.parameter.member=membro
|
||||
acf-core.parameter.rank=rango
|
||||
@@ -418,7 +416,6 @@ inactive.0=Inattivo da\: {0}
|
||||
clan.commands=clan comandi
|
||||
you.can.only.modify.the.color.and.case.of.the.tag=È possibile modificare solo il colore e le maiuscole del nome clan
|
||||
locale.has.been.changed=La lingua è stata cambiata con successo
|
||||
locale.is.prohibited=
|
||||
tag.changed.to.0=Tag cambiato in {0}
|
||||
0.tag.changed.to.1=&bIl tag di {0} è stato modificato con successo in {1}
|
||||
name.0=Nome\: {0}
|
||||
|
||||
@@ -2,8 +2,8 @@ description.command=beschrijving
|
||||
create.command=maak
|
||||
delete.command=verwijderen
|
||||
rank.command=rang
|
||||
setdisplayname.command=Zet schermnaam
|
||||
setdefault.command=Standaard instellingen
|
||||
setdisplayname.command=setschermnaam
|
||||
setdefault.command=standaard instellingen
|
||||
removedefault.command=verwijder standaard instellingen
|
||||
permissions.command=toestemmingen
|
||||
list.command=lijst
|
||||
@@ -11,13 +11,13 @@ balance.command=saldo
|
||||
list.order.asc=oplopend
|
||||
list.order.desc=aflopend
|
||||
list.type.name=naam
|
||||
list.type.kdr=Moord dood verhouding
|
||||
list.type.kdr=kdr
|
||||
list.type.size=grootte
|
||||
list.type.founded=opgericht
|
||||
list.type.active=actief
|
||||
land.command=land
|
||||
break.command=breek
|
||||
interact.command=gebruik
|
||||
break.command=break
|
||||
interact.command=interact
|
||||
place_block.command=place_block
|
||||
damage.command=damage
|
||||
interact_entity.command=interact_entity
|
||||
@@ -45,7 +45,6 @@ rival.command=rivaal
|
||||
bb.command=bb
|
||||
clear.command=wissen
|
||||
modtag.command=modtag
|
||||
rename.command=hernoemen
|
||||
toggle.command=toggle
|
||||
tag.command=label
|
||||
deposit.command=storten
|
||||
@@ -93,7 +92,6 @@ help.command=help
|
||||
leave.command=verlaten
|
||||
join.command=toetreden
|
||||
mute.command=dempen
|
||||
name.completion=vernoemen
|
||||
acf-core.parameter.amount=bedrag
|
||||
acf-core.parameter.member=lid
|
||||
acf-core.parameter.rank=rang
|
||||
@@ -230,9 +228,6 @@ command.description.rank.permissions.available=Geeft een lijst van de beschikbar
|
||||
command.description.rank.permissions.rank=Geeft een lijst van machtigingen voor een rank
|
||||
command.description.rank.permissions.add=Voegt een toestemming toe aan een rank
|
||||
command.description.rank.permissions.remove=Verwijdert een toestemming van een rank
|
||||
command.description.rename=Hernoem je clan
|
||||
command.description.mod.rename=Hernoem een clan
|
||||
command.description.locale=Kies je taal
|
||||
home-menu=/{0} home{1} - Teleport naar home van clan
|
||||
home-set-menu=/{0} home set{1} - Stel de home van de clan' in
|
||||
home-clear-menu=/{0} home clear{1} - Verwijder de home base van de clans
|
||||
@@ -334,7 +329,6 @@ you.have.already.voted=Je hebt al gestemd
|
||||
has.voted.to.deny={0} heeft gestemd om te weigeren
|
||||
view.next.page=Typ /{0} om de volgende pagina te bekijken.
|
||||
voted.to.accept={0} heeft gestemd om te accepteren
|
||||
bulletin.board.header=Notitie bord
|
||||
has.been.disbanded.rivalry.ended={0} is beëindigt. Rivaliteit is geëindigd.
|
||||
has.been.disbanded.alliance.ended={0} is beëindigt. Alliantie is geëindigd.
|
||||
clan.disbanded=Clan verwijderd
|
||||
@@ -381,7 +375,6 @@ global.friendy.fire.is.now.managed.by.each.clan=Wereldwijde onderlinge pvp wordt
|
||||
global.friendy.fire.is.already.being.managed.by.each.clan=Wereldwijde onderlinge pvp wordt al beheerd door elke clan
|
||||
global.friendly.fire.is.set.to.allowed=Onderlinge pvp is ingesteld op toegestaan
|
||||
global.friendly.fire.is.already.being.allowed=Onderlinge pvp is ingesteld op niet toegestaan
|
||||
the.player.doesn.t.not.have.the.permissions.to.join.clans=De speler heeft niet de juiste rechten om de clan te joinen
|
||||
you.cannot.invite.yourself=Je kunt jezelf niet uitnodigen
|
||||
you.did.not.answer.in.time=Je hebt niet op tijd geantwoord, annuleren...
|
||||
this.player.is.banned.from.using.clan.commands=Deze speler is verbannen van het gebruik van clan commando's
|
||||
@@ -403,8 +396,6 @@ kdr.0=KDR\: {0}
|
||||
inactive.0=Inactief\: {0}
|
||||
clan.commands=clan commando's
|
||||
you.can.only.modify.the.color.and.case.of.the.tag=Je kunt alleen de kleur en het uiterlijk van de tag aanpassen
|
||||
locale.has.been.changed=Je taalkeuze is veranderd
|
||||
locale.is.prohibited=Taalkeuze is verboden op deze server
|
||||
tag.changed.to.0=Tag gewijzigd naar {0}
|
||||
0.tag.changed.to.1=&bSuccesvol de tag van {0} gewijzigd naar {1}
|
||||
name.0=Naam\: {0}
|
||||
@@ -543,7 +534,6 @@ bb.minutes= \ minuten
|
||||
bb.one.minute=1 minuut
|
||||
bb.hours= \ uren
|
||||
bb.one.hour=1 uur
|
||||
bb.days= Notitie bord
|
||||
bb.one.day=1 dag
|
||||
the.fee.is.0.and.its.current.value.is.1=De vergoeding is {0} en de huidige waarde is {1}$
|
||||
fee.enabled=ingeschakeld
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
description.command=opis
|
||||
create.command=Utwórz
|
||||
delete.command=Usuń
|
||||
rank.command=Ranga
|
||||
setdisplayname.command=Ustaw wyświetlaną nazwę
|
||||
setdefault.command=Ustaw domyślne
|
||||
removedefault.command=Usuń jako domyślne
|
||||
permissions.command=Uprawnienia
|
||||
create.command=utwórz
|
||||
delete.command=usuń
|
||||
rank.command=ranga
|
||||
setdisplayname.command=ustaw wyświetlaną nazwę
|
||||
setdefault.command=ustaw domyślne
|
||||
removedefault.command=usuń jako domyślne
|
||||
permissions.command=uprawnienia
|
||||
list.command=lista
|
||||
balance.command=saldo
|
||||
list.order.asc=asc
|
||||
@@ -94,11 +94,9 @@ help.command=pomoc
|
||||
leave.command=opuść
|
||||
join.command=dołącz
|
||||
mute.command=wycisz
|
||||
tag.completion=
|
||||
name.completion=[nazwa]
|
||||
acf-core.parameter.amount=ilość
|
||||
acf-core.parameter.member=Członek
|
||||
acf-core.parameter.rank=Ranga
|
||||
acf-core.parameter.rank=ranga
|
||||
acf-core.parameter.leader=Przywódca
|
||||
acf-core.parameter.displayname=Wyświetlana nazwa
|
||||
acf-core.parameter.permission=Uprawnienia
|
||||
@@ -234,8 +232,6 @@ command.description.rank.permissions.add=Dodaj uprawnienia do tego węzła
|
||||
command.description.rank.permissions.remove=Usuwa uprawnienia z rangi
|
||||
command.description.rename=Zmienia nazwę twojego klanu
|
||||
command.description.mod.rename=Zmienia nazwę klanu
|
||||
command.description.locale=Ustawia Twój język
|
||||
command.description.mod.locale=
|
||||
home-menu=/{0} home{1} - Teleportuje w miejsce zapisanej lokacji
|
||||
home-set-menu=/{0} home set{1} - Ustaw teleport klanu
|
||||
home-clear-menu=/{0} dom czysty{1} - wyczyść bazę klanu
|
||||
@@ -264,7 +260,7 @@ seen=Widziany
|
||||
leader=Przywódca
|
||||
roster=lista
|
||||
trusted=zaufany
|
||||
untrusted=niezaufany
|
||||
untrusted=niegodny
|
||||
in.rank=w rankingu
|
||||
deaths=Zgony
|
||||
weights=Wagi
|
||||
@@ -272,7 +268,7 @@ stats=statystyki
|
||||
health=Zycie
|
||||
armor=Zbroja
|
||||
weapons=Bronie
|
||||
food=Jedzenie
|
||||
food=Zarcie
|
||||
vitals=statystyki
|
||||
verified=zweryfikowane
|
||||
unverified=niezweryfikowane
|
||||
@@ -298,7 +294,7 @@ signed.off.request.cancelled={0} odszedl z klanu. {1} odrzucil propozycje
|
||||
clan.deletion={0} nie zgodzil sie nie usuniecie klanu.
|
||||
rename.refused={0} nie zgodził się na usunięcie klanu. Nie osiągnięto porozumienia.
|
||||
has.been.disbanded=Klan {0} zostal rozwiazany
|
||||
denied.the.promotion={0} odrzucił awans {1}. Nie osiagnieto porozumienia.
|
||||
denied.the.promotion={0} denied the promotion of {1}. Nie osiagnieto porozumienia.
|
||||
demoted.back.to.member={0} zostal zdegradowany do czlonka klanu
|
||||
peace.agreement.denied=Propozycja pokojnowa z klanem {0} zostala odrzucona.
|
||||
denied.to.make.peace={0} Nie zgodzil sie zawrzec pokoju z {1}
|
||||
@@ -318,8 +314,8 @@ asking.to.disband={0} prosi o rozwiązanie klanu
|
||||
asking.to.rename={0} prosi o zmianę nazwy klanu na {1}
|
||||
# suppress inspection "TrailingSpacesInProperty"
|
||||
request.message= \n &8[&8{0}&8] &b{1}\n %accept% &blub %deny%\n
|
||||
clickable.accept=&a&[AKCEPTUJ]
|
||||
clickable.deny=&c&[ODRZUC]
|
||||
clickable.accept=&a&[ACCEPT]
|
||||
clickable.deny=&c&[DENY]
|
||||
hover.click.to.accept=&aKliknij tutaj, aby zaakceptować
|
||||
hover.click.to.deny=&cKliknij tutaj, aby odrzucić
|
||||
not.sufficient.money=Nie masz wystarczającej ilości pieniędzy na swoim koncie (potrzebne\: {0} $)
|
||||
@@ -358,7 +354,7 @@ your.clans.are.not.allies=Wasze klany nie sa sojusznikami
|
||||
has.broken.the.alliance={0} zerwal sojusz z {1}
|
||||
at.least.one.leader.accept.the.alliance=Co najmniej jeden z przywodcow klanu musi byc dostepny aby przyjac propozycje sojuszu.
|
||||
leaders.have.been.asked.for.an.alliance=Przywodcy {0} zostali zapytani o sojusz.
|
||||
your.clans.are.already.allies=Wasze klany to już sojusznicy
|
||||
your.clans.are.already.allies=Toc wasze klany to juz sojusznicy
|
||||
your.clan.cannot.create.rivals=Twoj klan nie moze miec wrogow
|
||||
min.players.rivalries=Musisz miec w klanie co najmniej {0} czlonkow aby moc wypowiadac wojny.
|
||||
this.player.is.already.banned=Ten gracz ma juz bana
|
||||
@@ -368,19 +364,14 @@ clan.wide.friendly.fire.blocked=Friendly Fire dla calego klanu jest wylaczony.
|
||||
clan.wide.friendly.fire.is.allowed=Friendly Fire dla calego klanu jest wlaczony.
|
||||
you.are.the.only.member.online=Jestes jedynym czlonkiem klanu online. Badz czujny.
|
||||
your.clan.color.tag.cannot.be.longer.than.characters=&cKolorowy tag klanu nie może być dłuższy niż {0} znaków
|
||||
your.clan.tag.cannot.be.longer.than.characters=Tag twojej gildii nie może być dłuższy niż {0} znaków
|
||||
your.clan.tag.must.be.longer.than.characters=Tag twojego klanu musi być dłuższy od {0} znaków
|
||||
your.tag.doesnt.meet.the.requirements=Twój tag nie osiąga potrzebnych wymagań.
|
||||
your.tag.cannot.contain.color.codes=&cNazwa twojego klanu nie moze zawierac kodow kolorow
|
||||
you.cannot.set.colored.ranks=Nie możesz ustawić koloru rang
|
||||
your.clan.name.cannot.be.longer.than.characters=Nazwa klanu nie moze byc dluzsza niz {0} znakow
|
||||
your.clan.name.must.be.longer.than.characters=Nazwa twojego klanu musi byc dluzsza niz {0} znakow
|
||||
your.clan.name.cannot.contain.color.codes=Nazwa twojego klanu nie moze zawierac kodow kolorow
|
||||
that.tag.name.is.disallowed=Ten tag jest niedozwolony
|
||||
you.must.first.resign=Najpierw musisz odejsc z {0}
|
||||
clan.with.this.tag.already.exists=Klan o takim Tagu juz istnieje
|
||||
get.your.clan.verified.to.access.advanced.features=Weryfikacja twojego klanu umozliwi dostep do pozostalych opcji
|
||||
clan.created=Klan {0} pomyslnie utworzony
|
||||
clan.created=Clan {0} pomyslnie utworzony
|
||||
not.enough.leaders.online.to.vote.on.demotion=Brak wystarczającej liczby liderów online, aby głosować na ta degradacje
|
||||
demotion.vote.has.been.requested.from.all.leaders=Wszyscy przywodcy zostali poproszeni o glos w sprawie degradacji
|
||||
player.is.not.a.leader.of.your.clan=Ten gracz nie jest przywodca twojego klanu
|
||||
@@ -406,7 +397,7 @@ has.been.kicked.by={0} został wyrzucony przez {1}
|
||||
no.clans.have.been.created=Żadne klany nie zostały utworzone
|
||||
total.clans=Wszystkie klany\:
|
||||
legend=Legenda\:
|
||||
kill.type.civilian=Zabito\: {0} Cywili
|
||||
kill.type.civilian=Zabito\: {0}Cywili
|
||||
no.player.data.found=Nie znaleziono danych gracza
|
||||
clan.0=Klan\: {0}
|
||||
status.0=Status\: {0}
|
||||
@@ -415,8 +406,6 @@ kdr.0=KDR\: {0}
|
||||
inactive.0=Nieaktywny\: {0}
|
||||
clan.commands=komendy klanowe
|
||||
you.can.only.modify.the.color.and.case.of.the.tag=Możesz modyfikować tylko kolor i wielkość liter tagu
|
||||
locale.has.been.changed=Zmieniono Twój język
|
||||
locale.is.prohibited=Wybór języka na serwerze jest zabroniony.
|
||||
tag.changed.to.0=Tag zmieniony na {0}
|
||||
0.tag.changed.to.1=&bPomyślnie zmieniono tag {0} na {1}
|
||||
name.0=Nazwa\: {0}
|
||||
@@ -445,7 +434,7 @@ has.been.given.untrusted.status.by={0} otrzymal status osoby niegodnej zaufania
|
||||
the.clan.does.not.exist=Ten klan nie istnieje
|
||||
the.clan.is.already.verified=Ten klan jest juz zweryfikowany
|
||||
the.clan.has.been.verified=Klan zostal zweryfikowany
|
||||
clan.0.has.been.verified=Klan {0} zostal zweryfikowany\!
|
||||
clan.0.has.been.verified=Clan {0} zostal zweryfikowany\!
|
||||
total.clan.players.0=Wszystkich graczy\: {0}
|
||||
proposing.war={0} proponuje rozpoczac wojne z {1}
|
||||
you.can.only.start.war.with.rivals=Mozesz tylko rozpoczac wojne z rywalami
|
||||
@@ -486,7 +475,7 @@ leader.announce=Ogłoszenie przywódcy
|
||||
hunger=Głód
|
||||
stone=kamien
|
||||
iron=żelazo
|
||||
the.clan.cannot.be.rivaled=Klan nie moze rywalizowac
|
||||
the.clan.cannot.be.rivaled=Klan nie moze byc rywalizowal
|
||||
bboff=BB wyłączony
|
||||
bbon=BB włączony
|
||||
inviteon=Zaproszenie włączone
|
||||
@@ -625,13 +614,13 @@ gui.main.reset.kdr.lore.price=&7Cena\: &b{0}
|
||||
gui.main.reset.kdr.lore=&7Kliknij lewym przyciskiem myszy, aby zresetować KDR
|
||||
gui.main.leaderboard.title=&fRanking
|
||||
gui.main.leaderboard.lore=&7Lewy-przycisk, zeby zobaczyc ranking
|
||||
gui.main.staff.title=&fZarządzanie
|
||||
gui.main.staff.title=&fStaff
|
||||
gui.main.staff.lore=&7Kliknij lewym przyciskiem myszy aby otworzyć Staff menu
|
||||
gui.staff.title=Zarządzanie
|
||||
gui.staff.title=Staff
|
||||
gui.staff.clan.list.lore.left.click=&7Kliknij lewym przyciskiem myszy, aby zobaczyć listę klanów
|
||||
gui.staff.clan.list.lore.right.click=&7Kliknij prawym przyciskiem myszy, aby zobaczyć wszystkie niezweryfikowane klany
|
||||
gui.player.list.title=Lista graczy
|
||||
gui.staff.player.list.title=&fLista graczy
|
||||
gui.staff.player.list.title=&Lista graczy
|
||||
gui.staff.player.list.lore.left.click=&7Kliknij lewym przyciskiem myszy, aby zobaczyć wszystkich graczy
|
||||
gui.staff.player.list.lore.right.click=&7Kliknij prawym przyciskiem myszy, aby zobaczyć wszystkich graczy online
|
||||
gui.staff.global.ff.title=&fGlobalny Friendly Fire
|
||||
@@ -650,7 +639,7 @@ gui.warning.not.verified.title=&fNiezweryfikowany
|
||||
gui.warning.not.verified.lore=&7Twój klan musi zostać zweryfikowany\!
|
||||
gui.allies.title=Sojusznicy
|
||||
gui.allies.clan.lore=&7Kliknij prawym przyciskiem myszy, aby usunąć tego sojusznika
|
||||
gui.allies.add.title=&fDodaj sojusznika
|
||||
gui.allies.add.title=&Dodaj sojusznika
|
||||
gui.add.ally.title=Dodaj sojusznika
|
||||
gui.add.ally.clan.lore=&7Kliknij lewym przyciskiem myszy, aby zobaczyć listę klanów
|
||||
gui.rivals.title=Wrgogowie
|
||||
@@ -709,7 +698,7 @@ gui.clandetails.clan.lore.fee=&7Opłata\: &b{0}, {1}$
|
||||
gui.clandetails.clan.lore.allies.separator=&b,
|
||||
# suppress inspection "TrailingSpacesInProperty"
|
||||
gui.clandetails.clan.lore.rivals.separator=&b,
|
||||
gui.clandetails.clan.lore.allies=&7Sojusznicy\: {0}
|
||||
gui.clandetails.clan.lore.allies=&Sojusznicy\: {0}
|
||||
gui.clandetails.clan.lore.rivals=&7Wrogowie\: &b{0}
|
||||
gui.clandetails.clan.lore.founded=&7Założono\: &b{0}
|
||||
gui.clandetails.clan.lore.inactive=&7Nieaktywne\: &b{0}/{1} dni
|
||||
|
||||
@@ -94,8 +94,6 @@ help.command=ajuda
|
||||
leave.command=sair
|
||||
join.command=entrar
|
||||
mute.command=silenciar
|
||||
tag.completion=
|
||||
name.completion=[name]
|
||||
acf-core.parameter.amount=quantidade
|
||||
acf-core.parameter.member=membro
|
||||
acf-core.parameter.rank=cargo
|
||||
@@ -368,17 +366,17 @@ clan.wide.friendly.fire.blocked=Fogo amigo do clã bloqueado
|
||||
clan.wide.friendly.fire.is.allowed=Fogo amigo do clã permitido
|
||||
you.are.the.only.member.online=Você é o único membro online
|
||||
your.clan.color.tag.cannot.be.longer.than.characters=&cA tag colorida do seu clã não pode ter mais de {0} caracteres
|
||||
your.clan.tag.cannot.be.longer.than.characters=&c» A tag do seu clã não pode ser maior que {0} caracteres
|
||||
your.clan.tag.must.be.longer.than.characters=&c» A tag do seu clã deve ser maior que {0} caracteres
|
||||
your.tag.cannot.contain.the.following.colors=&c» Sua tag não pode conter as seguintes cores\: {0}
|
||||
your.tag.doesnt.meet.the.requirements=&c» Sua tag não cumpre os requisitos.
|
||||
your.tag.cannot.contain.color.codes=&c» Sua tag não pode conter códigos de cores
|
||||
your.clan.tag.can.only.contain.letters.numbers.and.color.codes=&c» A tag do seu clã pode conter apenas letras, números e códigos de cores
|
||||
your.clan.tag.cannot.be.longer.than.characters=&cA tag do seu clã não pode ser maior que {0} caracteres
|
||||
your.clan.tag.must.be.longer.than.characters=&cA tag do seu clã deve ser maior que {0} caracteres
|
||||
your.tag.cannot.contain.the.following.colors=&cSua tag não pode conter as seguintes cores\: {0}
|
||||
your.tag.doesnt.meet.the.requirements=&cSua tag não cumpre os requisitos.
|
||||
your.tag.cannot.contain.color.codes=&cSua tag não pode conter códigos de cores
|
||||
your.clan.tag.can.only.contain.letters.numbers.and.color.codes=&cA tag do seu clã pode conter apenas letras, números e códigos de cores
|
||||
you.cannot.set.colored.ranks=Você não pode definir cargos coloridos
|
||||
your.clan.name.cannot.be.longer.than.characters=O nome do seu clã não pode ser maior que {0} caracteres
|
||||
your.clan.name.must.be.longer.than.characters=O nome do seu clã deve ser maior que {0} caracteres
|
||||
your.clan.name.cannot.contain.color.codes=O nome do seu clã não pode conter códigos de cor
|
||||
that.tag.name.is.disallowed=&c» A tag desejada não é permitida.
|
||||
that.tag.name.is.disallowed=&cEsse nome de tag não é permitido
|
||||
you.must.first.resign=Você antes precisa abandonar {0}
|
||||
clan.with.this.tag.already.exists=Um clã com essa tag já existe
|
||||
get.your.clan.verified.to.access.advanced.features=Verifique o seu clã para ter acesso a funções mais avançadas
|
||||
@@ -417,8 +415,7 @@ kdr.0=KDR\: {0}
|
||||
inactive.0=Inativo\: {0}
|
||||
clan.commands=comandos de clã
|
||||
you.can.only.modify.the.color.and.case.of.the.tag=Você pode modificar apenas a cor ou a caixa (maiúsculo ou minúsculo) da tag
|
||||
locale.has.been.changed=&c» O seu idioma foi alterado
|
||||
locale.is.prohibited=&cSeleção Idioma no servidor é proibido.
|
||||
locale.has.been.changed=&cO seu idioma foi alterado
|
||||
tag.changed.to.0=Tag modificada para {0}
|
||||
0.tag.changed.to.1=&bAlterou a tag do clã {0} para {1} com sucesso
|
||||
name.0=Nome\: {0}
|
||||
|
||||
@@ -94,7 +94,6 @@ help.command=ajuda
|
||||
leave.command=sair
|
||||
join.command=entrar
|
||||
mute.command=silenciar
|
||||
tag.completion=
|
||||
acf-core.parameter.amount=quantidade
|
||||
acf-core.parameter.member=membro
|
||||
acf-core.parameter.rank=cargo
|
||||
|
||||
@@ -43,7 +43,7 @@ assign.command=assign
|
||||
unassign.command=unassign
|
||||
rival.command=rival
|
||||
bb.command=bb
|
||||
display.command=display
|
||||
display.command=отображение
|
||||
clear.command=clear
|
||||
modtag.command=modtag
|
||||
rename.command=rename
|
||||
@@ -94,9 +94,7 @@ help.command=help
|
||||
leave.command=leave
|
||||
join.command=join
|
||||
mute.command=mute
|
||||
tag.completion=[тег]
|
||||
name.completion=[название]
|
||||
acf-core.parameter.amount=amount
|
||||
acf-core.parameter.amount=сумма
|
||||
acf-core.parameter.member=участник
|
||||
acf-core.parameter.rank=rank
|
||||
acf-core.parameter.leader=лидер
|
||||
@@ -150,7 +148,7 @@ command.description.discord.create=Создаёт Discord канал для ва
|
||||
command.description.ff.allow=Разрешить "огонь по своим" для вас
|
||||
command.description.ff.auto=Установить ваш статус "огонь по своим" по умолчанию
|
||||
command.description.globalff.allow=Разрешить участникам всех кланов бить друг друга
|
||||
command.description.globalff.auto=Установить глобальный статус "огонь по своим" по умолчанию
|
||||
command.description.globalff.auto=Установить глобальный статус "огонь по своим" по умолчанию
|
||||
command.description.clanff.allow=Разрешить "огонь по своим" участникам вашего клана
|
||||
command.description.clanff.block=Запретить "огонь по своим" участникам вашего клана
|
||||
command.description.description=Установить описание вашего клана
|
||||
@@ -364,7 +362,7 @@ min.players.rivalries=У вашего клана должно быть не ме
|
||||
this.player.is.already.banned=Этот игрок уже забанен
|
||||
player.added.to.banned.list=Игрок был добавлен в бан-лист
|
||||
you.banned=Вам был заблокирован доступ к командам клана
|
||||
clan.wide.friendly.fire.blocked="Огонь по своим" в клане запрещён\!
|
||||
clan.wide.friendly.fire.blocked="Огонь по своим" в клане запрещён
|
||||
clan.wide.friendly.fire.is.allowed="Огонь по своим" в клане был разрешён
|
||||
you.are.the.only.member.online=Вы единственный участник онлайн
|
||||
your.clan.color.tag.cannot.be.longer.than.characters=&cЦветной тег вашего клана не может быть длиннее {0} символов
|
||||
@@ -374,7 +372,7 @@ your.tag.cannot.contain.the.following.colors=&cВаш тег не может с
|
||||
your.tag.doesnt.meet.the.requirements=&cВаш тег не соответствует требованиям.
|
||||
your.tag.cannot.contain.color.codes=&cВаш тег не может содержать цветовые коды
|
||||
your.clan.tag.can.only.contain.letters.numbers.and.color.codes=&cТег вашего клана может содержать только буквы, цифры и цветовые коды
|
||||
you.cannot.set.colored.ranks=Вы не можете установить цвет рангом
|
||||
you.cannot.set.colored.ranks=Вы не можете установить цвет рангам
|
||||
your.clan.name.cannot.be.longer.than.characters=Имя вашего клана не может быть длиннее {0} символов
|
||||
your.clan.name.must.be.longer.than.characters=Имя вашего клана должно быть длиннее {0} символов
|
||||
your.clan.name.cannot.contain.color.codes=Имя вашего клана не может содержать цветовые коды
|
||||
@@ -418,7 +416,6 @@ inactive.0=Неактивно\: {0}
|
||||
clan.commands=команды клана
|
||||
you.can.only.modify.the.color.and.case.of.the.tag=Вы можете изменить только цвет и регистр тега
|
||||
locale.has.been.changed=&cВаш язык был изменен
|
||||
locale.is.prohibited=
|
||||
tag.changed.to.0=Тег изменён на {0}
|
||||
0.tag.changed.to.1=&bТег {0} успешно изменён на {1}
|
||||
name.0=Имя\: {0}
|
||||
|
||||
@@ -146,63 +146,13 @@ command.description.more=แสดงข้อมูลเพิ่มเติ
|
||||
command.description.create=สร้างแคลน
|
||||
command.description.discord.create=สร้างช่อง Discord สำหรับเเคลนของคุณ
|
||||
command.description.ff.allow=อนุญาตให้ทําร้ายมิตรส่วนตัวของคุณได้
|
||||
command.description.ff.auto=อนุญาตให้ทําร้ายมิตรส่วนตัวของคุณได้
|
||||
command.description.globalff.allow=อนุญาตให้ทําร้ายมิตรส่วนตัวของคุณได้
|
||||
command.description.globalff.auto=ตั้งค่าการยิงพวกเดียวกันทั่วโลกเป็นอัตโนมัติ
|
||||
command.description.clanff.allow=อนุญาตให้ทําร้ายมิตรส่วนตัวของคุณได้
|
||||
command.description.clanff.block=อนุญาตให้ทําร้ายมิตรส่วนตัวของคุณได้
|
||||
command.description.description=แก้ไขคำอธิบายแคลนของคุณ
|
||||
command.description.ban=แบนผู้เล่นจากคำสั่งแคลน
|
||||
command.description.unban=ปลดแบนผู้เล่นจากคำสั่งแคลน
|
||||
command.description.regroup.me=รวมสมาชิกแคลนของคุณมาที่ตำแหน่งของคุณ
|
||||
command.description.regroup.home=รวมสมาชิกแคลนของคุณไปยังบ้านของแคลน
|
||||
command.description.home.tp=วาร์ปไปที่บ้านของแคลน
|
||||
command.description.home.clear=ล้างบ้านของแคลน
|
||||
command.description.home.set=ตั้งบ้านแคลน
|
||||
command.description.mod.home.set=ตั้งบ้านแคลน
|
||||
command.description.mod.home.tp=กลับบ้านแคลน
|
||||
command.description.rival.remove=ลบศัตรูออกจากรายการ
|
||||
command.description.rival.add=เพิ่มศัตรูเข้าในรายการ
|
||||
command.description.ally.remove=ลบพันธมิตรออกจากรายการ
|
||||
command.description.kick=เตะสมาชิกจากแคลน
|
||||
command.description.bb.display=แสดงกระดานข่าวของแคลน
|
||||
command.description.bb.clear=ล้างกระดานข่าวของแคลน
|
||||
command.description.bb.post=โพสต์ข้อความลงกระดานข่าวของแคลน
|
||||
command.description.mod.bb.display=แสดงกระดานข่าวของแคลน (สำหรับผู้ดูแล)
|
||||
command.description.mod.bb.clear=ล้างกระดานข่าวของแคลน (สำหรับผู้ดูแล)
|
||||
command.description.mod.bb.post=โพสต์ข้อความลงกระดานข่าวของแคลน (สำหรับผู้ดูแล)
|
||||
command.description.place=เพิ่มผู้เล่นเข้าแคลน
|
||||
command.description.reload=รีโหลดปลั๊กอินและการตั้งค่าใหม่
|
||||
command.description.trust=ให้ความไว้วางใจกับสมาชิก
|
||||
command.description.untrust=ถอนความไว้วางใจจากสมาชิก
|
||||
command.description.resign=ลาออกจากแคลน
|
||||
command.description.help=แสดงความช่วยเหลือหรือค้นหาในระบบช่วยเหลือ
|
||||
command.description.ally.add=เพิ่มพันธมิตรเข้าในแคลน
|
||||
command.description.clan=เปิด GUI
|
||||
command.description.disband=ยุบแคลน
|
||||
command.description.mod.disband=ยุบแคลน
|
||||
command.description.mod.kick=เตะผู้เล่นออกจากแคลน
|
||||
command.description.modtag.other=แก้ไขแท็กของแคลนอื่น
|
||||
command.description.modtag=แก้ไขแท็กของแคลนคุณ
|
||||
command.description.purge=ลบข้อมูลบางส่วนของผู้เล่น
|
||||
command.description.setbanner=ตั้งแบนเนอร์ของแคลน
|
||||
command.description.verify=ยืนยันแคลนของคุณ
|
||||
command.description.mod.verify=ยืนยันแคลน (สำหรับผู้ดูแล)
|
||||
command.description.invite=เชิญผู้เล่นเข้าร่วมแคลนของคุณ
|
||||
command.description.fee.check=ตรวจสอบค่าธรรมเนียมของแคลนและสถานะการใช้งาน
|
||||
command.description.fee.set=ตั้งค่าธรรมเนียมของแคลน
|
||||
command.description.bank.status=ตรวจสอบยอดเงินในธนาคารของแคลนคุณ
|
||||
command.description.bank.admin.status=ตรวจสอบยอดเงินในธนาคารของแคลน (สำหรับแอดมิน)
|
||||
command.description.bank.withdraw.all=ถอนเงินทั้งหมดออกจากธนาคารของแคลน
|
||||
command.description.bank.withdraw.amount=ถอนเงินจำนวนหนึ่งออกจากธนาคารของแคลน
|
||||
command.description.bank.admin.take=นำเงินจำนวนหนึ่งออกจากธนาคารของแคลน (สำหรับแอดมิน
|
||||
command.description.bank.deposit.all=ฝากเงินทั้งหมดของคุณเข้าไปในธนาคารของแคลน
|
||||
command.description.bank.deposit.amount=ฝากเงินจำนวนหนึ่งเข้าไปในธนาคารของแคลน
|
||||
command.description.bank.admin.give=มอบเงินจำนวนหนึ่งให้กับธนาคารของแคลน
|
||||
command.description.bank.admin.set=ตั้งค่าจำนวนเงินในธนาคารของแคลน (สำหรับแอดมิน)
|
||||
command.description.war.start=เริ่มสงคราม
|
||||
command.description.war.end=จบสงคราม
|
||||
command.description.resetkdr.everyone=รีเซ็ตค่า KDR ของทุกคน
|
||||
command.description.resetkdr.player=รีเซ็ต KDR ของผู้เล่น
|
||||
command.description.resetkdr=รีเซ็ต KDR ของคุณ
|
||||
command.description.admin.demote=ลดระดับ leader จากเเคลนใด ๆ
|
||||
@@ -210,49 +160,8 @@ command.description.demote=ลดระดับ leader
|
||||
command.description.admin.promote=เลื่อนระดับสมาชิกจากเเคลนใด ๆ
|
||||
command.description.promote=เลื่อนระดับสมาชิกให้เป็น leader
|
||||
command.description.admin.permanent=สลับสถานะถาวรของเเคลนใด ๆ
|
||||
command.description.toggle.invite=เปิด/ปิด การให้ผู้เล่นส่งคำเชิญเข้าร่วมแคลนถึงคุณ
|
||||
command.description.toggle.tag=เปิด/ปิด การแสดงแท็กของแคลนถัดจากชื่อของคุณ
|
||||
command.description.toggle.deposit=เปิด/ปิด การฝากเงินในธนาคารของแคลน
|
||||
command.description.toggle.withdraw=เปิด/ปิด การถอนเงินจากธนาคารของแคลน
|
||||
command.description.toggle.fee=เปิด/ปิด ค่าธรรมเนียมของแคลน
|
||||
command.description.alliances=แสดงรายการพันธมิตรของทุกแคลน
|
||||
command.description.coords=แสดงพิกัดของสมาชิกในแคลนของคุณ
|
||||
command.description.rank.assign=มอบระดับให้สมาชิก
|
||||
command.description.rank.unassign=นำสมาชิกออกจากระดับที่ได้รับ
|
||||
command.description.rank.create=สร้างแคลนใหม่
|
||||
command.description.rank.delete=ลบแคลน\n
|
||||
command.description.rank.setdisplayname=ตั้งชื่อแสดงของแคลน
|
||||
command.description.rank.setdefault=ตั้งค่าระดับเริ่มต้นของแคลน
|
||||
command.description.rank.removedefault=ลบระดับเริ่มต้นของแคลน
|
||||
command.description.rank.permissions.available=แสดงรายการสิทธิ์ที่มีให้ใช้สำหรับระดับในแคลน
|
||||
command.description.rank.permissions.rank=แสดงสิทธิ์ที่มีอยู่ของระดับในแคลน
|
||||
command.description.rank.permissions.add=เพิ่มสิทธิ์ให้ระดับในแคลน
|
||||
command.description.rank.permissions.remove=ลบสิทธิ์ออกจากระดับในแคลน
|
||||
command.description.rename=เปลี่ยนชื่อแคลนของคุณ
|
||||
command.description.mod.rename=เปลี่ยนชื่อแคลน (สำหรับผู้ดูแลระบบ)
|
||||
command.description.locale=ตั้งค่าภาษาในแคลนของคุณ
|
||||
command.description.mod.locale=ตั้งค่าภาษาของผู้เล่นในแคลน (สำหรับผู้ดูแลระบบ)
|
||||
home-menu=วาร์ปไปยังฐานหลักของแคลน
|
||||
home-set-menu=ตั้งค่าฐานหลักของแคลน
|
||||
home-clear-menu=ล้างฐานหลักของแคลน
|
||||
clan=ดูข้อมูลแคลน
|
||||
allies=ดูพันธมิตรของแคลน
|
||||
alliances=พันธมิตร
|
||||
coords=พิกัด
|
||||
name=ดูชื่อแคลน
|
||||
distance=ดูระยะทางระหว่างแคลน
|
||||
coords.upper=พิกัด
|
||||
world=โลก
|
||||
kdr=อัตราส่วนฆ่าตาย (Kill/Death Ratio)
|
||||
members=สมาชิกแคลน
|
||||
clans.lower=รายชื่อแคลน
|
||||
rival=ศัตรูของแคลน
|
||||
civilian=พลเรือน (ผู้เล่นที่ไม่สังกัดแคลน)
|
||||
neutral=สถานะเป็นกลาง
|
||||
ally=พันธมิตรของแคลน
|
||||
free.agent=ผู้เล่นอิสระ (ยังไม่มีแคลน)
|
||||
days=จำนวนวัน
|
||||
rivals=\ รายชื่อศัตรูของแคลน
|
||||
rivalries=การแข่งขัน
|
||||
online=ออนไลน์
|
||||
player=ผู้เล่น
|
||||
@@ -261,11 +170,7 @@ leader=หัวหน้าแคลน
|
||||
roster=บัญชีรายชื่อ
|
||||
trusted=เชื่อถือได้ (Automatic Translation)
|
||||
untrusted=ไม่น่าเชื่อถือ (Automatic Translation)
|
||||
in.rank=อยู่ในระดับของแคลน
|
||||
deaths=
|
||||
weights=
|
||||
stats=สถานะ
|
||||
health=Health
|
||||
vitals=พลังชีวิต
|
||||
profile=ข้อมูลส่วนตัว
|
||||
rank=อันดับ
|
||||
@@ -280,8 +185,6 @@ allow=ยินยอม
|
||||
block=บล็อก
|
||||
auto=อัตโนมัติ
|
||||
war=สงคราม
|
||||
gui.allies.title=ดูพันธมิตรของแคลน
|
||||
gui.rivals.title=\ รายชื่อศัตรูของแคลน
|
||||
# suppress inspection "TrailingSpacesInProperty"
|
||||
# suppress inspection "TrailingSpacesInProperty"
|
||||
# suppress inspection "TrailingSpacesInProperty"
|
||||
|
||||
@@ -94,7 +94,6 @@ help.command=yardım
|
||||
leave.command=ayrıl
|
||||
join.command=katıl
|
||||
mute.command=sustur
|
||||
tag.completion=
|
||||
acf-core.parameter.amount=Miktar
|
||||
acf-core.parameter.member=üye
|
||||
acf-core.parameter.rank=rütbe
|
||||
@@ -233,8 +232,6 @@ command.description.rank.permissions.add=Bir rütbeye izin ekler
|
||||
command.description.rank.permissions.remove=Bir rütbeden bir izni kaldırır
|
||||
command.description.rename=Klanına Yeni Bir İsim Ver
|
||||
command.description.mod.rename=Klana Yeni Bir İsim Ver
|
||||
command.description.locale=
|
||||
command.description.mod.locale=turkish
|
||||
home-menu=/{0} ev{1} - Klan evine ışınlanma
|
||||
home-set-menu=/{0} ev ayarla{1} - Klan evini ayarla
|
||||
home-clear-menu=/{0} ev temizle{1} - Klanın evini temizle
|
||||
@@ -367,7 +364,6 @@ clan.wide.friendly.fire.blocked=Klan çapında dost ateşi engellendi
|
||||
clan.wide.friendly.fire.is.allowed=Klan çapında dost ateşine izin verildi
|
||||
you.are.the.only.member.online=Çevrimiçi tek üye sizsiniz
|
||||
your.clan.color.tag.cannot.be.longer.than.characters=&cKlanınızın renkli etiketi {0} karakterden uzun olamaz
|
||||
your.clan.tag.cannot.be.longer.than.characters=&Klanınızın etiketi {0} karakterden uzun olamaz
|
||||
you.cannot.set.colored.ranks=Renkli rütbeler ayarlayamazsınız
|
||||
your.clan.name.cannot.be.longer.than.characters=Klanınızın adı {0} karakterden uzun olamaz
|
||||
your.clan.name.must.be.longer.than.characters=Klanınızın adı {0} karakterden uzun olmalıdır
|
||||
|
||||
@@ -11,7 +11,7 @@ balance.command=balance
|
||||
list.order.asc=asc
|
||||
list.order.desc=desc
|
||||
list.type.name=name
|
||||
list.type.kdr=В/С
|
||||
list.type.kdr=співвідн. В/С
|
||||
list.type.size=size
|
||||
list.type.founded=founded
|
||||
list.type.active=active
|
||||
@@ -43,7 +43,7 @@ assign.command=assign
|
||||
unassign.command=unassign
|
||||
rival.command=rival
|
||||
bb.command=bb
|
||||
display.command=display
|
||||
display.command=відображення
|
||||
clear.command=clear
|
||||
modtag.command=modtag
|
||||
rename.command=перейменувати
|
||||
@@ -94,12 +94,10 @@ help.command=help
|
||||
leave.command=leave
|
||||
join.command=join
|
||||
mute.command=mute
|
||||
tag.completion=[tag]
|
||||
name.completion=[name]
|
||||
acf-core.parameter.amount=сума
|
||||
acf-core.parameter.member=учасник
|
||||
acf-core.parameter.amount=кількість
|
||||
acf-core.parameter.member=Учасник
|
||||
acf-core.parameter.rank=rank
|
||||
acf-core.parameter.leader=лідер
|
||||
acf-core.parameter.leader=Лідер
|
||||
acf-core.parameter.displayname=відображуване ім'я
|
||||
acf-core.parameter.permission=дозвіл
|
||||
acf-core.parameter.message=повідомлення
|
||||
@@ -118,14 +116,14 @@ command.description.land.allow.interact=Дозволяє членам клану
|
||||
command.description.land.allow.container=Дозволяє членам клану відчиняти сховища на вашій території
|
||||
command.description.land.allow.place=Дозволяє членам клану розміщувати блоки на вашій території
|
||||
command.description.land.allow.break=Дозволяє членам клану ламати блоки на вашій території
|
||||
command.description.land.allow.damage=Дозволяє членам клану наносити та отримувати шкоду на вашій території
|
||||
command.description.land.allow.damage=Дозволяє членам клану наносити та отримувати пошкодження на вашій території
|
||||
command.description.land.block.all=Забороняє усі дії на вашій території
|
||||
command.description.land.block.interact_entity=Забороняє членам клану взаємодіяти з сутностями на вашій території
|
||||
command.description.land.block.interact=Забороняє членам клану взаємодіяти на вашій території
|
||||
command.description.land.block.container=Забороняє членам клану відчиняти сховища на вашій території
|
||||
command.description.land.block.place=Забороняє членам клану розміщувати блоки на вашій території
|
||||
command.description.land.block.break=Забороняє членам клану ламати блоки на вашій території
|
||||
command.description.land.block.damage=Забороняє учасникам клану заподіювати шкоду на вашій території
|
||||
command.description.land.block.damage=Забороняє учасникам клану заподіювати шкоду на вашій землі
|
||||
command.description.stats=Показує статистику учасників вашого клану
|
||||
command.description.rivalries=Показує усіх супротивників клану
|
||||
command.description.mostkilled=Показує спільну статистику вбивств на усьому сервері
|
||||
@@ -174,7 +172,7 @@ command.description.mod.bb.display=Показує дошку оголошень
|
||||
command.description.mod.bb.clear=Очищує дошку оголошень вашого клану
|
||||
command.description.mod.bb.post=Публікує повідомлення для дошки оголошень вашого клану
|
||||
command.description.place=Розмістити гравця в клані
|
||||
command.description.reload=Перезавантаження плагіна та його конфігурації
|
||||
command.description.reload=Перезапускає плаґін та його конфігурацію
|
||||
command.description.trust=Довіряти учаснику
|
||||
command.description.untrust=Не довіряти учаснику
|
||||
command.description.resign=Вийти з вашого клану
|
||||
@@ -204,9 +202,9 @@ command.description.bank.admin.give=Видати суму грошей в кла
|
||||
command.description.bank.admin.set=Встановити суму грошей в клановому банку
|
||||
command.description.war.start=Почати війну
|
||||
command.description.war.end=Закінчити війну
|
||||
command.description.resetkdr.everyone=Скидає В/С всіх гравців
|
||||
command.description.resetkdr.player=Скидає В/С гравця
|
||||
command.description.resetkdr=Скидає ваші В/С
|
||||
command.description.resetkdr.everyone=Скидає співвідн. В/С всіх гравців
|
||||
command.description.resetkdr.player=Скидає співвідн. В/С гравця
|
||||
command.description.resetkdr=Скидає ваше співвідн. В/С
|
||||
command.description.admin.demote=Понизити лідера з будь-якого клану
|
||||
command.description.demote=Понизити лідера
|
||||
command.description.admin.promote=Підвищити будь-якого учасника з будь-якого клану
|
||||
@@ -235,7 +233,6 @@ command.description.rank.permissions.remove=Забирає дозвіл зі з
|
||||
command.description.rename=Перейменувати ваш клан
|
||||
command.description.mod.rename=Перейменовує клан
|
||||
command.description.locale=Sets your language
|
||||
command.description.mod.locale=Встановити мову гравця
|
||||
home-menu=/{0} home{1} - Телепорт до бази клану
|
||||
home-set-menu=/{0} home set{1} - Встановлює базу клану
|
||||
home-clear-menu=/{0} home clear{1} - Видаляє базу клану
|
||||
@@ -247,7 +244,7 @@ name=Ім'я
|
||||
distance=Відстань
|
||||
coords.upper=Координати
|
||||
world=Світ
|
||||
kdr=В/С
|
||||
kdr=Співвідн. В/С
|
||||
members=Учасники
|
||||
clans.lower=клани
|
||||
rival=Суперник
|
||||
@@ -261,7 +258,7 @@ rivalries=rivalries
|
||||
online=В мережі
|
||||
player=Гравець
|
||||
seen=Був у мережі
|
||||
leader=лідер
|
||||
leader=Лідер
|
||||
roster=roster
|
||||
trusted=довірений
|
||||
untrusted=не довірений
|
||||
@@ -368,17 +365,10 @@ clan.wide.friendly.fire.blocked=Дружній вогонь у клані заб
|
||||
clan.wide.friendly.fire.is.allowed=Дружній вогонь у клані дозволений
|
||||
you.are.the.only.member.online=Ви єдиний учасник в мережі
|
||||
your.clan.color.tag.cannot.be.longer.than.characters=&cКольоровий теґ вашого клану не може бути довшим за {0} символів
|
||||
your.clan.tag.cannot.be.longer.than.characters=&cТег вашого клану не може бути довшим за {0} символів
|
||||
your.clan.tag.must.be.longer.than.characters=&cТег вашого клану повинен бути довшим за {0} символів
|
||||
your.tag.cannot.contain.the.following.colors=&cВаш тег не може містити наступні кольори\: {0}
|
||||
your.tag.doesnt.meet.the.requirements=&cВаш тег не відповідає вимогам.
|
||||
your.tag.cannot.contain.color.codes=&cВаш тег не може містити коди кольорів
|
||||
your.clan.tag.can.only.contain.letters.numbers.and.color.codes=&cТег вашого клану може містити лише латинські літери, цифри та коди кольору
|
||||
you.cannot.set.colored.ranks=Ви не можете встановлювати кольорові звання
|
||||
your.clan.name.cannot.be.longer.than.characters=Теґ вашого клану не може бути довшим за {0} символів
|
||||
your.clan.name.must.be.longer.than.characters=Ім'я вашого клану повинне бути довшим за {0} символів
|
||||
your.clan.name.cannot.contain.color.codes=Ім'я клану не може містити коди кольору
|
||||
that.tag.name.is.disallowed=&cЦей тег заборонений
|
||||
you.must.first.resign=Спершу вам необхідно вийти з {0}
|
||||
clan.with.this.tag.already.exists=Клан з таким теґом вже існує
|
||||
get.your.clan.verified.to.access.advanced.features=Отримайте підтвердження клану, щоб отримати доступ до додаткових функцій
|
||||
@@ -417,8 +407,6 @@ kdr.0=В/С\: {0}
|
||||
inactive.0=Неактивно\: {0}
|
||||
clan.commands=кланові команди
|
||||
you.can.only.modify.the.color.and.case.of.the.tag=Ви можете змінювати колір і регістр теґу
|
||||
locale.has.been.changed=&cВаша мова була змінена
|
||||
locale.is.prohibited=&cВибір мови на сервері заборонений.
|
||||
tag.changed.to.0=Теґ змінено на {0}
|
||||
0.tag.changed.to.1=&bТеґ {0} успішно змінено на {1}
|
||||
name.0=Ім'я\: {0}
|
||||
@@ -548,7 +536,7 @@ yes=Так
|
||||
cancel=Скасувати
|
||||
resign.confirmation=Ви впевнені, що хочете піти з клану? {0}
|
||||
disband.confirmation=Ви впевнені, що хочете розпустити свій клан? {0}
|
||||
resetkdr.confirmation=Ви впевнені, що бажаєте скинути В/С? {0}
|
||||
resetkdr.confirmation=Ви впевнені, що бажаєте скинути KDR? {0}
|
||||
resign.success=Ви успішно вийшли зі свого клану
|
||||
you.cannot.demote.the.last.leader=Ви не можете понизити останнього лідера
|
||||
you.cannot.move.the.last.leader=Ви не можете перемістити останнього лідера
|
||||
@@ -599,7 +587,7 @@ deposit.not.allowed=Депозит не дозволений, використа
|
||||
withdraw.not.allowed=Зняття грошей не дозволене, використайте /%clan %toggle %withdraw, щоб дозволити
|
||||
resign.request.cancelled=Запит на вихід скасовано
|
||||
disband.request.cancelled=Запит на розпущення клану скасовано
|
||||
resetkdr.request.cancelled=Запит на скидання В/С скасовано
|
||||
resetkdr.request.cancelled=Запит на скидання KDR скасовано
|
||||
clan.create.request.cancelled=Запит на створення клану скасовано
|
||||
rank.create.request.cancelled=Запит на створення звання скасовано
|
||||
promotion.vote.has.been.requested.from.all.leaders=Голоси за підвищення надійшли від усіх лідерів
|
||||
@@ -610,12 +598,12 @@ chat.joined=приєднався
|
||||
chat.not.joined=не приєднався
|
||||
chat.didnt.join=&bВи не приєднались до цього каналу
|
||||
gui.loading=&7Завантаження...
|
||||
gui.back.title=&fПовернутися
|
||||
gui.back.title=&fНазад
|
||||
gui.previous.page.title=&fМинула сторінка
|
||||
gui.next.page.title=&fНаступна сторінка
|
||||
gui.lore.no.permission=&cУ вас немає прав, щоб бачити це\!
|
||||
gui.main.title={0} - Меню клану
|
||||
gui.main.languageselector.title=&fЗмінити мову
|
||||
gui.main.languageselector.title=&fОберіть вашу мову
|
||||
gui.main.languageselector.lore.left.click=&7ЛКМ, щоб вибрати вашу мову
|
||||
gui.main.languageselector.lore.right.click=&7ПКМ, щоб допомогти з перекладом
|
||||
gui.main.other.commands.title=&fІнші команди
|
||||
@@ -625,9 +613,9 @@ gui.main.clan.list.lore=&7ЛКМ, щоб переглянути список к
|
||||
gui.main.reset.kdr.title=&fСкинути В/С
|
||||
gui.main.reset.kdr.lore.price=&7Ціна\: &b{0}
|
||||
gui.main.reset.kdr.lore=&7ЛКМ, щоб скинути свої В/С
|
||||
gui.main.leaderboard.title=&fТаблиця лідерів
|
||||
gui.main.leaderboard.title=&f Табличка лідерів
|
||||
gui.main.leaderboard.lore=&7ЛКМ, щоб переглянути таблицю лідерів
|
||||
gui.main.staff.title=&fПанель адміністратора
|
||||
gui.main.staff.title=&f Панель адміністратора
|
||||
gui.main.staff.lore=&7ЛКМ, щоб відкрити панель адміністратора
|
||||
gui.staff.title=Панель адміністратора
|
||||
gui.staff.clan.list.lore.left.click=&7ЛКМ, щоб переглянути всі клани
|
||||
@@ -636,7 +624,7 @@ gui.player.list.title=Список гравців
|
||||
gui.staff.player.list.title=&f Список гравців
|
||||
gui.staff.player.list.lore.left.click=&7ЛКМ, щоб побачити всіх гравців
|
||||
gui.staff.player.list.lore.right.click=&7ПКМ, щоб побачити всіх гравців в мережі
|
||||
gui.staff.global.ff.title=&fГлобальний "вогонь по своїм"
|
||||
gui.staff.global.ff.title=&f Глобальний дружній вогонь
|
||||
gui.staff.global.ff.lore.status=&7Статус\: &b{0}
|
||||
gui.staff.global.ff.lore.toggle=&7ЛКМ, щоб змінити статус дружнього вогню
|
||||
gui.staff.reload.title=&fПерезавантажити
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
description.command=description
|
||||
description.command=描述
|
||||
create.command=创建
|
||||
delete.command=删除
|
||||
rank.command=排名
|
||||
@@ -94,8 +94,6 @@ help.command=用户指南
|
||||
leave.command=离开
|
||||
join.command=加入
|
||||
mute.command=禁言
|
||||
tag.completion=[tag]
|
||||
name.completion=[name]
|
||||
acf-core.parameter.amount=数量
|
||||
acf-core.parameter.member=成员
|
||||
acf-core.parameter.rank=排名
|
||||
@@ -106,7 +104,7 @@ acf-core.parameter.message=信息
|
||||
acf-core.parameter.tag=标签
|
||||
acf-core.parameter.name=名称
|
||||
acf-core.parameter.fee=费用
|
||||
acf-core.parameter.description=description
|
||||
acf-core.parameter.description=描述
|
||||
acf-core.parameter.player=玩家
|
||||
acf-core.parameter.clan=帮派
|
||||
acf-core.parameter.type=类型
|
||||
@@ -418,7 +416,6 @@ inactive.0=不活跃\: {0}
|
||||
clan.commands=帮派命令
|
||||
you.can.only.modify.the.color.and.case.of.the.tag=你只能更改标签的颜色和大小写
|
||||
locale.has.been.changed=&c语言已切换
|
||||
locale.is.prohibited=&c服务器未开放语言选择功能.
|
||||
tag.changed.to.0=标签更改为 {0}
|
||||
0.tag.changed.to.1=&b成功将 {0} 的标签修改为 {1}
|
||||
name.0=名称\: {0}
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
Reference in new issue
Block a user