MineAnonim Opublikowano 21 Lutego 2017 Udostępnij Opublikowano 21 Lutego 2017 Cześć! Szukam sposobu na stworzenie fake gracza widocznego na tabie. Chciałbym, aby po restarcie nie znikał. Ew. Po relognięciu. Pakietami raczej się tego nie zrobi? :/ Bo te, byłyby wysłane do każdego gracza z osobna, a gdyby serwer był pusty, to fake graczy by nie było - tego nie chcę :/ Moim celem jest możliwość przebywania na serwerze tylko fake graczy.. Jakiś sposób? Z góry dzięki Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DexterQ Opublikowano 21 Lutego 2017 Udostępnij Opublikowano 21 Lutego 2017 https://dev.bukkit.org/projects/fakeplayers Proszę http://i68.tinypic.com/11uw67o.gif Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 21 Lutego 2017 Udostępnij Opublikowano 21 Lutego 2017 PacketPlayOutPlayerInfo Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MineAnonim Opublikowano 21 Lutego 2017 Autor Udostępnij Opublikowano 21 Lutego 2017 PacketPlayOutPlayerInfo I nawet, jeżeli nikogo nie będzie na serwerze, to ten npc zostanie? https://dev.bukkit.org/projects/fakeplayers Proszę Mi chodzi o stworzenie takiego bota nie po to, żeby sobie był Opisałem tylko w czym potrzebuję pomocy Ale dzięki Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Nocny Opublikowano 22 Lutego 2017 Udostępnij Opublikowano 22 Lutego 2017 PacketPlayOutPlayerInfoI nawet, jeżeli nikogo nie będzie na serwerze, to ten npc zostanie? https://dev.bukkit.org/projects/fakeplayers Proszę Mi chodzi o stworzenie takiego bota nie po to, żeby sobie był Opisałem tylko w czym potrzebuję pomocy Ale dzięki tworzysz fake GameProfile od 1.8+ i wysyłasz pakiet PacketPlayOutPlayerInfo z tym gameprofile, no ale taki pakiet musisz wysłać do gracza, bo to on widzi tabliste. taki sam efekt można osiagnac uzywajac protocolliba, jest mnóstwo kodu jak takie coś wykonać i jest bardziej przystepne dla kogos, kto nigdy sie nie bawil pakietami Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MineAnonim Opublikowano 22 Lutego 2017 Autor Udostępnij Opublikowano 22 Lutego 2017 PacketPlayOutPlayerInfoI nawet, jeżeli nikogo nie będzie na serwerze, to ten npc zostanie? https://dev.bukkit.org/projects/fakeplayers Proszę Mi chodzi o stworzenie takiego bota nie po to, żeby sobie był Opisałem tylko w czym potrzebuję pomocy Ale dzięki tworzysz fake GameProfile od 1.8+ i wysyłasz pakiet PacketPlayOutPlayerInfo z tym gameprofile, no ale taki pakiet musisz wysłać do gracza, bo to on widzi tabliste. taki sam efekt można osiagnac uzywajac protocolliba, jest mnóstwo kodu jak takie coś wykonać i jest bardziej przystepne dla kogos, kto nigdy sie nie bawil pakietami Okej już chyba wiem Dziękuję wszystkim! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MineAnonim Opublikowano 22 Lutego 2017 Autor Udostępnij Opublikowano 22 Lutego 2017 Jeszcze jedno. Czy stworzenie fake gameprofile'u sloty na liście serwerów będą się zmieniały? ~Czy fake player będzie liczony jako gracz w liczbie graczy online na serwerze. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
AdamGrzegorz Opublikowano 22 Lutego 2017 Udostępnij Opublikowano 22 Lutego 2017 Jeszcze jedno. Czy stworzenie fake gameprofile'u sloty na liście serwerów będą się zmieniały? ~Czy fake player będzie liczony jako gracz w liczbie graczy online na serwerze. Jeżeli chodzi Ci o to czy taki pakiet będzie powodować zwiększenie się zajętych slotów to oczywiście że nie. Pakiet PlayerInfo jest jedynie na tabie. Moja oficjalna strona! http://socketbyte.pl/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MineAnonim Opublikowano 22 Lutego 2017 Autor Udostępnij Opublikowano 22 Lutego 2017 Jeszcze jedno. Czy stworzenie fake gameprofile'u sloty na liście serwerów będą się zmieniały? ~Czy fake player będzie liczony jako gracz w liczbie graczy online na serwerze. Jeżeli chodzi Ci o to czy taki pakiet będzie powodować zwiększenie się zajętych slotów to oczywiście że nie. Pakiet PlayerInfo jest jedynie na tabie. Hm :/ A co może powodować taki efekt? Chciałbym to ewentualnie połączyć.. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MarcinWieczorek Opublikowano 22 Lutego 2017 Udostępnij Opublikowano 22 Lutego 2017 Na zajęcie dodatkowego slotu masz całą plejadę opcji, najprościej chyba odrzucić połączenie przy logowaniu nowego gracza jeśli nowa maksymalna liczba slotów jest osiągnięta. P.S. Nie potrzebujesz fejkowego gracza żeby zająć slot, nawet nic Ci to nie da. Może powiesz nam jaki masz plan? Dodaj mój nick do posta jeśli potrzebujesz pomocy | Piszę pluginy na zlecenie | Pomagam z Linuxem Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
AdamGrzegorz Opublikowano 22 Lutego 2017 Udostępnij Opublikowano 22 Lutego 2017 Najłatwiejszą opcją jest użycie ProtocolLiba ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(instance, PacketType.Status.Server.SERVER_INFO)) { public void onPacketSending(PacketEvent event) { WrappedServerPing ping = (WrappedServerPing) event.getPacket().getServerPings().read(0); ping.setPlayersOnline(#ilosc#); event.getPacket().getServerPings().write(0, ping); } } A jak nie chcesz używać ProtocolLiba to robisz podobnie, pakiet ServerInfo (nie znam dokładnie nazwy), ustawiasz parę rzeczy i wysyłasz jakoś Moja oficjalna strona! http://socketbyte.pl/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MineAnonim Opublikowano 22 Lutego 2017 Autor Udostępnij Opublikowano 22 Lutego 2017 Najłatwiejszą opcją jest użycie ProtocolLiba ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(instance, PacketType.Status.Server.SERVER_INFO)) { public void onPacketSending(PacketEvent event) { WrappedServerPing ping = (WrappedServerPing) event.getPacket().getServerPings().read(0); ping.setPlayersOnline(#ilosc#); event.getPacket().getServerPings().write(0, ping); } } A jak nie chcesz używać ProtocolLiba to robisz podobnie, pakiet ServerInfo (nie znam dokładnie nazwy), ustawiasz parę rzeczy i wysyłasz jakoś Ślicznie dziękuję Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MineAnonim Opublikowano 22 Lutego 2017 Autor Udostępnij Opublikowano 22 Lutego 2017 ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(instance, PacketType.Status.Server.SERVER_INFO){ public void onPacketSending(PacketEvent event) { WrappedServerPing ping = (WrappedServerPing) event.getPacket().getServerPings().read(0); ping.setPlayersOnline(5); event.getPacket().getServerPings().write(0, ping); } }); Jest problem :/ Użyłem tego kodu w pętli po wejściu gracza. Żeby uaktualniało się kiedy jest to potrzebne. Ta "5" jest żeby sprawdzić :;/ Bo wiem, że z tym kodem pętla byłaby bezsensowna.. Nie działa to. W onenable mam protocolmanagera zarejestrowanego.. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
AdamGrzegorz Opublikowano 23 Lutego 2017 Udostępnij Opublikowano 23 Lutego 2017 ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(instance, PacketType.Status.Server.SERVER_INFO){ public void onPacketSending(PacketEvent event) { WrappedServerPing ping = (WrappedServerPing) event.getPacket().getServerPings().read(0); ping.setPlayersOnline(5); event.getPacket().getServerPings().write(0, ping); } }); Jest problem :/ Użyłem tego kodu w pętli po wejściu gracza. Żeby uaktualniało się kiedy jest to potrzebne. Ta "5" jest żeby sprawdzić :;/ Bo wiem, że z tym kodem pętla byłaby bezsensowna.. Nie działa to. W onenable mam protocolmanagera zarejestrowanego.. Po 1. czemu w pętli, po 2. czemu po wejściu gracza? Przecież to ma się pojawiać przed wejściem gracza Zrób to w evencie ServerListPingEvent, albo w onEnable() bo szczerze nie wiem jak to działa dokładnie. Moja oficjalna strona! http://socketbyte.pl/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MineAnonim Opublikowano 23 Lutego 2017 Autor Udostępnij Opublikowano 23 Lutego 2017 ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(instance, PacketType.Status.Server.SERVER_INFO){ public void onPacketSending(PacketEvent event) { WrappedServerPing ping = (WrappedServerPing) event.getPacket().getServerPings().read(0); ping.setPlayersOnline(5); event.getPacket().getServerPings().write(0, ping); } }); Jest problem :/ Użyłem tego kodu w pętli po wejściu gracza. Żeby uaktualniało się kiedy jest to potrzebne. Ta "5" jest żeby sprawdzić :;/ Bo wiem, że z tym kodem pętla byłaby bezsensowna.. Nie działa to. W onenable mam protocolmanagera zarejestrowanego.. Po 1. czemu w pętli, po 2. czemu po wejściu gracza? Przecież to ma się pojawiać przed wejściem gracza Zrób to w evencie ServerListPingEvent, albo w onEnable() bo szczerze nie wiem jak to działa dokładnie. Ad1 Ponieważ liczba graczy ma pokrywać się z liczbą fake graczy. Po wejściu będzie setowało liczbę graczy + liczbę botów. 2. Ok spróbuję Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Nocny Opublikowano 24 Lutego 2017 Udostępnij Opublikowano 24 Lutego 2017 ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(instance, PacketType.Status.Server.SERVER_INFO){ public void onPacketSending(PacketEvent event) { WrappedServerPing ping = (WrappedServerPing) event.getPacket().getServerPings().read(0); ping.setPlayersOnline(5); event.getPacket().getServerPings().write(0, ping); } }); Jest problem :/ Użyłem tego kodu w pętli po wejściu gracza. Żeby uaktualniało się kiedy jest to potrzebne. Ta "5" jest żeby sprawdzić :;/ Bo wiem, że z tym kodem pętla byłaby bezsensowna.. Nie działa to. W onenable mam protocolmanagera zarejestrowanego.. Po 1. czemu w pętli, po 2. czemu po wejściu gracza? Przecież to ma się pojawiać przed wejściem gracza Zrób to w evencie ServerListPingEvent, albo w onEnable() bo szczerze nie wiem jak to działa dokładnie. Ad1 Ponieważ liczba graczy ma pokrywać się z liczbą fake graczy. Po wejściu będzie setowało liczbę graczy + liczbę botów. 2. Ok spróbuję jaki sens ma używanie tego przy wchodzeniu gracza? wystarczy, że zrobisz mniej więcej coś takiego: ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(instance, PacketType.Status.Server.SERVER_INFO)) { public void onPacketSending(PacketEvent event) { WrappedServerPing ping = (WrappedServerPing) event.getPacket().getServerPings().read(0); ping.setPlayersOnline(Bukkit.getOnlinePlayers().size() + 5); event.getPacket().getServerPings().write(0, ping); } } oczywiscie to jest przykład, a możliwości jest wiele - za każdym razem jak ktoś spinguje twój serwer, zwróci mu ilość graczy w postaci realnych graczy + 5, nie trzeba nic ustawiac przy wchodzeniu a tym bardziej w pętli Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MineAnonim Opublikowano 25 Lutego 2017 Autor Udostępnij Opublikowano 25 Lutego 2017 ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(instance, PacketType.Status.Server.SERVER_INFO){ public void onPacketSending(PacketEvent event) { WrappedServerPing ping = (WrappedServerPing) event.getPacket().getServerPings().read(0); ping.setPlayersOnline(5); event.getPacket().getServerPings().write(0, ping); } }); Jest problem :/ Użyłem tego kodu w pętli po wejściu gracza. Żeby uaktualniało się kiedy jest to potrzebne. Ta "5" jest żeby sprawdzić :;/ Bo wiem, że z tym kodem pętla byłaby bezsensowna.. Nie działa to. W onenable mam protocolmanagera zarejestrowanego.. Po 1. czemu w pętli, po 2. czemu po wejściu gracza? Przecież to ma się pojawiać przed wejściem gracza Zrób to w evencie ServerListPingEvent, albo w onEnable() bo szczerze nie wiem jak to działa dokładnie. Ad1 Ponieważ liczba graczy ma pokrywać się z liczbą fake graczy. Po wejściu będzie setowało liczbę graczy + liczbę botów. 2. Ok spróbuję jaki sens ma używanie tego przy wchodzeniu gracza? wystarczy, że zrobisz mniej więcej coś takiego: ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(instance, PacketType.Status.Server.SERVER_INFO)) { public void onPacketSending(PacketEvent event) { WrappedServerPing ping = (WrappedServerPing) event.getPacket().getServerPings().read(0); ping.setPlayersOnline(Bukkit.getOnlinePlayers().size() + 5); event.getPacket().getServerPings().write(0, ping); } } oczywiscie to jest przykład, a możliwości jest wiele - za każdym razem jak ktoś spinguje twój serwer, zwróci mu ilość graczy w postaci realnych graczy + 5, nie trzeba nic ustawiac przy wchodzeniu a tym bardziej w pętli Hmm :/ Używam tego kodu i Wywala mi błąd przy bibliotekach protocolliba.. ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(instance, PacketType.Status.Server.SERVER_INFO)) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MineAnonim Opublikowano 25 Lutego 2017 Autor Udostępnij Opublikowano 25 Lutego 2017 import org.bukkit.Bukkit; import org.bukkit.event.Listener; import org.bukkit.plugin.java.JavaPlugin; import com.comphenix.protocol.ProtocolLibrary; import com.comphenix.protocol.ProtocolManager; import com.comphenix.protocol.events.PacketEvent; import com.comphenix.protocol.wrappers.WrappedServerPing; public class Main extends JavaPlugin implements Listener{ static ProtocolManager protocolManager; public static Main instance; @Override public void onEnable(){ instance = this; protocolManager = ProtocolLibrary.getProtocolManager(); Bukkit.getPluginManager().registerEvents(this, this); } ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(instance, PacketType.Status.Server.SERVER_INFO)){ public void onPacketSending(PacketEvent event) { WrappedServerPing ping = (WrappedServerPing) event.getPacket().getServerPings().read(0); ping.setPlayersOnline(Bukkit.getOnlinePlayers().size() + 5); event.getPacket().getServerPings().write(0, ping); } } public static Main getInst(){ return instance; } } Nie wiem co tu jest nie tak.. Screeny: 1. http://imgur.com/a/RutGu 2. https://scr.hu/GLX559 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
AdamGrzegorz Opublikowano 26 Lutego 2017 Udostępnij Opublikowano 26 Lutego 2017 import org.bukkit.Bukkit; import org.bukkit.event.Listener; import org.bukkit.plugin.java.JavaPlugin; import com.comphenix.protocol.ProtocolLibrary; import com.comphenix.protocol.ProtocolManager; import com.comphenix.protocol.events.PacketEvent; import com.comphenix.protocol.wrappers.WrappedServerPing; public class Main extends JavaPlugin implements Listener{ static ProtocolManager protocolManager; public static Main instance; @Override public void onEnable(){ instance = this; protocolManager = ProtocolLibrary.getProtocolManager(); Bukkit.getPluginManager().registerEvents(this, this); } ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(instance, PacketType.Status.Server.SERVER_INFO)){ public void onPacketSending(PacketEvent event) { WrappedServerPing ping = (WrappedServerPing) event.getPacket().getServerPings().read(0); ping.setPlayersOnline(Bukkit.getOnlinePlayers().size() + 5); event.getPacket().getServerPings().write(0, ping); } } public static Main getInst(){ return instance; } } Nie wiem co tu jest nie tak.. Screeny: 1. http://imgur.com/a/RutGu 2. https://scr.hu/GLX559 No ale umieść to w metodzie import org.bukkit.Bukkit; import org.bukkit.event.Listener; import org.bukkit.plugin.java.JavaPlugin; import com.comphenix.protocol.ProtocolLibrary; import com.comphenix.protocol.ProtocolManager; import com.comphenix.protocol.events.PacketEvent; import com.comphenix.protocol.wrappers.WrappedServerPing; public class Main extends JavaPlugin implements Listener{ static ProtocolManager protocolManager; public static Main instance; @Override public void onEnable(){ instance = this; protocolManager = ProtocolLibrary.getProtocolManager(); Bukkit.getPluginManager().registerEvents(this, this); ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(instance, PacketType.Status.Server.SERVER_INFO)){ public void onPacketSending(PacketEvent event) { WrappedServerPing ping = (WrappedServerPing) event.getPacket().getServerPings().read(0); ping.setPlayersOnline(Bukkit.getOnlinePlayers().size() + 5); event.getPacket().getServerPings().write(0, ping); } } } public static Main getInst(){ return instance; } } Moja oficjalna strona! http://socketbyte.pl/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MineAnonim Opublikowano 26 Lutego 2017 Autor Udostępnij Opublikowano 26 Lutego 2017 import org.bukkit.Bukkit; import org.bukkit.event.Listener; import org.bukkit.plugin.java.JavaPlugin; import com.comphenix.protocol.ProtocolLibrary; import com.comphenix.protocol.ProtocolManager; import com.comphenix.protocol.events.PacketEvent; import com.comphenix.protocol.wrappers.WrappedServerPing; public class Main extends JavaPlugin implements Listener{ static ProtocolManager protocolManager; public static Main instance; @Override public void onEnable(){ instance = this; protocolManager = ProtocolLibrary.getProtocolManager(); Bukkit.getPluginManager().registerEvents(this, this); } ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(instance, PacketType.Status.Server.SERVER_INFO)){ public void onPacketSending(PacketEvent event) { WrappedServerPing ping = (WrappedServerPing) event.getPacket().getServerPings().read(0); ping.setPlayersOnline(Bukkit.getOnlinePlayers().size() + 5); event.getPacket().getServerPings().write(0, ping); } } public static Main getInst(){ return instance; } } Nie wiem co tu jest nie tak.. Screeny: 1. http://imgur.com/a/RutGu 2. https://scr.hu/GLX559 No ale umieść to w metodzie import org.bukkit.Bukkit; import org.bukkit.event.Listener; import org.bukkit.plugin.java.JavaPlugin; import com.comphenix.protocol.ProtocolLibrary; import com.comphenix.protocol.ProtocolManager; import com.comphenix.protocol.events.PacketEvent; import com.comphenix.protocol.wrappers.WrappedServerPing; public class Main extends JavaPlugin implements Listener{ static ProtocolManager protocolManager; public static Main instance; @Override public void onEnable(){ instance = this; protocolManager = ProtocolLibrary.getProtocolManager(); Bukkit.getPluginManager().registerEvents(this, this); ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(instance, PacketType.Status.Server.SERVER_INFO)){ public void onPacketSending(PacketEvent event) { WrappedServerPing ping = (WrappedServerPing) event.getPacket().getServerPings().read(0); ping.setPlayersOnline(Bukkit.getOnlinePlayers().size() + 5); event.getPacket().getServerPings().write(0, ping); } } } public static Main getInst(){ return instance; } } :/ Jestem głupi >.< I dziękuję bardzo wszystkim Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Zarchiwizowany
Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.