portals commands + logger addon finished

This commit is contained in:
SuperRonanCraft 2020-11-16 00:04:52 -05:00
parent 7d018b748f
commit 90c02ed1fd
32 changed files with 406 additions and 140 deletions

View File

@ -87,7 +87,7 @@
<dependency>
<groupId>me.SuperRonanCraft</groupId>
<artifactId>BetterRTP</artifactId>
<version>2.14.5</version>
<version>LATEST</version>
<scope>provided</scope>
</dependency>
</dependencies>

View File

@ -15,4 +15,9 @@ public interface Addon {
//Unload the addon if enabled
void unload();
//Ability to grab a file
default Files.FILETYPE getFile(Files.FILETYPE filetype) {
return Main.getInstance().getFiles().getType(filetype);
}
}

View File

@ -1,13 +1,10 @@
package me.SuperRonanCraft.BetterRTPAddons;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTPAddons.flashback.AddonFlashback;
import me.SuperRonanCraft.BetterRTPAddons.interfaces.AddonInterface;
import me.SuperRonanCraft.BetterRTPAddons.logger.AddonLogger;
import me.SuperRonanCraft.BetterRTPAddons.portals.AddonPortals;
import org.bukkit.Bukkit;
import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener;
import me.SuperRonanCraft.BetterRTPAddons.addons.flashback.AddonFlashback;
import me.SuperRonanCraft.BetterRTPAddons.addons.interfaces.AddonInterface;
import me.SuperRonanCraft.BetterRTPAddons.addons.logger.AddonLogger;
import me.SuperRonanCraft.BetterRTPAddons.addons.portals.AddonPortals;
import java.util.ArrayList;
import java.util.List;
@ -19,10 +16,7 @@ public class AddonsHandler {
AddonsCommand cmd = new AddonsCommand();
public void load() {
for (Addons addon : addons) {
addon.disable();
}
addons.clear();
unload();
for (Addons addon : Addons.values())
if (addon.isEnabled()) {
addon.load();
@ -33,11 +27,18 @@ public class AddonsHandler {
BetterRTP.getInstance().getCmd().registerCommand(cmd, false);
}
public void unload() {
for (Addons addon : addons)
addon.disable();
addons.clear();
}
enum Addons {
LOGGER(new AddonLogger()),
FLASH_BACK(new AddonFlashback()),
PORTALS(new AddonPortals()),
INTERFACES(new AddonInterface()),
LOGGER(new AddonLogger());
INTERFACES(new AddonInterface())
;
Addon addon;

View File

@ -1,6 +1,5 @@
package me.SuperRonanCraft.BetterRTPAddons;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.YamlConfiguration;
@ -12,7 +11,11 @@ import java.util.List;
import java.util.Map;
public class Files {
List<FILETYPE> types = new ArrayList<>();
private List<FILETYPE> types = new ArrayList<>();
public FILETYPE getType(FILETYPE type) {
return types.get(types.indexOf(type));
}
void load() {
types.clear();
@ -28,6 +31,7 @@ public class Files {
private final String fileName;
private final YamlConfiguration config = new YamlConfiguration();
private final File file;
boolean loaded = false;
FILETYPE(String str) {
this.fileName = str + ".yml";
@ -85,6 +89,7 @@ public class Files {
//PROCCESSING
private void load() {
loaded = true;
if (!file.exists()) {
Main.getInstance().saveResource(fileName, false);
try {
@ -95,7 +100,7 @@ public class Files {
} else {
try {
config.load(file);
final InputStream in = BetterRTP.getInstance().getResource(fileName);
final InputStream in = Main.getInstance().getResource(fileName);
if (in != null) {
config.setDefaults(YamlConfiguration.loadConfiguration(new InputStreamReader(in)));
config.options().copyDefaults(true);

View File

@ -15,11 +15,20 @@ public class Main extends JavaPlugin {
load();
}
@Override
public void onDisable() {
addonsHandler.unload();
}
void load() {
files.load();
addonsHandler.load();
}
public Files getFiles() {
return files;
}
public AddonsHandler getAddonsHandler() {
return addonsHandler;
}

View File

@ -1,6 +1,5 @@
package me.SuperRonanCraft.BetterRTPAddons;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandType;
import me.SuperRonanCraft.BetterRTP.player.commands.types.CmdReload;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_CommandEvent;
import org.bukkit.Bukkit;

View File

@ -1,4 +1,4 @@
package me.SuperRonanCraft.BetterRTPAddons.flashback;
package me.SuperRonanCraft.BetterRTPAddons.addons.flashback;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEvent;
import me.SuperRonanCraft.BetterRTPAddons.Addon;
@ -10,7 +10,10 @@ import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
//When rtp'ing, a player will be teleported back to old location after a set amount of time
public class AddonFlashback implements Addon, Listener {
@ -19,17 +22,37 @@ public class AddonFlashback implements Addon, Listener {
public final FlashbackMessages msgs = new FlashbackMessages();
public final FlashbackDatabase database = new FlashbackDatabase();
List<FlashbackPlayer> players = new ArrayList<>();
HashMap<Long, String> warnings = new HashMap<>();
public boolean isEnabled() {
return Files.FILETYPE.FLASHBACK.getBoolean("Enabled");
return getFile(Files.FILETYPE.FLASHBACK).getBoolean("Enabled");
}
@Override
public void load() {
Files.FILETYPE file = Files.FILETYPE.FLASHBACK;
Files.FILETYPE file = getFile(Files.FILETYPE.FLASHBACK);
this.time = file.getConfig().getLong("Time");
this.database.load(FlashbackDatabase.Columns.values());
warnings.clear();
Bukkit.getPluginManager().registerEvents(this, Main.getInstance());
List<Map<?, ?>> override_map = file.getConfig().getMapList("Timer.Warnings");
for (Map<?, ?> m : override_map)
for (Map.Entry<?, ?> entry : m.entrySet()) {
try {
Long secs = getLong(entry.getKey().toString());
warnings.put(secs, entry.getValue().toString());
Main.getInstance().getLogger().info("- Warnings: Time: '" + entry.getKey() + "' Message: '" + entry.getValue() + "' added");
} catch (NumberFormatException e) {
e.printStackTrace();
System.out.println("Warning value '" + entry.getKey().toString() + "' is " +
"invalid! Please make sure to format [- INTEGER: 'Message']");
}
}
}
private Long getLong(String str) throws NumberFormatException {
return Long.valueOf(str);
}
@Override

View File

@ -1,7 +1,6 @@
package me.SuperRonanCraft.BetterRTPAddons.flashback;
package me.SuperRonanCraft.BetterRTPAddons.addons.flashback;
import me.SuperRonanCraft.BetterRTPAddons.LocSerialization;
import me.SuperRonanCraft.BetterRTPAddons.Main;
import me.SuperRonanCraft.BetterRTPAddons.PlayerInfo;
import me.SuperRonanCraft.BetterRTPAddons.database.Database;
import me.SuperRonanCraft.BetterRTPAddons.database.DatabaseColumn;
@ -11,7 +10,6 @@ import org.bukkit.entity.Player;
import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.UUID;
import java.util.logging.Level;

View File

@ -1,4 +1,4 @@
package me.SuperRonanCraft.BetterRTPAddons.flashback;
package me.SuperRonanCraft.BetterRTPAddons.addons.flashback;
import me.SuperRonanCraft.BetterRTPAddons.AddonsMessages;
import me.SuperRonanCraft.BetterRTPAddons.Files;

View File

@ -1,4 +1,4 @@
package me.SuperRonanCraft.BetterRTPAddons.flashback;
package me.SuperRonanCraft.BetterRTPAddons.addons.flashback;
import io.papermc.lib.PaperLib;
import me.SuperRonanCraft.BetterRTPAddons.Main;

View File

@ -1,4 +1,4 @@
package me.SuperRonanCraft.BetterRTPAddons.interfaces;
package me.SuperRonanCraft.BetterRTPAddons.addons.interfaces;
import me.SuperRonanCraft.BetterRTPAddons.Addon;
import me.SuperRonanCraft.BetterRTPAddons.Files;
@ -7,7 +7,7 @@ public class AddonInterface implements Addon {
@Override
public boolean isEnabled() {
return Files.FILETYPE.INTERFACE.getBoolean("Enabled");
return getFile(Files.FILETYPE.INTERFACE).getBoolean("Enabled");
}
@Override

View File

@ -0,0 +1,44 @@
package me.SuperRonanCraft.BetterRTPAddons.addons.interfaces;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
import me.SuperRonanCraft.BetterRTPAddons.addons.portals.cmds.PortalsCommand_Create;
import me.SuperRonanCraft.BetterRTPAddons.addons.portals.cmds.PortalsCommand_Loc1;
import me.SuperRonanCraft.BetterRTPAddons.addons.portals.cmds.PortalsCommand_Loc2;
import me.SuperRonanCraft.BetterRTPAddons.addons.portals.cmds.PortalsCommands;
import org.bukkit.command.CommandSender;
import java.util.List;
public class InterfaceCommand implements RTPCommand, RTPCommandHelpable {
AddonInterface pl;
InterfaceCommand(AddonInterface pl) {
this.pl = pl;
}
public String getName() {
return "interface";
}
@Override
public void execute(CommandSender sendi, String label, String[] args) {
sendi.sendMessage("Interface command!");
}
@Override
public List<String> tabComplete(CommandSender sendi, String[] args) {
return null;
}
@Override
public boolean permission(CommandSender sendi) {
return BetterRTP.getInstance().getPerms().checkPerm("betterrtp.addon.portals", sendi);
}
@Override
public String getHelp() {
return null;//pl.msgs.getHelp();
}
}

View File

@ -0,0 +1,3 @@
package me.SuperRonanCraft.BetterRTPAddons.addons.interfaces;
public class InterfaceMenus {}

View File

@ -0,0 +1,129 @@
package me.SuperRonanCraft.BetterRTPAddons.addons.logger;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTP.player.commands.types.CmdReload;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_CommandEvent;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEvent;
import me.SuperRonanCraft.BetterRTPAddons.Addon;
import me.SuperRonanCraft.BetterRTPAddons.Files;
import me.SuperRonanCraft.BetterRTPAddons.Main;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.*;
public class AddonLogger implements Addon, Listener {
private String format;
private boolean toConsole;
Logger logger;
FileHandler handler;
ConsoleHandler consoleHandler_rtp, consoleHandler_main;
@Override
public boolean isEnabled() {
return getFile(Files.FILETYPE.LOGGER).getBoolean("Enabled");
}
@Override
public void load() {
Bukkit.getPluginManager().registerEvents(this, Main.getInstance());
this.format = getFile(Files.FILETYPE.LOGGER).getString("Format");
this.toConsole = getFile(Files.FILETYPE.LOGGER).getBoolean("LogToConsole");
try {
File f = new File(Main.getInstance().getDataFolder() + File.separator + "log.txt");
handler = new FileHandler(f.getPath(), true);
handler.setFormatter(new MyFormatter(this));
logger = Logger.getLogger(Main.getInstance().getName() + "-Log");
logger.setUseParentHandlers(this.toConsole); //Disable logging to console
logger.addHandler(handler);
//Log copying
consoleHandler_rtp = new MyConsole(this.logger, BetterRTP.getInstance().getName());
BetterRTP.getInstance().getLogger().addHandler(consoleHandler_rtp);
consoleHandler_main = new MyConsole(this.logger, Main.getInstance().getName());
Main.getInstance().getLogger().addHandler(consoleHandler_main);
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void unload() {
HandlerList.unregisterAll(this);
logger.removeHandler(handler);
handler.close();
BetterRTP.getInstance().getLogger().removeHandler(consoleHandler_rtp);
Main.getInstance().getLogger().removeHandler(consoleHandler_main);
}
@EventHandler
public void onCmd(RTP_CommandEvent e) {
String _str = e.getSendi().getName() + " executed `/rtp " + e.getCmd().getName() + "` at " + getDate();
Level lvl = Level.INFO;
if (e.getCmd() instanceof CmdReload)
lvl = Level.WARNING;
log(_str, lvl);
}
@EventHandler
public void onTeleport(RTP_TeleportPostEvent e) {
String _str = e.getPlayer().getName() + " has teleported to " + e.getLocation().toString()
+ " in world " + e.getLocation().getWorld().getName()
+ " at" + getDate();
log(_str, Level.INFO);
}
private String getDate() {
SimpleDateFormat format = new SimpleDateFormat(this.format);
return format.format(new Date());
}
private void log(String str, Level lvl) {
logger.log(lvl, str);
}
//Make the logs come out readable
static class MyFormatter extends Formatter {
AddonLogger addon;
MyFormatter(AddonLogger addon) {
this.addon = addon;
}
@Override
public String format(LogRecord record) {
return addon.getDate() + " [" + record.getLevel().getName() + "]: " + record.getMessage() + '\n';
}
}
//Copy one log to another log
static class MyConsole extends ConsoleHandler {
Level lvl;
Logger logger;
MyConsole(Logger logger, String name) {
this.logger = logger;
lvl = new MyLevel(name, Integer.MAX_VALUE);
}
@Override
public void publish(LogRecord record) {
logger.log(lvl, record.getMessage());
}
}
static class MyLevel extends Level {
protected MyLevel(String name, int value) {
super(name, value);
}
}
}

View File

@ -1,12 +1,8 @@
package me.SuperRonanCraft.BetterRTPAddons.portals;
package me.SuperRonanCraft.BetterRTPAddons.addons.portals;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEvent;
import me.SuperRonanCraft.BetterRTPAddons.Addon;
import me.SuperRonanCraft.BetterRTPAddons.Files;
import me.SuperRonanCraft.BetterRTPAddons.Main;
import me.SuperRonanCraft.BetterRTPAddons.flashback.FlashbackDatabase;
import org.bukkit.event.EventHandler;
//With a gui, a player
public class AddonPortals implements Addon {
@ -16,7 +12,7 @@ public class AddonPortals implements Addon {
private final PortalsDatabase database = new PortalsDatabase();;
public boolean isEnabled() {
return Files.FILETYPE.PORTALS.getBoolean("Enabled");
return getFile(Files.FILETYPE.PORTALS).getBoolean("Enabled");
}
@Override

View File

@ -1,9 +1,9 @@
package me.SuperRonanCraft.BetterRTPAddons.portals;
package me.SuperRonanCraft.BetterRTPAddons.addons.portals;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
import me.SuperRonanCraft.BetterRTPAddons.portals.cmds.*;
import me.SuperRonanCraft.BetterRTPAddons.addons.portals.cmds.*;
import org.bukkit.command.CommandSender;
import java.util.List;

View File

@ -1,6 +1,5 @@
package me.SuperRonanCraft.BetterRTPAddons.portals;
package me.SuperRonanCraft.BetterRTPAddons.addons.portals;
import me.SuperRonanCraft.BetterRTPAddons.Main;
import me.SuperRonanCraft.BetterRTPAddons.PlayerInfo;
import me.SuperRonanCraft.BetterRTPAddons.database.Database;
import me.SuperRonanCraft.BetterRTPAddons.database.DatabaseColumn;
@ -38,7 +37,7 @@ public class PortalsDatabase extends Database {
List<PlayerInfo> playerInfos = new ArrayList<>();
public PortalsDatabase(){
super(Main.getInstance(), "addon_portals");
super("addon_portals");
}
private final String createTable = "CREATE TABLE IF NOT EXISTS " + table + " (" +

View File

@ -1,4 +1,4 @@
package me.SuperRonanCraft.BetterRTPAddons.portals;
package me.SuperRonanCraft.BetterRTPAddons.addons.portals;
import me.SuperRonanCraft.BetterRTPAddons.AddonsMessages;
import me.SuperRonanCraft.BetterRTPAddons.Files;

View File

@ -1,4 +1,4 @@
package me.SuperRonanCraft.BetterRTPAddons.portals.cmds;
package me.SuperRonanCraft.BetterRTPAddons.addons.portals.cmds;
import org.bukkit.command.CommandSender;

View File

@ -1,4 +1,4 @@
package me.SuperRonanCraft.BetterRTPAddons.portals.cmds;
package me.SuperRonanCraft.BetterRTPAddons.addons.portals.cmds;
import org.bukkit.command.CommandSender;

View File

@ -1,4 +1,4 @@
package me.SuperRonanCraft.BetterRTPAddons.portals.cmds;
package me.SuperRonanCraft.BetterRTPAddons.addons.portals.cmds;
import org.bukkit.command.CommandSender;

View File

@ -0,0 +1,9 @@
package me.SuperRonanCraft.BetterRTPAddons.addons.portals.cmds;
import org.bukkit.command.CommandSender;
public interface PortalsCommands {
void execute(CommandSender sendi, String label, String[] args);
}

View File

@ -1,28 +0,0 @@
package me.SuperRonanCraft.BetterRTPAddons.logger;
import me.SuperRonanCraft.BetterRTPAddons.Addon;
import me.SuperRonanCraft.BetterRTPAddons.Files;
import me.SuperRonanCraft.BetterRTPAddons.Main;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener;
public class AddonLogger implements Addon, Listener {
@Override
public boolean isEnabled() {
return Files.FILETYPE.LOGGER.getBoolean("Enabled");
}
@Override
public void load() {
Bukkit.getPluginManager().registerEvents(this, Main.getInstance());
}
@Override
public void unload() {
HandlerList.unregisterAll(this);
}
}

View File

@ -1,9 +0,0 @@
package me.SuperRonanCraft.BetterRTPAddons.portals.cmds;
import org.bukkit.command.CommandSender;
public interface PortalsCommands {
public void execute(CommandSender sendi, String label, String[] args);
}

View File

@ -1,2 +1,8 @@
Enabled: false
Time: 120 #In seconds
Enabled: true
Timer:
Delay: 15 #In Seconds
Warnings: #Warning messages to send to a player when X amount of time is left
- 5: "&eYou have 5 seconds left! Grab all your materials quick!"
- 1: "&eHang on!"
Messages:
Warning: '&6This Teleport is temporary! &7You will be teleported back soon...'

View File

@ -1,2 +1,3 @@
Enabled: true
Debug: true
LogToConsole: true
Format: 'yyyy-MM-dd HH:mm:ss'

View File

@ -7,7 +7,7 @@
<groupId>me.SuperRonanCraft</groupId>
<artifactId>BetterRTP</artifactId>
<packaging>jar</packaging>
<version>2.14.5</version>
<version>3.0.0</version>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>

View File

@ -1,12 +1,9 @@
package me.SuperRonanCraft.BetterRTP.player.commands;
import com.bekvon.bukkit.residence.commands.list;
import com.bekvon.bukkit.residence.containers.cmd;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTPCooldown;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_CommandEvent;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEvent;
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
import org.bukkit.Bukkit;
import org.bukkit.block.Biome;

View File

@ -54,7 +54,18 @@ public class LangFile {
}
}
private final String[] defaultLangs = {"en.yml", "fr.yml", "ja.yml", "ru.yml", "chs.yml", "cht.yml", "du.yml", "es.yml", "cs.yml"};
private final String[] defaultLangs = {
"en.yml",
"fr.yml", //French
"ja.yml", //Japanese
"ru.yml", //Russian
"chs.yml", //Chinese Simplified
"cht.yml", //Chinese
"du.yml", //Dutch
"es.yml", //Spanish
"cs.yml", //Czech
"pl.yml" //Polish
};
private void generateDefaults() {
//Generate all language files

View File

@ -0,0 +1,69 @@
# Translation author: Farum (Discord)
Messages:
Prefix: '&7[&6BetterRTP&7] '
Success:
Paid: '&aZostałeś przeniesiony do&7 x=%x% y=%y% z=%z% za &c$%price%&7 w &f%attempts%
&7podejściach!'
Bypass: '&aZostałeś przeniesiony do&7 x=%x% y=%y% z=%z% w &f%attempts% &podejściach'
Loading: '&aZnaleziono bezpieczną strefę! &7Ładowanie chunków...'
Teleport: '&aTeleportuję... &fprosze czekać aż znajdziemy bezpieczną lokację!'
Failed:
Price: '&cNie udało się wykonać rtp z powodu niewystarczających środków! &7Musisz
mieć przynajmniej $%price% &7by wykonać rtp!'
NotSafe: '&cNie udało się znaleź bezpiecznego miejsca w %attempts% próbach! &7Nie
zostałeś przeniesiony!'
Hunger: '&cNie można wykonać rtp bo jesteś... &7zbyt głodny&c, zjedz coś mordo!'
Other:
Success: '&a%player% został steleportowany do&7 x=%x% y=%y% z=%z% w &f%attempts%
&7próbach!'
NotSafe: '&cNie udało się znaleźć bezpiecznego miejsca w %attempts% próbach! &7%player%
nie został losowo steleportowany!'
Biome: '&cWygląda na to, że biom&7 %biome%&c nie istnieje! &7Spróbuj użyć listy!'
Reload: '&ePrzeładowano konfigurację!'
NoPermission:
Basic: '&cHej! &7Nie masz uprawnień do tej komendy!'
World: '&cHej! &7Nie jesteś uprawniony by wykonać losową teleoprtację w świecie
%world%!'
DisabledWorld: '&cZablokowany świat %world%! &7Nie można wykonać losowej teleportacji!'
Cooldown: '&cWybacz! &7Nie możesz wykonać losowej teleportacji przez następne &c%time%
&7sekund!'
Locked: '&cWybacz! &7Wykorzystałeś wszystkie losowe teleportacje!'
Invalid: '&cNiewłaściwy argument. Spróbuj ''/%command% help'''
NotOnline: '&cGraz &7%player% &cnie jest online!'
Delay: '&aTeleportacja za &f%time% &asekund! Nie ruszaj się!'
Moved: '&cPoruszyłeś się! &7RTP został odwołany!'
NotExist: '&cWygląda na to, że świat &7%world% &cnie istnieje!'
Already: '&cUps! &7Wygląda na to, że jesteś podczas losowej teleportacji, cierpliwości!'
Sign: '&7Znak z komendą utworzony! &7Komendą jest... ''&f/rtp %command%&7'''
Edit:
Error: '&cBłąd! &7Wpisano niewłaściwą wartość!'
Set: '&bSukces! &7%type% ustawiony na %value%'
Remove: '&cUsunięto! &7Usunąłeś customowy świat %world%'
Help:
Prefix: '&e&m-----&6&l BetterRTP &8| Help &e&m-----'
Main: ' &7- &e/%command% &7- wykonuje losową teleportację!'
Biome: ' &7- &e/%command% biome <biome1, biome2...> &7- Losowo teleportuje do któregoś
z biomów'
Edit: ' &7- &e/%command% edit <default/world> [args...] &7- Edytuj niektóre ustawienia
pluginu'
Help: ' &7- &e/%command% help &7- Pokazuję listę z pomocą'
Info: ' &7- &e/%command% info [world/particles/shapes/potion_effects] &7- Pokazuje
wybrane informacje o parametrach pluginu'
Player: ' &7- &e/%command% player <player> [world] [biome1, biome2...] &7- Losowo
teleportuje innego gracza'
Reload: ' &7- &e/%command% reload &7- Przeładowuje plugin'
Settings: ' &7- &e/%command% settings &7- Pokazuje GUI z ustawieniami'
Test: ' &7- &e/%command% test &7- Testuje efekty teleportacji bez ruszania się z
miejsca'
Version: ' &7- &e/%command% version &7- Pokaż wersję pluginu'
World: ' &7- &e/%command% world <world> [biome1, biome2...] &7- Losowo teleportuj
do innego świata'
Usage:
Player: '&cUsage&7: /%command% player <player> [world] [biome1, biome2]'
World: '&cUsage&7: /%command% world <world> [biome1, biome2...]'
Biome: '&cUsage&7: /%command% biome <biome1, biome2...>'
Edit:
Base: '&cUsage&7: /%command% edit <default/world> [args...]'
Default: '&cUsage&7: /%command% edit default <max/min/useworldborder/center> <value>'
World: '&cUsage&7: /%command% edit world <world> <max/min/useworldborder/center>
<value>'

View File

@ -1,58 +1,57 @@
# Translation author: myfbone (GitHub)
# Translation author: Mats_brony (Forine.net)
Messages:
Prefix: '&7[&6BetterRTP&7] '
Success: ## Placeholders! %x% %y% and %z% are the x, y, and z coordinates that the player is being teleported to! #
Paid: '&aВас телепортировало на&7 x=%x% y=%y% z=%z% за &c$%price%&7, за &f%attempts% &7попыток!'
Bypass: '&aВас телепортировало на&7 x=%x% y=%y% z=%z% за &f%attempts% &7попыток'
# Loading: '&aSafe spot located! &7Loading chunks...'
# Teleport: '&aTeleporting... &fplease wait while we find a safe location!'
Success:
Paid: '&aВы телепортировались на &7x=&a%x% &7y=&a%y% &7z=&a%z% &7за &c$%price%&7, за &f%attempts% &7попытку(ок)!'
Bypass: '&aВы телепортировались на &7x=&a%x% &7y=&a%y% &7z=&a%z% &7за &f%attempts% &7попытку(ок)!'
Loading: '&aБезопасное место найдено! &7Загрузка чанков...'
Teleport: '&aТелепортация... &fпожалуйста, подождите, пока мы найдем безопасное место!'
Failed:
Price: '&cУ вас недостаточно денег для телепортации! &7У вас должно быть хотябы $%price% &7для rtp!'
NotSafe: '&cНе удалось найти безопасное место за %attempts% попыток! &7Вас не телепортировало!'
# Hunger: '&cCould not rtp because you are... &7too hungry&c, eat something fella!'
Price: '&cНе удалось выполнить rtp из-за недостатка средств! &7Вы должны иметь как минимум $%price% &7для rtp!'
NotSafe: '&cНе удалось найти безопасное место за %attempts% попытку(ок)! &7Вы не были телепортированы!'
Hunger: '&cНе удалось rtp, потому что ты... &7слишком голоден&c, съешь что-нибудь, приятель!'
Other:
Success: '&a%player% был телепортирован на&7 x=%x% y=%y% z=%z% за &f%attempts% &7попыток!'
NotSafe: '&cНе удалось найти безопасное место за %attempts% попыток! &7%player% не был телепортирован!'
# Biome: '&cSeems like the biome&7 %biome%&c does not exist! &7Try using the tab list!'
Reload: '&eКонфиг удачно перезагружен!'
Success: '&a%player% телепортирован на &7x=&a%x% &7y=&a%y% &7z=&a%z% &7за &f%attempts% &7попытку(ок)!'
NotSafe: '&cНе удалось найти безопасное место за %attempts% попытку(ок)! &7%player% не был телепортирован!'
Biome: '&cПохоже биом&7 %biome%&c не существует! &7Попробуйте использовать TAB!'
Reload: '&eКонфиг успешно перезагружен!'
NoPermission:
Basic: '&cИзвините! &7У вас недостаточно прав для использования этой команды!'
World: '&cИзвините! &7Вам запрещено использовать rtp в мире %world%!'
## %world% is the world the player is in that is disabled to rtp in! #
DisabledWorld: '&cОтключенный мир %world%! &7Не удалось телепортироваться!'
Cooldown: '&cИзвините! &7Вы не сможете использовать rtp ближайшие &c%time% &7сек.!'
Locked: '&cSorry! &7You''ve used up all your RTP''s!'
Invalid: '&cНеправильные параметры. Попробуйте ''/%command% help'''
Basic: '&cИзвините! &7У вас нет разрешения на использование этой команды!'
World: '&cИзвините! &7Вам не разрешено использовать rtp в %world% мире!'
DisabledWorld: '&cМир %world% исключён! &7Не удалось телепортироваться!'
Cooldown: '&cИзвините! &7Вы не можете использовать rtp еще &c%time% &7секунд(ы/у)!'
Locked: '&cИзвините! &7Вы израсходовали все свои попытки rtp!'
Invalid: '&cНедопустимый аргумент. Попробуйте ''/%command% help'''
NotOnline: '&cИгрок &7%player% &cне онлайн!'
Delay: '&aТелепортация через &f%time% &aсек.! Не двигайтесь!'
Moved: '&cВы подвинулись! &7RTP отменено!'
NotExist: '&cПохоже что мир &7%world% &cне существует!'
Already: '&cУуупс! &7Похоже вы уже телепортируетесь. Имейте терпение!'
# Sign: '&7Command sign has been created! &7Command is... ''&f/rtp %command%&7'''
# Edit:
# Error: '&cError! &7Invalid input provided!'
# Set: '&bSuccess! &7%type% set to %value%'
# Remove: '&cRemoved! &7You removed the Custom World %world%'
Delay: '&aТелепортация через &f%time% &aсекунд(ы/у)! Не двигайтесь!'
Moved: '&cВы двинулись &7rtp отменено!'
NotExist: '&cПохоже мир &7%world% &cне существует!'
Already: '&cОй! &7Похоже, вы уже используете rtp, наберитесь терпения!'
Sign: '&7Значение команды создано! &7Команда... ''&f/rtp %command%&7'''
Edit:
Error: '&cОшибка! &7Неверный ввод!'
Set: '&bУспех! &7%type% установлено %value%'
Remove: '&cУдалено! &7Вы удалили мир %world%'
Help:
# Prefix: '&e&m-----&6&l BetterRTP &8| Help &e&m-----'
Main: ' &7- &e/%command% &7- случайно телепортирует вас!'
# Biome: ' &7- &e/%command% biome <biome1, biome2...> &7- Randomly teleport withing these biomes'
# Edit: ' &7- &e/%command% edit <default/world> [args...] &7- Edit some plugin settings'
Help: ' &7- &e/%command% help &7- показывает этот список'
# Info: ' &7- &e/%command% info [world/particles/shapes/potion_effects] &7- View specific information about plugin parameters'
Player: ' &7- &e/%command% player <игрок> [мир] &7- случайно телепортирует игрока'
Reload: ' &7- &e/%command% reload &7- перезагружает плагин'
# Settings: ' &7- &e/%command% settings &7- Pull up a gui and edit some settings'
# Test: ' &7- &e/%command% test &7- Test out plugin effects after a teleport without moving'
# Version: ' &7- &e/%command% version &7- View currently running version'
World: ' &7- &e/%command% world <мир> &7- случайно телепортирует в другой мир'
Prefix: '&e&m-----&6&l BetterRTP &8| Help &e&m-----'
Main: ' &7- &e/%command% &7- случайный телепорт!'
Biome: ' &7- &e/%command% biome <biome1, biome2...> &7- рандомный телепорт в эти биомы'
Edit: ' &7- &e/%command% edit <default/world> [args...] &7- изменение настроек плагина'
Help: ' &7- &e/%command% help &7- посмотреть этот список'
Info: ' &7- &e/%command% info [world/particles/shapes/potion_effects] &7- просмотр конкретной информации о параметрах плагина'
Player: ' &7- &e/%command% player <player> [world] [biome1, biome2...] &7- рандомный телепорт игрока'
Reload: ' &7- &e/%command% reload &7- перезагрузка плагина'
Settings: ' &7- &e/%command% settings &7- открыть gui и изменить параметры'
Test: ' &7- &e/%command% test &7- просмотр эффектов после телепортирования
не двигаясь'
Version: ' &7- &e/%command% version &7- посмотреть текущую версию плагина'
World: ' &7- &e/%command% world <world> [biome1, biome2...] &7- рандомный телепорт
в другой мир'
Usage:
Player: '&cИспользование&7: /%command% player <игрок> [мир]'
World: '&cИспользование&7: /%command% world <мир>'
Biome: '&cUsage&7: /%command% biome <biome1, biome2...>'
# Edit:
# Base: '&cUsage&7: /%command% edit <default/world> [args...]'
# Default: '&cUsage&7: /%command% edit default <max/min/useworldborder/center> <value>'
# World: '&cUsage&7: /%command% edit world <world> <max/min/useworldborder/center> <value>'
Player: '&cИспользуйте&7: /%command% player <player> [world] [biome1, biome2]'
World: '&cИспользуйте&7: /%command% world <world> [biome1, biome2...]'
Biome: '&cИспользуйте&7: /%command% biome <biome1, biome2...>'
Edit:
Base: '&cИспользуйте&7: /%command% edit <default/world> [args...]'
Default: '&cИспользуйте&7: /%command% edit default <max/min/useworldborder/center> <value>'
World: '&cИспользуйте&7: /%command% edit world <world> <max/min/useworldborder/center> <value>'

View File

@ -1,5 +1,5 @@
main: me.SuperRonanCraft.BetterRTP.BetterRTP
version: '2.14.4'
version: '3.0.0'
name: BetterRTP
author: SuperRonanCraft
softdepend: [Vault, WorldGuard, GriefPrevention, Towny, Factions, RedProtect, Lands, Residence]