Skocz do zawartości

4RNI

Użytkownik
  • Ilość zawartości

    59
  • Rejestracja

  • Ostatnia wizyta

Treść opublikowana przez 4RNI

  1. 4RNI

    moj 1 "plugin"

    podaj blad
  2. 4RNI

    Crashery mc

    jakie metody platnosci?
  3. Gdy gracz wpisuje komendę /spawn i po chwili jeszcze raz tą samą komendę, wyskakuje wiadomość o treści tej co jest przy ruszeniu się oraz nie teleportuje na spawn (tak jakby anuluje komendę). Mógłby mi ktoś to poprawić? Kod komendy /spawn: TimerManager: TimerUtil: TimeUtil: TimerCallback:
  4. 4RNI

    Poprawa kodu

    Witam moglby mi ktos poprawic ten kod, poniewaz dzieje sie cos takiego: Błąd 1: Multiple markers at this line - The type new TimerCallback(){} must implement the inherited abstract method TimerCallback.success(Object) - The type new TimerCallback(){} must implement the inherited abstract method TimerCallback.error(Object) - Type safety: The expression of type new TimerCallback(){} needs unchecked conversion to conform to TimerCallback<Player> Błąd 2: The method teleport(Location) in the type Entity is not applicable for the arguments (TimerUtil) TimerManager: https://pastebin.com/tKgUw6Bq TimerCallback: https://pastebin.com/aQLdgDsn
  5. 4RNI

    Problem z pluginem

    Witam po wpisaniu komendy wyskakuje mi blad "An internal error occured while attempting to perform this command", zamiast wiadomosci z klasy Lang. Co zrobic? Kod pluginu: package pl.unixhc.tools.commands; import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import pl.unixhc.tools.config.Lang; import pl.unixhc.tools.managers.CommandManager; import pl.unixhc.tools.utils.Util; public class InvseeCommand extends CommandManager{ public InvseeCommand(){ super("invsee", true, "unixhc.invsee", "Otwiera ekwipunek gracza", "/invsee [nick]", new String[0]); } public boolean exe(CommandSender sender, String command, String[] args){ if (args.length < 1){ Util.sendUsage(sender, getUsage()); return false; } Player playerInv = Bukkit.getPlayer(args[0]); if (playerInv == null){ sender.sendMessage(Lang.getInst().PLAYER_NOT_EXISTS); return false; } Player player = (Player)sender; player.openInventory(playerInv.getInventory()); return true; } } Main: package pl.unixhc.tools; import org.bukkit.Bukkit; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; import pl.unixhc.tools.commands.*; import pl.unixhc.tools.listeners.*; public class Main extends JavaPlugin{ private static Main inst; public void onEnable(){ registerCommands(); registerListeners(); saveDefaultConfig(); } public static Main getInst(){ return inst; } public void registerCommands(){ new InvseeCommand().register(); } public void registerListeners(){ PluginManager pm = Bukkit.getPluginManager(); pm.registerEvents(new ProtectPluginsListener(), this); pm.registerEvents(new AsyncPlayerChatListener(), this);; pm.registerEvents(new BlockPlaceListener(), this); pm.registerEvents(new SignColorListener(), this); } } Lang: package pl.unixhc.tools.config; public class Lang{ private static Lang inst; public String USAGE; public String PERMISSION; public String PLAYER_NOT_EXISTS; public String INVENTORY_OPENED; public String COMMAND_PLAYER; public static Lang getInst(){ if(inst == null){ new Lang(); } return inst; } public Lang(){ this.PERMISSION = "&4Nie masz uprawnien."; this.PLAYER_NOT_EXISTS = "&4Ten gracz jest offline."; this.INVENTORY_OPENED = "&aOtworzono ekwipunek gracza {PLAYER}"; this.USAGE = "&cPoprawne uzycie: {USAGE}."; this.COMMAND_PLAYER = "&4Ta komenda jest dostepna tylko dla gracza."; } } Util: package pl.unixhc.tools.utils; import org.bukkit.command.CommandSender; import pl.unixhc.tools.config.Lang; public class Util { public static boolean sendMessage(CommandSender sender, String message) { sender.sendMessage(message); return true; } public static boolean sendPermission(CommandSender sender, String permission) { sender.sendMessage(Lang.getInst().PERMISSION.replace("{PERM}", permission)); return true; } public static boolean sendUsage(CommandSender sender, String usage) { sender.sendMessage(Lang.getInst().USAGE.replace("{USAGE}", usage)); return true; } } CommandManager: package pl.unixhc.tools.managers; import java.lang.reflect.Field; import java.util.Arrays; import java.util.List; import org.bukkit.Bukkit; import org.bukkit.command.CommandMap; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import pl.unixhc.tools.config.Lang; import pl.unixhc.tools.utils.Util; public abstract class CommandManager extends org.bukkit.command.Command { private String name; private String description; private String usage; private String permission; private List<String> aliases; private boolean player; public CommandManager(String name, boolean player, String permission, String description, String usage, String... aliases) { super(name, description, usage, Arrays.asList(aliases)); this.name = name; this.description = description; this.usage = usage; this.permission = permission; this.aliases = Arrays.asList(aliases); this.player = player; } public boolean execute(CommandSender sender, String command, String[] args) { if ((isPlayer()) && (!(sender instanceof Player))) { return Util.sendMessage(sender, Lang.getInst().COMMAND_PLAYER); } if ((getPermission() != null) && (!sender.hasPermission(getPermission()))) { return Util.sendPermission(sender, getPermission()); } return exe(sender, command, args); } public abstract boolean exe(CommandSender paramCommandSender, String paramString, String[] paramArrayOfString); public String getName() { return this.name; } public String getDescription() { return this.description; } public String getUsage() { return this.usage; } public String getPermission() { return this.permission; } public List<String> getAliases() { return this.aliases; } public boolean isPlayer() { return this.player; } public CommandManager setDescription(String description) { this.description = description; return this; } public CommandManager setUsage(String usage) { this.usage = usage; return this; } public void setPermission(String permission) { this.permission = permission; } public CommandManager setAliases(List<String> aliases) { this.aliases = aliases; return this; } public void setPlayer(boolean player) { this.player = player; } public void register() { try { if (getName() == null) { return; } Field f = Bukkit.getServer().getClass().getDeclaredField("commandMap"); f.setAccessible(true); CommandMap cmap = (CommandMap)f.get(Bukkit.getServer()); cmap.register(getName(), this); } catch (Exception e) { e.printStackTrace(); } } public boolean onExecute(CommandSender sender, String[] args) { return false; } } Log z konsoli: null org.bukkit.command.CommandException: Unhandled exception executing 'invsee' in pl.unixhc.tools.commands.InvseeCommand(invsee) at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:148) ~[Silnik.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:641) ~[Silnik.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PlayerConnection.handleCommand(PlayerConnection.java:1162) [Silnik.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:997) [Silnik.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:45) [Silnik.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:1) [Silnik.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [Silnik.jar:git-Spigot-db6de12-18fbb24] at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_161] at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_161] at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [Silnik.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:715) [Silnik.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [Silnik.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [Silnik.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [Silnik.jar:git-Spigot-db6de12-18fbb24] at java.lang.Thread.run(Unknown Source) [?:1.8.0_161] Caused by: java.lang.NullPointerException at pl.unixhc.tools.utils.Util.sendPermission(Util.java:20) ~[?:?] at pl.unixhc.tools.managers.CommandManager.execute(CommandManager.java:41) ~[?:?] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[Silnik.jar:git-Spigot-db6de12-18fbb24] ... 14 more
  6. Witam, chcialbym dodac jeszcze mozliwosc rozdania case graczowi uzywajac komendy /case <basic/premium> <nick> <ilosc> lecz niestety nie wiem jak to zrobic, probowalem i mi nie wychodzilo Moglby ktos napisac mi kod? package pl.unixhc.tools.commands; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import pl.unixhc.tools.Main; import pl.unixhc.tools.utils.ChatUtil; import pl.unixhc.tools.utils.ItemBuilder; public class CaseCommand implements CommandExecutor{ Main plugin; public CaseCommand(Main plugin){ this.plugin = plugin; this.plugin.getCommand("case").setExecutor(this); } public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){ if(!sender.hasPermission("unixhc.tools.case")){ sender.sendMessage(ChatUtil.fixColor("&4Nie masz uprawnien.")); return false; } if(args.length != 3){ sender.sendMessage(ChatUtil.fixColor("&8>> &cPoprawne uzycie: /case <basic/premium> <all/nick> <ilosc>.")); return false; } if(args[1].equalsIgnoreCase("all")){ int i = Integer.parseInt(args[2]); if(i <= 0){ sender.sendMessage(ChatUtil.fixColor("&8>> &cNie mozesz dac 0 lub mniej skrzynek!")); return false; } if(args[0].equalsIgnoreCase("basic")){ ItemStack item = new ItemBuilder(Material.CHEST, i).setName(ChatUtil.fixColor("&8[&9Basic Case&8]")).toItemStack(); for(Player p : Bukkit.getOnlinePlayers()){ p.getInventory().addItem(item); Bukkit.broadcastMessage(ChatUtil.fixColor("&8{O} &7Administrator &a" + sender.getName() + " &7rozdal Basic Case (&f" + i + "&7)")); return true; } } if(args[0].equalsIgnoreCase("premium")){ ItemStack item = new ItemBuilder(Material.CHEST, i).setName(ChatUtil.fixColor("&8[&cPremium case&8]")).toItemStack(); for(Player p : Bukkit.getOnlinePlayers()){ p.getInventory().addItem(item); Bukkit.broadcastMessage(ChatUtil.fixColor("&8{O} &7Administrator &a" + sender.getName() + " &7rozdal Premium Case (&f" + i + "&7)")); return true; } } } return false; } } Tytuł //xVen
  7. Z paczki to ty jestes
  8. 4RNI

    Komenda nie dziala

    Napisalem ze tak.
  9. 4RNI

    Komenda nie dziala

    Witam po wpisaniu komendy /ts3 nic sie nie dzieje (zadnych logow w konsoli). Od razu mowie ze nie jest to przez config. Kod: package pl.unixhc.tools.commands; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import pl.unixhc.tools.Main; import pl.unixhc.tools.utils.ChatUtil; public class Ts3Command implements CommandExecutor{ Main plugin; public Ts3Command(Main plugin){ this.plugin = plugin; this.plugin.getCommand("ts3").setExecutor(this); } public boolean onCommand(CommandSender sender, Command cmnd, String string, String[] args){ for(String ts3 : this.plugin.getConfig().getStringList("Ts3Info")){ sender.sendMessage(ChatUtil.fixColor(ts3)); return true; } return false; } } Main: package pl.unixhc.tools; import org.bukkit.event.Listener; import org.bukkit.plugin.java.JavaPlugin; import pl.unixhc.tools.commands.*; public class Main extends JavaPlugin implements Listener{ Ts3Command ts3; public void onEnable(){ saveDefaultConfig(); this.ts3 = new Ts3Command(this); } } Komenda jest zarejestrowana w plugin.yml.
  10. 4RNI

    Blad

    Problem rozwiazany ;p
  11. 4RNI

    Blad

    Witam po wpisaniu komendy wyskakuje mi blad. Komende zarejestrowalem w Main i plugin.yml. package pl.unixhc.tools.commands; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import pl.unixhc.tools.Main; public class TeleportAllCommand implements CommandExecutor{ Main plugin; public TeleportAllCommand(Main plugin){ this.plugin = plugin; this.plugin.getCommand("tpall").setExecutor(this); } public boolean onCommand(CommandSender sender, Command cmd, String lab, String[] args){ if(!(sender instanceof Player)){ sender.sendMessage(this.plugin.getConfig().getString("Ogolne.WiadomoscKonsola").replace('&', '§')); return false; } if (!(sender.hasPermission(this.plugin.getConfig().getString("TeleportAll.Uprawnienie")))){ sender.sendMessage(this.plugin.getConfig().getString("Ogolne.WiadomoscBrakUprawnien").replace('&', '§')); return false; } Player admin = (Player)sender; for (Player gracze : Bukkit.getOnlinePlayers()){ gracze.teleport(admin.getLocation()); sender.sendMessage(this.plugin.getConfig().getString("TeleportAll.WiadomoscPrzeteleportowano").replace('&', '§')); return true; } return false; } }
  12. 4RNI

    Config v2 :D

    @GotoFinal tam gdzie chcialem aby bylo puste miejsce po prostu nie ma tej linijki
  13. 4RNI

    Config v2 :D

    Witam, moj config wyglada w nastepujacy sposob: VIP: Wiadomosc1: "&8&m--------&8[ &9&lItemShop &8]&m--------" Wiadomosc2: " " Wiadomosc3: "&7Gracz &f{GRACZ} &7zakupil usluge w naszym sklepie" Wiadomosc4: " " Wiadomosc5: "&7Zakupiona usluga: &fVIP" Wiadomosc6: " " Wiadomosc7: "&7Koszt zakupionej uslugi: od &f4 PLN" Wiadomosc8: "" Wiadomosc9: "&8&m--------&8[ &9&lItemShop &8]&m--------" Komenda: "pex user {GRACZ} group set VIP" Chcialbym aby wygladal tak: VIP: Komenda: "pex user {GRACZ} group set VIP" - '&8&m--------&8[ &9&lItemShop &8]&m--------' - ' ' - '&7Gracz &f{GRACZ} &7zakupil usluge w naszym sklepie' - ' ' - '&7Zakupiona usluga: &fVIP' - ' ' - '&7Koszt zakupionej uslugi: od &f4 PLN' - ' ' - '&8&m--------&8[ &9&lItemShop &8]&m--------' Czy da sie tak zrobic? Jezeli jak to w jaki sposob? Kod pluginu: https://pastebin.com/bzJLiZUm, Main: https://pastebin.com/idDwbZDh. Dopiero co zaczalem pisac pluginy wiec jeszcze nie ogarniam ;p.
  14. 4RNI

    Config

    package pl.unixhc.tools; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.event.Listener; public class Itemshop implements CommandExecutor, Listener{ public boolean onCommand(CommandSender sender, Command cmd, String lab, String[] args){ if(cmd.getName().equalsIgnoreCase("is")){ if(!sender.hasPermission("unixhc.itemshop")){ sender.sendMessage("§4Nie masz uprawnien."); return false; } if(args.length != 2){ sender.sendMessage("§cPoprawne uzycie to /is <nick> <vip/svip/sponsor/unban/basic/premium>"); return true; } if(args[1].equalsIgnoreCase("vip")){ Bukkit.broadcastMessage("§8§m------------§8[ §9§lItemShop §8]§m------------"); Bukkit.broadcastMessage(""); Bukkit.broadcastMessage("§8» §7Gracz §f" + args[0] + " §7zakupil usluge z naszego sklepu"); Bukkit.broadcastMessage(" "); Bukkit.broadcastMessage("§8» §7Zakupiona usluga: §fVIP"); Bukkit.broadcastMessage(" "); Bukkit.broadcastMessage("§8§m------------§8[ §9§lItemShop §8]§m------------"); Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "pex user " + args[0] + " group set SVIP"); } } return false; } } Witam dopiero co zaczalem pisac pluginy i mam prosbe czy zedytowalby mi ktos ten kod tak aby tworzyl sie config, w ktorym moglbym ustawiac wiadomosci zamiast tego Bukkit.broadcastMessage?
  15. 4RNI

    Skrypt na blackliste

    Blokuje IP gracza. /blacklist dodaj np. 4RNI
  16. 4RNI

    TPA w TITLE

    command /tpa [<player>]: trigger: if arg-1 is set: if arg-1 is online: if arg-1 is "%player%": send "&cNie mozesz wysylac prosby o teleportacje do samego siebie!" else: send player title "&8[&3BLUE&cTELEPORT&8]" with subtitle "&eWyslano prosbe o teleportacje do %arg-1%" for 3 seconds send arg-1 title "&8[&3BLUE&cTELEPORT&8]" with subtitle "&eGracz %player% chce sie do Ciebie teleportowac." for 3 seconds set {tpa::%player%::%arg-1%} to true else: send "%arg-1% nie jest online." else: send "&cPoprawne uzycie to /tpa <nick>." command /tpaccept [<player>]: trigger: if arg-1 is set: if arg-1 is online: if arg-1 is "%player%": stop if {tpa::%player%::%arg-1%} is true: set {tpaccept::%arg-1%::%player%} to true clear {tpa::%player%::%arg-1%} set {tpaccept:wait::%arg-1%::%player%} to true send arg-1 title "&8[&3BLUE&cTELEPORT&8]" with subtitle "&eGracz %player% zaakceptowal twoja prosbe. Nie ruszaj sie." for 3 seconds send player title "&8[&3BLUE&cTELEPORT&8]" with subtitle "&eZaakceptowales prosbe gracza %arg-1%" for 3 seconds set {_loc} to location of arg-1 loop 10 times: wait 1 second if {_loc} is not location of arg-1: send arg-1 title "&8[&3BLUE&cTELEPORT&8]" with subtitle "&cRuszyles sie! Teleportacja zostala przerwana." for 3 seconds stop if {_loc} is location of arg-1: teleport arg-1 to player send arg-1 title "&8[&3BLUE&cTELEPORT&8]" with subtitle "&eZostales przeteleportowany do %arg-1%" for 3 seconds else: send "&cGracz %arg-1% nie prosil Cie o teleportacje." else: send "&cTen gracz nie jest online." else: send "&cPoprawne uzycie to /tpaccept <nick>" Jak mialo byc cos w tym stylu to napisz i poprawie/dodam tam cos ;p
  17. 4RNI

    Skrypt na blackliste

    command /blacklist [<text>] [<player>]: trigger: if executor is player: if arg-1 is "dodaj": if arg-2 is set: if arg-2 is player: add ip of arg-2 to {unixhc::blacklist::*} send "&aDodano adres IP gracza %arg-2% do czarnej listy." if arg-1 is "usun": if arg-2 is set: if arg-2 is player: remove ip of arg-2 from {unixhc::blacklist::*} send "&aUsunieto adres IP gracza %arg-2% z czarnej listy." else: send "&cNie ma takiego gracza." else: send "&cPoprawne uzycie to /blacklist <dodaj/usun> <nick>." else: send "&cPoprawne uzycie to /blacklist <dodaj/usun> <nick>." else: send "&cTej komendy nie mozesz uzyc przez konsole." on join: if {unixhc::blacklist::*} contains player's ip: kick player due to "&f&lUNIX&c&lHC%nl%&7Jestes na czarnej liscie."
  18. Poprawie niedlugo. Faktycznie tepanie po sprawdzeniu nie ma sensu.
  19. Witam, napisałem skrypt na sprawdzanie, który może przydać się na niektóre serwery typu EasyHC itp. Piszcie co mam dodać/poprawić w następnej wersji w komentarzach Funkcje - blokada komend (prócz /msg, /r oraz /helpop) podczas bycia sprawdzanym - blokada wyrzucania przedmiotów podczas bycia sprawdzanym - automatyczny ban, gdy gracz wyjdzie podczas sprawdzania - /setsprawdz (ustawia miejsce, do którego gracz będzie teleportowany podczas sprawdzania - /setczysty (ustawia miejsce, do którego gracz będzie teleportowany po sprawdzeniu Permisje - /sprawdz (unixhc.sprawdz) - /setsprawdz (unixhc.setsprawdz) - /setczysty (unixhc.setczysty) Powyższe permisje można zmienić w skrypcie (2, 3 i 4 linijka) Download [1.0]: LINK [2.0]: *
  20. 4RNI

    Prosba

    command /electrocx: trigger: if player has 64 cobblestone or 64 diamond or 64 emerald or 64 lapis lazuli or 64 obsidian: if player can hold 1 stone named "&e&lElectro&2&lWaluta": give 1 stone named "&e&lElectro&2&lWaluta" to player's inventory else: drop 1 stone named "&e&lElectro&2&lWaluta" options: czas: 86400 # Czas w sekundach na ile gracz ma otrzymac range testowa swiat: world # Nazwa swiata, z ktorego twoj serwer korzysta command /freevip: trigger: execute console command "pex user %player% group add VIP {@swiat} {@czas}" send "&7Gracz &a%player% &7rozpoczal okres testowy rangi VIP."
  21. options: permisja: tereny.admin # Permisja jaka gracz potrzebuje do wpisania komendy wiadomosc: &4Nie masz uprawnien. # Wiadomosc informujaca gracza o braku permisji command /tereny [<text>] [<player>]: permission: {@permisja} permission message: {@wiadomosc} trigger: if arg-1 is "dodaj": if arg-2 is set: if arg-2 is player: execute player command "ps allow %arg-2%" else: send "&7Nie odnaleziono gracza &c%arg-2%&7." else: send "&7Poprawne uzycie komendy to &a/tereny dodaj <nick>&7." else: send "&7Poprawne uzycie komendy to &a/tereny dodaj <nick>&7."
  22. Witam, napisałem prosty skrypt, na komendę /ping oraz informację, która się wyświetla jeżeli gracz ma wysoki ping (wartość od ilu ms pingu ma się wyświetlać powiadomienie można zmienić w skrypcie). Skrypt jest pod wersję 1.8 Download: 1.0: https://code.skript.pl/UtkEshWF/ Wymagania: - skRayFall - Skript Screeny
  23. command /villager: trigger: kick player due to "Wiecej tego wstawiaj" stop
  24. Daj najlepiej caly skrypt jak wyglada bo sie normalnie polapac nie moge... command /zakup2 [<player>]: trigger: if {monety.%player-arg%} is greater than or equal to 0: remove {@fiolet} from {monety.%player-arg%} execute console command "nick %player% &5%player%" send "&b&l>> &7Zakupiles &e&lZ&f&lm&a&li&b&la&c&ln&8&la &d&lk&f&lo&2&ll&9&lo&4&lr&6&lu &f&ln&e&li&3&lc&7&lk&5&lu" to player-arg else: send "&b&l>> &cNie posiadasz tylu monet" to player-arg
  25. Masz wiele poradnikow na internecie, a nawet na tym forum
×
×
  • Dodaj nową pozycję...