Merge branch 'master' into release

This commit is contained in:
md_5 2012-06-21 18:27:54 +10:00
commit 622d710aa9
15 changed files with 521 additions and 19 deletions

View File

@ -179,4 +179,6 @@ public interface ISettings extends IConf
boolean isTeleportInvulnerability();
long getLoginAttackDelay();
int getSignUsePerSecond();
}

View File

@ -388,7 +388,8 @@ public class Settings implements ISettings
cancelAfkOnMove = _cancelAfkOnMove();
getFreezeAfkPlayers = _getFreezeAfkPlayers();
itemSpawnBl = _getItemSpawnBlacklist();
loginAttackDelay = _loginAttackDelay();
loginAttackDelay = _getLoginAttackDelay();
signUsePerSecond = _getSignUsePerSecond();
kits = _getKits();
chatFormats.clear();
}
@ -808,7 +809,7 @@ public class Settings implements ISettings
private long loginAttackDelay;
private long _loginAttackDelay()
private long _getLoginAttackDelay()
{
return config.getLong("login-attack-delay", 0) * 1000;
}
@ -819,4 +820,18 @@ public class Settings implements ISettings
return loginAttackDelay;
}
private int signUsePerSecond;
private int _getSignUsePerSecond()
{
final int perSec = config.getInt("sign-use-per-second", 4);
return perSec > 0 ? perSec : 1;
}
@Override
public int getSignUsePerSecond()
{
return signUsePerSecond;
}
}

View File

@ -21,6 +21,7 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
private transient final Teleport teleport;
private transient long teleportRequestTime;
private transient long lastOnlineActivity;
private transient long lastThrottledAction;
private transient long lastActivity = System.currentTimeMillis();
private boolean hidden = false;
private transient Location afkPosition = null;
@ -669,4 +670,23 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
{
final boolean set = !vanished;
}
public boolean checkSignThrottle() {
if (isSignThrottled()) {
return true;
}
updateThrottle();
return false;
}
public boolean isSignThrottled()
{
final long minTime = lastThrottledAction + (1000 / ess.getSettings().getSignUsePerSecond());
return (System.currentTimeMillis() < minTime);
}
public void updateThrottle()
{
lastThrottledAction = System.currentTimeMillis();;
}
}

View File

@ -458,6 +458,17 @@ public abstract class UserData extends PlayerExtension implements IConf
config.save();
}
@Deprecated
public boolean isIgnoredPlayer(final String userName)
{
final IUser user = ess.getUser(userName);
if (user == null || !user.isOnline())
{
return false;
}
return isIgnoredPlayer(user);
}
public boolean isIgnoredPlayer(IUser user)
{
return (ignoredPlayers.contains(user.getName().toLowerCase(Locale.ENGLISH)) && !user.isAuthorized("essentials.chat.ignoreexempt"));

View File

@ -40,21 +40,21 @@ public class Commandban extends EssentialsCommand
return;
}
}
final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
String banReason;
if (args.length > 1)
{
banReason = _("banFormat", getFinalArg(args, 1), sender.getName());
banReason = _("banFormat", getFinalArg(args, 1), senderName);
}
else
{
banReason = _("banFormat", _("defaultBanReason"), sender.getName());
banReason = _("banFormat", _("defaultBanReason"), senderName);
}
user.setBanReason(banReason);
user.setBanned(true);
user.kickPlayer(banReason);
final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
for (Player onlinePlayer : server.getOnlinePlayers())
{

View File

@ -39,7 +39,7 @@ public class Commanditemdb extends EssentialsCommand
if (itemStack.getType() != Material.AIR)
{
int maxuses = itemStack.getType().getMaxDurability();
int durability = ((itemStack.getType().getMaxDurability() + 1) - itemStack.getDurability());
int durability = ((maxuses + 1) - itemStack.getDurability());
if (maxuses != 0)
{
sender.sendMessage(_("durability", Integer.toString(durability)));

View File

@ -44,12 +44,12 @@ public class Commandtempban extends EssentialsCommand
final String time = getFinalArg(args, 1);
final long banTimestamp = Util.parseDateDiff(time, true);
final String banReason = _("tempBanned", Util.formatDateDiff(banTimestamp));
final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
final String banReason = _("tempBanned", Util.formatDateDiff(banTimestamp), senderName);
user.setBanReason(banReason);
user.setBanTimeout(banTimestamp);
user.setBanned(true);
user.kickPlayer(banReason);
final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
for (Player onlinePlayer : server.getOnlinePlayers())
{

View File

@ -3,7 +3,6 @@ package com.earth2me.essentials.commands;
import static com.earth2me.essentials.I18n._;
import com.earth2me.essentials.User;
import org.bukkit.Server;
import org.bukkit.entity.Player;
public class Commandvanish extends EssentialsCommand
@ -30,7 +29,7 @@ public class Commandvanish extends EssentialsCommand
}
else
{
if (args[1].contains("on") || args[1].contains("ena") || args[1].equalsIgnoreCase("1"))
if (args[0].contains("on") || args[0].contains("ena") || args[0].equalsIgnoreCase("1"))
{
user.setVanished(true);
}

View File

@ -76,6 +76,10 @@ public class EssentialsSign
{
final ISign sign = new BlockSign(block);
final User user = ess.getUser(player);
if (user.checkSignThrottle())
{
return false;
}
try
{
return (user.isAuthorized("essentials.signs." + signName.toLowerCase(Locale.ENGLISH) + ".use")

View File

@ -52,7 +52,7 @@ teleport-delay: 0
# The delay, in seconds, a player can't be attacked by other players after he has been teleported by a command
# This will also prevent that the player can attack other players
teleport-invulnerability: 0
teleport-invulnerability: 2
# The delay, in seconds, required between /heal attempts
heal-cooldown: 60
@ -222,6 +222,12 @@ enabledSigns:
#- time
#- weather
#- protection
# How many times per second can Essentials signs be interacted with.
# Values should be between 1-20, 20 being virtually no lag protection.s
# Lower numbers will reduce the possiblity of lag, but may annoy players.
sign-use-per-second: 4
# Backup runs a command while saving is disabled
backup:
@ -309,7 +315,7 @@ repair-enchanted: true
register-back-in-listener: false
#Delay to wait before people can cause attack damage after logging in
login-attack-delay: 0
login-attack-delay: 5
############################################################
# +------------------------------------------------------+ #

View File

@ -2586,6 +2586,8 @@ uncookedbeef,363,0
uncookedsteak,363,0
cowmeat,363,0
plainbeef,363,0
beef,364,0
steak,364,0
cookedbeef,364,0
grilledbeef,364,0
cookedsteak,364,0

1 #version: teamcity
2586 uncookedsteak,363,0
2587 cowmeat,363,0
2588 plainbeef,363,0
2589 beef,364,0
2590 steak,364,0
2591 cookedbeef,364,0
2592 grilledbeef,364,0
2593 cookedsteak,364,0

View File

@ -21,6 +21,7 @@ backupStarted=Probiha zaloha
balance=\u00a77Ucet: {0}
balanceTop=\u00a77Nejbohatsi hraci ({0})
banExempt=\u00a7cNemuzes zabanovat tohoto hrace.
banFormat=Banned: {0}
banIpAddress=\u00a77IP Adresa byla zabanovana
bannedIpsFileError=Chyba pri nacitani banned-ips.txt
bannedIpsFileNotFound=Soubor banned-ips.txt nebyl nazen.
@ -121,6 +122,7 @@ hatArmor=\u00a7cError, you cannot use this item as a hat!
hatEmpty=\u00a7cYou are not wearing a hat.
hatFail=\u00a7cYou must have something to wear in your hand.
hatPlaced=\u00a7eEnjoy your new hat!
hatRemoved=\u00a7eYour hat has been removed.
haveBeenReleased=\u00a77Byl jsi uvolnen
heal=\u00a77Byl jsi uzdraven.
healOther=\u00a77Uzdravil jsi hrace {0}.
@ -443,5 +445,3 @@ year=rok
years=roky
youAreHealed=\u00a77Byl jsi uzdraven.
youHaveNewMail=\u00a7cMas {0} zprav!\u00a7f Napis \u00a77/mail read\u00a7f aby jsi si precetl sve zpravy.
hatRemoved=\u00a7eYour hat has been removed.
banFormat=Banned: {0}

View File

@ -0,0 +1,438 @@
# version: TeamCity
# Single quotes have to be doubled: ''
# Translations start here
# by:
action=* {0} {1}
addedToAccount=\u00a7a{0} on lis\u00e4tty sinun tilillesi.
addedToOthersAccount=\u00a7a{0} lis\u00e4tty {1}\u00a7a tilille. Uusi rahatilanne: {2}
alertBroke=rikkoi:
alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} sijainnissa: {3}
alertPlaced=laittoi:
alertUsed=k\u00e4ytti:
autoAfkKickReason=Sinut on potkittu, koska olit tekem\u00e4tt\u00e4 mit\u00e4\u00e4n {0} minuuttia.
backAfterDeath=\u00a77K\u00e4yt\u00e4 /back komentoa p\u00e4\u00e4st\u00e4ksesi takaisin sijaintiin, jossa kuolit.
backUsageMsg=\u00a77Palautetaan \u00e4skeiseen sijaintiin.
backupDisabled=Ulkoista varmuuskopio koodia ei ole konfiguroitu.
backupFinished=Varmuuskopiointi suoritettu
backupStarted=Varmuuskopiointi aloitettu
balance=\u00a77Rahatilanne: {0}
balanceTop=\u00a77Top rahatilanteet ({0})
banExempt=\u00a7cEt voi bannia pelaajaa.
banIpAddress=\u00a77Bannattu IP osoite
bannedIpsFileError=Virhe luettaessa banned-ips.txt tiedostoa
bannedIpsFileNotFound=banned-ips.txt tiedostoa ei l\u00f6ydy
bannedPlayersFileError=Virhe luettaessa banned-players.txt tiedostoa
bannedPlayersFileNotFound=banned-players.txt ei l\u00f6ydy
bigTreeFailure=\u00a7cIson puun luominen ep\u00e4onnistui. Yrit\u00e4 uudelleen nurmikolla tai mullalla.
bigTreeSuccess= \u00a77Iso puu luotu.
blockList=Essentials siirsi seuraavat komennot muihin plugineihin:
broadcast=[\u00a7cIlmoitus\u00a7f]\u00a7a {0}
buildAlert=\u00a7cSinulla ei ole oikeuksia rakentaa
bukkitFormatChanged=Bukkitin versiomuoto muuttui. Versiota ei ole tarkistettu.
burnMsg=\u00a77Asetit pelaajan {0} tuleen {1} sekunniksi.
canTalkAgain=\u00a77Voit taas puhua
cantFindGeoIpDB=Ei l\u00f6ydetty GeoIP tietokantaa!
cantReadGeoIpDB=Ei pystytty lukemaan GeoIP tietokantaa!
cantSpawnItem=\u00a7cSinulla ei ole oikeutta luoda tavaraa {0}
chatTypeLocal=[L]
chatTypeSpy=[Spy]
commandFailed=Komento {0} ep\u00e4onnistui:
commandHelpFailedForPlugin=Virhe haettaessa apua komennoista: {0}
commandNotLoaded=\u00a7cKomento {0} on v\u00e4\u00e4rin ladattu.
compassBearing=\u00a77Osoittaa: {0} ({1} astetta).
configFileMoveError=Virhe siirrett\u00e4ess\u00e4 tiedostoa config.yml varmuuskopio sijaintiin.
configFileRenameError=Virhe nimett\u00e4ess\u00e4 tiedostoa temp tiedostoon config.yml
connectedPlayers=Liittyneet pelaajat:
connectionFailed=Virhe avattaessa yhteytt\u00e4.
cooldownWithMessage=\u00a7cJ\u00e4\u00e4htyminen: {0}
corruptNodeInConfig=\u00a74Huom: Sinun konfigurointi tiedostossa on virhe {0}.
couldNotFindTemplate=Ei l\u00f6ydetty mallia {0}
creatingConfigFromTemplate=Luodaan config tiedostoa mallista: {0}
creatingEmptyConfig=Luodaan tyhj\u00e4\u00e4 config tiedostoa: {0}
creative=luova
currency={0}{1}
currentWorld=T\u00e4m\u00e4nhetkinen maailma: {0}
day=p\u00e4iv\u00e4
days=p\u00e4iv\u00e4\u00e4
defaultBanReason=Ban Nuija on puhunut!
deleteFileError=Ei voida poistaa tiedostoa: {0}
deleteHome=\u00a77Koti {0} on poistettu.
deleteJail=\u00a77Vankila {0} on poistettu.
deleteWarp=\u00a77Warp {0} on poistettu.
deniedAccessCommand={0} p\u00e4\u00e4sy komentoon ev\u00e4ttiin.
dependancyDownloaded=[Essentials] Tarvittu tiedosto {0} ladattu onnistuneesti.
dependancyException=[Essentials] Virhe ladattaessa tarvittua tiedostoa
dependancyNotFound=[Essentials] Tarvittua tiedostoa ei l\u00f6ydy, ladataan nyt.
depth=\u00a77Olet merenpinnan tasolla.
depthAboveSea=\u00a77Olet {0} palikkaa meritason yl\u00e4puolella.
depthBelowSea=\u00a77Olet {0} palikkaa meritason alapuolella.
destinationNotSet=Sijaintia ei ole m\u00e4\u00e4ritetty
disableUnlimited=\u00a77Poistettu k\u00e4yt\u00f6st\u00e4 loputon laittaminen tavaralta "{0}", pelaajalta {1}.
disabled=poissa k\u00e4yt\u00f6st\u00e4
disabledToSpawnMob=T\u00e4m\u00e4n mobin luominen on poistettu k\u00e4yt\u00f6st\u00e4 config tiedostossa.
dontMoveMessage=\u00a77Teleportataan {0} kuluttua. \u00c4l\u00e4 liiku.
downloadingGeoIp=Ladataan GeoIP tietokantaa ... t\u00e4m\u00e4 voi vied\u00e4 hetken (maa: 0.6 MB, kaupunki: 20MB)
duplicatedUserdata=Kopioitu k\u00e4ytt\u00e4j\u00e4n tiedot: {0} ja {1}
durability=\u00a77T\u00e4ll\u00e4 ty\u00f6kalulla on \u00a7c{0}\u00a77 k\u00e4ytt\u00f6kertaa j\u00e4ljell\u00e4
enableUnlimited=\u00a77Annetaan loputon m\u00e4\u00e4r\u00e4 tavaraa "{0}" pelaajalle {1}.
enabled=k\u00e4yt\u00f6ss\u00e4
enchantmentApplied = \u00a77Parannus "{0}" on lis\u00e4tty tavaraan k\u00e4dess\u00e4si.
enchantmentNotFound = \u00a7cParannusta ei l\u00f6ydetty
enchantmentPerm = \u00a7cSinulla ei ole oikeutta {0}
enchantmentRemoved = \u00a77Parannus {0} on poistettu tavarasta k\u00e4dess\u00e4si.
enchantments = \u00a77Parannukset: {0}
errorCallingCommand=Virhe kutsuttaessa komentoa /{0}
errorWithMessage=\u00a7cVirhe: {0}
essentialsHelp1=Tiedosto on viallinen ja Essentials ei voi avata sit\u00e4. Essentials on nyt poistettu k\u00e4yt\u00f6st\u00e4. Jos et voi korjata tiedostoa itse, mene osoitteeseen http://tiny.cc/EssentialsChat
essentialsHelp2=Tiedosto on viallinen ja Essentials ei voi avata sit\u00e4. Essentials on nyt poistettu k\u00e4yt\u00f6st\u00e4. Jos et voi korjata tiedostoa itse, kirjoita /essentialshelp peliss\u00e4 tai mene osoitteeseen http://tiny.cc/EssentialsChat
essentialsReload=\u00a77Essentials ladattu uudelleen. Versio: {0}
exp=Pelaajalla \u00a7c{0} \u00a77on\u00a7c {1} \u00a77expi\u00e4 (taso\u00a7c {2}\u00a77) ja tarvitsee\u00a7c {3} \u00a77lis\u00e4\u00e4 expi\u00e4 seuravaan tasoon.
expSet=Pelaajalla\u00a7c{0} \u00a77on nyt\u00a7c {1} \u00a77expi\u00e4.
extinguish=\u00a77Sammutit itsesi.
extinguishOthers=\u00a77Sammutit pelaajan {0}.
failedToCloseConfig=Virhe suljettaessa tiedostoa config {0}
failedToCreateConfig=Virhe luotaessa tiedostoa config {0}
failedToWriteConfig=Virhe muokattaessa tiedostoa config {0}
false=v\u00e4\u00e4r\u00e4
feed=\u00a77Ruokahalusi on tyydytetty.
feedOther=\u00a77Tyydytit ruokahalun pelaajalta {0}.
fileRenameError={0} uudelleen nime\u00e4minen ep\u00e4onnistui
flyMode=\u00a77Lento {0} pelaajalla {1}.
foreverAlone=\u00a7cSinulla ei ole ket\u00e4\u00e4n kenelle vastata.
freedMemory=Vapaata muistia {0} MB.
gameMode=\u00a77Asetit pelimuodon "{0}" pelaajalle {1}.
gcchunks= chunkkia,
gcentities= kokonaisuutta
gcfree=Vapaa muisti: {0} MB
gcmax=Maksimi muisti: {0} MB
gctotal=Sallittu muisti: {0} MB
geoIpUrlEmpty=GeoIP latausosoite on tyhj\u00e4.
geoIpUrlInvalid=GeoIP latausosoite on viallinen.
geoipJoinFormat=Pelaaja {0} tulee maasta {1}
godDisabledFor=poistettu pelaajalta {0}
godEnabledFor=laitettu pelaajalle {0}
godMode=\u00a77God muoto {0}.
hatArmor=\u00a7cVirhe, et voi k\u00e4ytt\u00e4\u00e4 t\u00e4t\u00e4 tavaraa hattuna!
hatFail=\u00a7cSinulla tulee olla jotain k\u00e4dess\u00e4si, mit\u00e4 k\u00e4ytt\u00e4\u00e4 hattuna.
hatPlaced=\u00a7eNauti uudesta hatustasi!
haveBeenReleased=\u00a77Sinut on vapautettu
heal=\u00a77Sinut on parannettu.
healOther=\u00a77Paransit pelaajan {0}.
helpConsole=Katsoaksesi apua konsolista, kirjoita ?.
helpFrom=\u00a77Komennot {0}:
helpLine=\u00a76/{0}\u00a7f: {1}
helpMatching=\u00a77Komennot "{0}":
helpOp=\u00a7c[HelpOp]\u00a7f \u00a77{0}:\u00a7f {1}
helpPages=Sivu \u00a7c{0}\u00a7f / \u00a7c{1}\u00a7f:
helpPlugin=\u00a74{0}\u00a7f: Plugin apu: /help {1}
holeInFloor=Reik\u00e4 lattiassa
homeSet=\u00a77Koti asetettu.
homeSetToBed=\u00a77Sinun koti on nyt asetettu t\u00e4h\u00e4n s\u00e4nkyyn.
homes=Kodit: {0}
hour=tunti
hours=tunnit
ignorePlayer=J\u00e4tit huomiotta pelaajan {0}.
illegalDate=Laiton p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4n muoto.
infoChapter=Valitse luku:
infoChapterPages=Luku {0}, sivu \u00a7c{1}\u00a7f / \u00a7c{2}\u00a7f:
infoFileDoesNotExist=Tiedostoa info.txt ei ole olemassa. Luodaan.
infoPages=\u00a7e ---- \u00a76{2} \u00a7e--\u00a76 Sivu \u00a74{0}\u00a76/\u00a74{1} \u00a7e----
infoUnknownChapter=Tuntematon luku.
invBigger=Toisen pelaajan reppu on isompi kuin sinun.
invRestored=Sinun reppusi on palautettu.
invSee=N\u00e4et pelaajan {0} repun.
invSeeHelp=K\u00e4yt\u00e4 /invsee kun haluat palauttaa oman reppusi.
invalidCharge=\u00a7cMit\u00e4t\u00f6n m\u00e4\u00e4r\u00e4ys.
invalidHome=Kotia {0} ei ole olemassa
invalidMob=Kelvoton mobin tyyppi.
invalidServer=Kelvoton palvelin!
invalidSignLine=Kyltin rivi {0} on viallinen.
invalidWorld=\u00a7cKelvoton maailma.
inventoryCleared=\u00a77Reppu tyhjennetty.
inventoryClearedOthers=\u00a77Pelaajan \u00a7c{0}\u00a77 reppu on tyhjennetty.
is=on
itemCannotBeSold=Tuota tavaraa ei voi myyd\u00e4 t\u00e4ll\u00e4 palvelimella.
itemMustBeStacked=Tavara pit\u00e4\u00e4 vaihtaa pakattuina. M\u00e4\u00e4r\u00e4 2s olisi kaksi pakettia, jne.
itemNotEnough1=\u00a7cSinulla ei ole tarpeeksi tavaraa jota myyd\u00e4.
itemNotEnough2=\u00a77Jos haluat myyd\u00e4 kaikki tuon tyypin tavarat, k\u00e4yt\u00e4 /sell tavarannimi
itemNotEnough3=\u00a77/sell itemname -1 myy kaiken paitsi yhden, jne.
itemSellAir=Yritit myyd\u00e4 ilmaa? Laita tavara k\u00e4teesi ja yrit\u00e4 uudelleen.
itemSold=\u00a77Myy \u00a7c{0} \u00a77({1} {2} hintaan {3} kpl)
itemSoldConsole={0} sold {1} for \u00a77{2} \u00a77({3} items at {4} each)
itemSpawn=\u00a77Annetaan {0} kpl {1}
itemsCsvNotLoaded=Ei voida ladata tiedostoa items.csv.
jailAlreadyIncarcerated=\u00a7cPelaaja on jo vankilassa: {0}
jailMessage=\u00a7cSin\u00e4 teet rikoksen, istut my\u00f6s sen mukaan.
jailNotExist=Tuota vankilaa ei ole olemassa.
jailReleased=\u00a77Pelaaja \u00a7e{0}\u00a77 vapautettu.
jailReleasedPlayerNotify=\u00a77Sinut on vapautettu!
jailSentenceExtended=Vankila aika pidennetty: {0)
jailSet=\u00a77Vankila {0} on asetettu
jumpError=Tuo vahingoittaisi koneesi aivoja.
kickDefault=Potkittu palvelimelta
kickExempt=\u00a7cEt voi potkia h\u00e4nt\u00e4.
kickedAll=\u00a7cPotkittu kaikki pelaajat palvelimelta
kill=\u00a77Tappoi {0}.
kitError2=\u00a7cTuota pakkausta ei ole olemassa tai se on v\u00e4\u00e4rin muokattu.
kitError=\u00a7cEi ole sopivia pakkauksia.
kitErrorHelp=\u00a7cEhk\u00e4 tavaralle ei ole m\u00e4\u00e4ritetty m\u00e4\u00e4r\u00e4\u00e4 configissa?
kitGive=\u00a77Annetaan pakkausta "{0}".
kitInvFull=\u00a7cSinun reppusi on t\u00e4ynn\u00e4, laitetaan tavarat maahan
kitTimed=\u00a7cAika, jota ennen et voi k\u00e4ytt\u00e4\u00e4 t\u00e4t\u00e4 pakkausta uudelleen: {0}.
kits=\u00a77Pakkaukset: {0}
lightningSmited=\u00a77Sinut on salamoitu
lightningUse=\u00a77Salamoidaan {0}
listAfkTag = \u00a77[AFK]\u00a7f
listAmount = \u00a79Pelaajia palvelimella \u00a7c{0}\u00a79 / \u00a7c{1}\u00a79.
listAmountHidden = \u00a79Pelaajia palvelimella \u00a7c{0}\u00a77/{1}\u00a79 / \u00a7c{2}\u00a79.
listGroupTag={0}\u00a7f:
listHiddenTag = \u00a77[HIDDEN]\u00a7f
loadWarpError=Virhe ladattaessa warppia {0}
localFormat=Paikallinen: <{0}> {1}
mailClear=\u00a7cPoistaaksesi viestisi, kirjoita /mail clear
mailCleared=\u00a77Viestit poistettu!
mailSent=\u00a77Viesti l\u00e4hetetty!
markMailAsRead=\u00a7cMerkitse viestit luetuiksi, kirjoita /mail clear
markedAsAway=\u00a77Sinut on laitettu poissaolevaksi.
markedAsNotAway=\u00a77Sinua ei ole en\u00e4\u00e4 laitettu poissaolevaksi.
maxHomes=Voit asettaa maksimissaan {0} kotia.
mayNotJail=\u00a7cEt voi laittaa tuota pelaajaa vankilaan
me=min\u00e4
minute=minuutti
minutes=minuuttia
missingItems=Sinulla ei ole {0}kpl {1}.
missingPrefixSuffix=Puuttuu etuliite tai takaliite {0}
mobSpawnError=Virhe vaihdettaessa mob-luojan tyyppi\u00e4.
mobSpawnLimit=Mobien m\u00e4\u00e4r\u00e4 rajoitettu palvelimen maksimim\u00e4\u00e4r\u00e4\u00e4n
mobSpawnTarget=Kohteen pit\u00e4\u00e4 olla mob-luoja palikka.
mobsAvailable=\u00a77Mobit: {0}
moneyRecievedFrom=\u00a7a{0} on vastaanotettu pelaajalta {1}
moneySentTo=\u00a7a{0} on l\u00e4hetetty pelaajalle {1}
moneyTaken={0} veloitettiin sinun tililt\u00e4si.
month=kuukausi
months=kuukaudet
moreThanZero=M\u00e4\u00e4r\u00e4n pit\u00e4\u00e4 olla enemm\u00e4n kuin 0.
msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
muteExempt=\u00a7cEt voi hiljent\u00e4\u00e4 tuota pelaajaa.
mutedPlayer=Pelaaja {0} hiljennetty.
mutedPlayerFor=Pelaaja {0} hiljennetty, koska {1}.
mutedUserSpeaks={0} yritti puhua, mutta oli hiljennetty.
nearbyPlayers=Pelaajat l\u00e4hell\u00e4: {0}
negativeBalanceError=Pelaajalla ei ole mahdollista olla negatiivist\u00e4 m\u00e4\u00e4r\u00e4\u00e4 rahaa.
nickChanged=Lempinimi vaihdettu.
nickDisplayName=\u00a77Sinun tulee ottaa k\u00e4ytt\u00f6\u00f6n change-displayname Essentialsin config-tiedostosta.
nickInUse=\u00a7cSe nimi on jo k\u00e4yt\u00f6ss\u00e4.
nickNamesAlpha=\u00a7cLempinimen pit\u00e4\u00e4 olla aakkosista.
nickNoMore=\u00a77Sinulla ei ole en\u00e4\u00e4 lempinime\u00e4.
nickOthersPermission=\u00a7cSinulla ei ole oikeutta vaihtaa muiden lempinimi\u00e4
nickSet=\u00a77Lempinimesi on nyt \u00a7c{0}
noAccessCommand=\u00a7cSinulla ei ole oikeutta tuohon komentoon.
noAccessPermission=\u00a7cSinulla ei ole oikeutta tuohon {0}.
noBreakBedrock=Sinulla ei ole lupaa tuhota bedrock-palikoita.
noDestroyPermission=\u00a7cSinulla ei ole lupaa tuhota sit\u00e4 {0}.
noDurability=\u00a7cT\u00e4ll\u00e4 tavaralla ei ole kestoa.
noGodWorldWarning=\u00a7cVaroitus! God muoto ei ole k\u00e4yt\u00f6ss\u00e4 t\u00e4ss\u00e4 maailmassa.
noHelpFound=\u00a7cEi komentoja.
noHomeSet=Et ole asettanut kotia.
noHomeSetPlayer=Pelaaja ei ole asettanut kotia.
noKitPermission=\u00a7cTarvitset \u00a7c{0}\u00a7c oikeuden, jotta voit k\u00e4ytt\u00e4\u00e4 tuota pakkausta.
noKits=\u00a77Ei pakkauksia saatavilla viel\u00e4
noMail=Ei uusia viestej\u00e4
noMotd=\u00a7cEi ole p\u00e4iv\u00e4n viesti\u00e4.
noNewMail=\u00a77Ei viestej\u00e4.
noPendingRequest=Sinulla ei ole odottavia pyynt\u00f6j\u00e4.
noPerm=\u00a7cSinulla ei ole \u00a7f{0}\u00a7c oikeuksia.
noPermToSpawnMob=\u00a7cSinulla ei ole lupaa luoda t\u00e4t\u00e4 mobia.
noPlacePermission=\u00a7cSinulla ei ole lupaa laittaa palikoita l\u00e4helle tuota kyltti\u00e4.
noPowerTools=Ei voimaty\u00f6kaluja laitettu.
noRules=\u00a7cEi ole s\u00e4\u00e4nt\u00f6j\u00e4 viel\u00e4.
noWarpsDefined=Ei warppeja
none=ei mit\u00e4\u00e4n
notAllowedToQuestion=\u00a7cSinulla ei ole lupaa k\u00e4ytt\u00e4\u00e4 kysymyst\u00e4.
notAllowedToShout=\u00a7cSinulla ei ole lupaa huutaa.
notEnoughExperience=Sinulla ei ole tarpeeksi kokemusta.
notEnoughMoney=Sinulla ei ole riitt\u00e4v\u00e4sti rahaa.
notRecommendedBukkit= * ! * Bukkit versio ei ole suositeltu t\u00e4m\u00e4n Essentials version kanssa.
notSupportedYet=Ei tueta viel\u00e4.
nothingInHand = \u00a7cSinulla ei ole mit\u00e4\u00e4n k\u00e4dess\u00e4si.
now=nyt
nuke=Antaa kuoleman sateen kohdata heid\u00e4t
numberRequired=Numero menee tuohon, h\u00f6lm\u00f6.
onlyDayNight=/time tukee vain day/night.
onlyPlayers=Vain peliss\u00e4 olevat pelaajat voivat k\u00e4ytt\u00e4\u00e4 {0}.
onlySunStorm=/weather tukee vain sun/storm.
orderBalances=J\u00e4rjestet\u00e4\u00e4n rahatilanteita {0}, odota...
pTimeCurrent=Pelaajan \u00a7e{0}\u00a7f aika on {1}.
pTimeCurrentFixed=Pelaajan \u00a7e{0}\u00a7f aika on korjattu {1}.
pTimeNormal=Pelaajan \u00a7e{0}\u00a7f aika on normaali ja vastaa palvelimen aikaa.
pTimeOthersPermission=\u00a7cSinulla ei ole lupaa muokata muiden pelaajien aikaa.
pTimePlayers=N\u00e4ill\u00e4 pelaajilla on k\u00e4yt\u00f6ss\u00e4 heid\u00e4n oma aika:
pTimeReset=Pelaajan aika on resetoitu: \u00a7e{0}
pTimeSet=Pelaajan aika on asetettu \u00a73{0}\u00a7f koska: \u00a7e{1}
pTimeSetFixed=Pelaajan aika on korjattu \u00a73{0}\u00a7f koska: \u00a7e{1}
parseError=Virhe tarkistettaessa {0} rivill\u00e4 {1}
pendingTeleportCancelled=\u00a7cOdottava teleporttipyynt\u00f6 peruttu.
permissionsError=Puuttuu Permissions/GroupManager; keskustelun etu- ja takaliitteet poistettu k\u00e4yt\u00f6st\u00e4.
playerBanned=\u00a7cPelaaja {0} bannasi pelaajan {1} syyst\u00e4 {2}
playerInJail=\u00a7cPelaaja on jo vankilassa {0}.
playerJailed=\u00a77Pelaaja {0} laitettu vankilaan.
playerJailedFor= \u00a77Pelaaja {0} laitettu vankilaan, koska {1}.
playerKicked=\u00a7cPelaaja {0} potki pelaajan {1} koska {2}
playerMuted=\u00a77Sinut on hiljennetty
playerMutedFor=\u00a77Sinut on hiljennetty, koska {0}
playerNeverOnServer=\u00a7cPelaaja {0} ei ole koskaan ollut t\u00e4ll\u00e4 palvelimella.
playerNotFound=\u00a7cPelaajaa ei l\u00f6ydetty.
playerUnmuted=\u00a77Sin\u00e4 voit taas puhua
pong=Pong!
possibleWorlds=\u00a77Mahdollisia maailmoja on numerot v\u00e4lilt\u00e4 0 - {0}.
powerToolAir=Komentoa ei voi liitt\u00e4\u00e4 k\u00e4teen.
powerToolAlreadySet=Komento \u00a7c{0}\u00a7f on liitetty kohteeseen {1}.
powerToolAttach=\u00a7c{0}\u00a7f komento liitetty kohteeseen {1}.
powerToolClearAll=Kaikki voimaty\u00f6kalun komennot on poistettu.
powerToolList={1} omistaa seuraavat komennot: \u00a7c{0}\u00a7f.
powerToolListEmpty={0} ei ole komentoja liitetty.
powerToolNoSuchCommandAssigned=Komentoa \u00a7c{0}\u00a7f ei ole liitetty kohteeseen {1}.
powerToolRemove=Komento \u00a7c{0}\u00a7f poistettu kohteesta {1}.
powerToolRemoveAll=Kaikki komennot poistettu kohteesta {0}.
powerToolsDisabled=Kaikki voimaty\u00f6kalut on poistettu k\u00e4yt\u00f6st\u00e4.
powerToolsEnabled=Kaikki voimaty\u00f6alut on otettu k\u00e4ytt\u00f6\u00f6n.
protectionOwner=\u00a76[EssentialsProtect] Suojauksen omistaja: {0}
questionFormat=\u00a77[Question]\u00a7f {0}
readNextPage=Kirjoita /{0} {1} lukeaksesi seuraavan sivun
reloadAllPlugins=\u00a77Kaikki pluginit uudelleen ladattu.
removed=\u00a77Poistettu {0} kokonaisuutta.
repair=Onnistuneesti korjasit ty\u00f6kalun: \u00a7e{0}.
repairAlreadyFixed=\u00a77T\u00e4m\u00e4 tavara ei kaipaa korjaamista.
repairEnchanted=\u00a77Sinulla ei ole lupaa korjata kehitettyj\u00e4 tavaroita.
repairInvalidType=\u00a7cT\u00e4t\u00e4 tavaraa ei voi korjata.
repairNone=Ei ollut tavaroita, jotka olivat korjauksen tarpeessa.
requestAccepted=\u00a77Teleporttaus pyynt\u00f6 hyv\u00e4ksytty.
requestAcceptedFrom=\u00a77{0} hyv\u00e4ksyi sinun teleportti pyynn\u00f6n.
requestDenied=\u00a77Teleporttaus pyynt\u00f6 kielletty.
requestDeniedFrom=\u00a77{0} kielt\u00e4ytyi sinun teleportti pyynn\u00f6st\u00e4.
requestSent=\u00a77Pyynt\u00f6 l\u00e4hetetty pelaajalle {0}\u00a77.
requestTimedOut=\u00a7cTeleportti pyynt\u00f6 aikakatkaistiin
requiredBukkit= * ! * Tarvitset v\u00e4hint\u00e4\u00e4n {0} version CraftBukkitista, lataa se osoitteesta http://dl.bukkit.org/downloads/craftbukkit/
returnPlayerToJailError=Virhe laitettaessa pelaaja {0} takaisin vankilaan: {1}
second=sekunti
seconds=sekuntia
seenOffline=Pelaaja {0} on ollut offline jo {1}
seenOnline=Pelaaja {0} on ollut online jo {1}
serverFull=Palvelin on t\u00e4ynn\u00e4
serverTotal=Palvelimen kokonaism\u00e4\u00e4r\u00e4m\u00e4\u00e4r\u00e4: {0}
setSpawner=Vaihdettu mob-luojan tyyppi {0}
sheepMalformedColor=Viallinen v\u00e4ri.
shoutFormat=\u00a77[Huuto]\u00a7f {0}
signFormatFail=\u00a74[{0}]
signFormatSuccess=\u00a71[{0}]
signFormatTemplate=[{0}]
signProtectInvalidLocation=\u00a74Sinulla ei ole lupaa laittaa kyltti\u00e4 t\u00e4h\u00e4n.
similarWarpExist=Tuon niminen warp on jo olemassa.
slimeMalformedSize=Viallinen koko.
soloMob=Tuo mob tykk\u00e4\u00e4 olevan yksin
spawnSet=\u00a77Spawn sijainti m\u00e4\u00e4ritetty ryhm\u00e4lle {0}.
spawned=luotu
sudoExempt=Et voi sudoa t\u00e4t\u00e4 pelaajaa
sudoRun=Pakotetaan {0} suorittamaan: /{1} {2}
suicideMessage=\u00a77Hyv\u00e4sti julma maailma...
suicideSuccess= \u00a77{0} riisti oman henkens\u00e4
survival=selviytyminen
takenFromAccount=\u00a7c{0} on veloitettu tililt\u00e4si.
takenFromOthersAccount=\u00a7c{0} veloitettu pelaajan {1}\u00a7c tililt\u00e4. Uusi rahatilanne: {2}
teleportAAll=\u00a77Teleporttaus pyynt\u00f6 l\u00e4hetetty kaikille pelaajille...
teleportAll=\u00a77Teleportataan kaikki pelaajat...
teleportAtoB=\u00a77{0}\u00a77 teleporttasi sinun luokse {1}\u00a77.
teleportDisabled=Pelaajalla {0} on teleporttaus poissa k\u00e4yt\u00f6st\u00e4.
teleportHereRequest=\u00a7c{0}\u00a7c on pyyt\u00e4nyt, ett\u00e4 sin\u00e4 teleporttaat heid\u00e4n luokseen.
teleportNewPlayerError=Virhe teleportattaessa uutta pelaajaa
teleportRequest=\u00a7c{0}\u00a7c on pyyt\u00e4nyt lupaa sinun luokse teleporttaamiseen.
teleportRequestTimeoutInfo=\u00a77T\u00e4m\u00e4 pyynt\u00f6 aikakatkaistaan {0} sekunnin kuluttua.
teleportTop=\u00a77Teleportataan p\u00e4\u00e4lle.
teleportationCommencing=\u00a77Teleportataan...
teleportationDisabled=\u00a77Teleporttaus poistettu k\u00e4yt\u00f6st\u00e4.
teleportationEnabled=\u00a77Teleportation otettu k\u00e4ytt\u00f6\u00f6n.
teleporting=\u00a77Teleportataan...
teleportingPortal=\u00a77Teleportataan portaalin kautta.
tempBanned=Olet v\u00e4liaikaisesti bannattu palvelimelta, koska {0}
tempbanExempt=\u00a77Et voi bannia tuota pelaajaa
thunder= Myrsky {0} maailmassasi
thunderDuration=Myrsky {0} maailmassasi {1} sekuntia.
timeBeforeHeal=Aika ennen seuraavaa parannusta: {0}
timeBeforeTeleport=Aika ennen seuraavaa teleporttausta: {0}
timeFormat=\u00a73{0}\u00a7f tai \u00a73{1}\u00a7f tai \u00a73{2}\u00a7f
timePattern=(?:([0-9]+)\\s*y[a-z]*[,\\s]*)?(?:([0-9]+)\\s*mo[a-z]*[,\\s]*)?(?:([0-9]+)\\s*w[a-z]*[,\\s]*)?(?:([0-9]+)\\s*d[a-z]*[,\\s]*)?(?:([0-9]+)\\s*h[a-z]*[,\\s]*)?(?:([0-9]+)\\s*m[a-z]*[,\\s]*)?(?:([0-9]+)\\s*(?:s[a-z]*)?)?
timeSet=Aika asetettu kaikissa maailmoissa.
timeSetPermission=\u00a7cSinulla ei ole lupaa vaihtaa aikaa.
timeWorldCurrent=T\u00e4m\u00e4nhetkinen aika maailmassa {0} on \u00a73{1}
timeWorldSet=Aika vaihdettiin {0} maailmassa: \u00a7c{1}
tps=T\u00e4m\u00e4nhetkinen TPS = {0}
tradeCompleted=\u00a77Vaihto suoritettu.
tradeSignEmpty=Vaihtokyltill\u00e4 ei ole mit\u00e4\u00e4n tarjolla sinulle.
tradeSignEmptyOwner=Ei ole mit\u00e4\u00e4n mit\u00e4 ker\u00e4t\u00e4 t\u00e4st\u00e4 vaihtokyltist\u00e4.
treeFailure=\u00a7cPuun luominen ep\u00e4onnistui. Yrit\u00e4 uudelleen nurmikolla tai mullalla.
treeSpawned=\u00a77Puu luotu.
true=totta
typeTpaccept=\u00a77Hyv\u00e4ksy\u00e4ksesi, kirjoita \u00a7c/tpaccept\u00a77.
typeTpdeny=\u00a77Kielt\u00e4\u00e4ksesi, kirjoita \u00a7c/tpdeny\u00a77.
typeWorldName=\u00a77Voit my\u00f6s laittaa maailman nimen.
unableToSpawnMob=Ei voida luoda mobia.
unbannedIP=Unbanned IP osoite.
unbannedPlayer=Unbanned pelaaja.
unignorePlayer=Otat taas huomioon pelaajan {0}.
unknownItemId=Tuntematon tavaran ID: {0}
unknownItemInList=Tuntematon tavara {0} listassa {1}.
unknownItemName=Tuntematon tavaran nimi: {0}
unlimitedItemPermission=\u00a7cEi lupaa loputtomalle tavaralle {0}.
unlimitedItems=Loputtomat tavarat:
unmutedPlayer=Pelaajat {0} voi taas puhua.
unvanished=\u00a7aOlet taas n\u00e4kyvill\u00e4.
unvanishedReload=\u00a7cSinut on pakotettu taas n\u00e4kyv\u00e4ksi uudelleen latauksen vuoksi.
upgradingFilesError=Virhe p\u00e4ivitett\u00e4ess\u00e4 tiedostoja
userDoesNotExist=Pelaajaa {0} ei ole olemassa.
userIsAway={0} on nyt AFK
userIsNotAway={0} ei ole en\u00e4\u00e4 AFK
userJailed=\u00a77Sinut on laitettu vankilaan
userUsedPortal={0} k\u00e4ytti portaalia.
userdataMoveBackError=Virhe siirrett\u00e4ess\u00e4 k\u00e4ytt\u00e4j\u00e4n tietoja/{0}.tmp k\u00e4ytt\u00e4j\u00e4n tietoihin/{1}
userdataMoveError=Virhe siirrett\u00e4ess\u00e4 k\u00e4ytt\u00e4j\u00e4n tietoja/{0} k\u00e4ytt\u00e4j\u00e4n tietoihin/{1}.tmp
usingTempFolderForTesting=K\u00e4ytet\u00e4\u00e4n v\u00e4liaikaista kansiota testaukseen:
vanished=\u00a7aOlet n\u00e4kym\u00e4t\u00f6n.
versionMismatch=Versiot eiv\u00e4t t\u00e4sm\u00e4\u00e4! P\u00e4ivit\u00e4 {0} samaan versioon.
versionMismatchAll=Versiot eiv\u00e4t t\u00e4sm\u00e4\u00e4! P\u00e4ivit\u00e4 kaikki Essentialsin jar tiedostot samaan versioon.
voiceSilenced=\u00a77Sinun \u00e4\u00e4ni on hiljennetty
warpDeleteError=Virhe poistettaessa warp tiedostoa.
warpListPermission=\u00a7cSinulla ei ole oikeuksia n\u00e4hd\u00e4 warp-listaa.
warpNotExist=Tuota warppia ei ole olemassa.
warpOverwrite=\u00a7cEt voi korvata tuota warppia.
warpSet=\u00a77Warp {0} asetettu.
warpUsePermission=\u00a7cSinulla ei ole oikeutta k\u00e4ytt\u00e4\u00e4 tuota warppia.
warpingTo=\u00a77Sinut warpataan pian kohteeseen {0}.
warps=Warpit: {0}
warpsCount=\u00a77Warppeja on {0} kpl. N\u00e4ytet\u00e4\u00e4n sivu {1} / {2}.
weatherStorm=\u00a77Laitoit myrskyn maailmaan {0}
weatherStormFor=\u00a77Laitoit myrskyn maailmaan {0} {1} sekunniksi
weatherSun=\u00a77Laitoit auringon paistamaan maailmaan {0}
weatherSunFor=\u00a77Laitoit auringon paistamaan maailmaan {0} {1} sekunniksi
whoisBanned=\u00a79 - Bannattu: {0}
whoisExp=\u00a79 - Exp: {0} (Taso {1})
whoisGamemode=\u00a79 - Pelimuoto: {0}
whoisGeoLocation=\u00a79 - Sijainti: {0}
whoisGod=\u00a79 - God muoto: {0}
whoisHealth=\u00a79 - Terveys: {0}/20
whoisIPAddress=\u00a79 - IP Osoite: {0}
whoisIs={0} on {1}
whoisJail=\u00a79 - Vankila: {0}
whoisLocation=\u00a79 - Sijainti: ({0}, {1}, {2}, {3})
whoisMoney=\u00a79 - Raha: {0}
whoisOP=\u00a79 - OP: {0}
whoisStatusAvailable=\u00a79 - Tilanne: Saatavilla
whoisStatusAway=\u00a79 - Tilanne: \u00a7cPoissa\u00a7f
worth=\u00a77Pino tavaraa "{0}" on arvoltaan \u00a7c{1}\u00a77 ({2} tavara(a) = {3} kappale)
worthMeta=\u00a77Pino tavaraa "{0}" metadatan kanssa {1} on arvoltaan \u00a7c{2}\u00a77 ({3} tavara(a) = {4} kappale)
worthSet=Arvo asetettu
year=vuosi
years=vuosia
youAreHealed=\u00a77Sinut on parannettu.
youHaveNewMail=\u00a7cSinulla on {0} viesti(\u00e4)!\u00a7f Kirjoita \u00a77/mail read\u00a7f lukeaksesi viestit.
hatRemoved=\u00a7eYour hat has been removed.
banFormat=Banned: {0}

View File

@ -256,11 +256,10 @@ public class User extends DataUnit implements Cloneable {
}
}
public User updatePlayer(Player player) {
if (player != null) {
bukkitPlayer = player;
}
bukkitPlayer = player;
return this;
}

View File

@ -31,6 +31,7 @@ import java.util.Set;
import java.util.WeakHashMap;
import org.anjocaido.groupmanager.GroupManager;
import org.anjocaido.groupmanager.data.User;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
@ -144,6 +145,11 @@ public class BukkitPermissions {
if (player == null || !GroupManager.isLoaded()) {
return;
}
// Reset the User objects player reference.
User user = plugin.getWorldsHolder().getWorldData(player.getWorld().getName()).getUser(player.getName());
if (user != null)
user.updatePlayer(player);
PermissionAttachment attachment;
@ -440,7 +446,7 @@ public class BukkitPermissions {
public void onPlayerKick(PlayerKickEvent event) {
Player player = event.getPlayer();
/*
* force remove any attachments as bukkit may not
*/