Advertisement
meku

Untitled

Nov 23rd, 2017
8,534
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.82 KB | None | 0 0
  1. package fire.meku.listen;
  2.  
  3. import org.spacehq.mc.auth.data.GameProfile;
  4. import org.spacehq.mc.auth.exception.request.RequestException;
  5. import org.spacehq.mc.protocol.MinecraftProtocol;
  6. import org.spacehq.mc.protocol.MinecraftConstants;
  7. import org.spacehq.mc.protocol.data.SubProtocol;
  8. import org.spacehq.mc.protocol.ServerLoginHandler;
  9. import org.spacehq.mc.protocol.data.game.EntityMetadata;
  10. import org.spacehq.mc.protocol.data.game.Position;
  11. import org.spacehq.mc.protocol.data.game.values.MessageType;
  12. import org.spacehq.mc.protocol.data.game.values.PlayerListEntry;
  13. import org.spacehq.mc.protocol.data.game.values.entity.player.GameMode;
  14. import org.spacehq.mc.protocol.data.game.values.scoreboard.ScoreboardPosition;
  15. import org.spacehq.mc.protocol.data.game.values.setting.Difficulty;
  16. import org.spacehq.mc.protocol.data.game.values.world.WorldType;
  17. import org.spacehq.mc.protocol.data.game.values.world.block.BlockChangeRecord;
  18. import org.spacehq.mc.protocol.data.message.ChatColor;
  19. import org.spacehq.mc.protocol.data.message.ChatFormat;
  20. import org.spacehq.mc.protocol.data.message.Message;
  21. import org.spacehq.mc.protocol.data.message.MessageStyle;
  22. import org.spacehq.mc.protocol.data.message.TextMessage;
  23. import org.spacehq.mc.protocol.data.message.TranslationMessage;
  24. import org.spacehq.mc.protocol.data.status.PlayerInfo;
  25. import org.spacehq.mc.protocol.data.status.ServerStatusInfo;
  26. import org.spacehq.mc.protocol.data.status.VersionInfo;
  27. import org.spacehq.mc.protocol.data.status.handler.ServerInfoBuilder;
  28. import org.spacehq.mc.protocol.data.status.handler.ServerInfoHandler;
  29. import org.spacehq.mc.protocol.data.status.handler.ServerPingTimeHandler;
  30. import org.spacehq.mc.protocol.packet.handshake.client.HandshakePacket;
  31. import org.spacehq.mc.protocol.packet.ingame.client.ClientChatPacket;
  32. import org.spacehq.mc.protocol.packet.ingame.client.ClientKeepAlivePacket;
  33. import org.spacehq.mc.protocol.packet.ingame.client.player.ClientPlayerInteractEntityPacket;
  34. import org.spacehq.mc.protocol.packet.ingame.client.window.ClientWindowActionPacket;
  35. import org.spacehq.mc.protocol.packet.ingame.server.ServerChatPacket;
  36. import org.spacehq.mc.protocol.packet.ingame.server.ServerJoinGamePacket;
  37. import org.spacehq.mc.protocol.packet.ingame.server.ServerTitlePacket;
  38. import org.spacehq.mc.protocol.packet.ingame.server.entity.player.ServerPlayerPositionRotationPacket;
  39. import org.spacehq.mc.protocol.packet.login.client.LoginStartPacket;
  40. import org.spacehq.mc.protocol.packet.login.server.LoginDisconnectPacket;
  41. import org.spacehq.mc.protocol.packet.login.server.LoginSetCompressionPacket;
  42. import org.spacehq.mc.protocol.packet.login.server.LoginSuccessPacket;
  43. import org.spacehq.mc.protocol.packet.status.client.StatusPingPacket;
  44. import org.spacehq.mc.protocol.packet.status.client.StatusQueryPacket;
  45. import org.spacehq.mc.protocol.packet.status.server.StatusPongPacket;
  46. import org.spacehq.mc.protocol.packet.status.server.StatusResponsePacket;
  47. import org.spacehq.packetlib.Client;
  48. import org.spacehq.packetlib.Server;
  49. import org.spacehq.packetlib.Session;
  50. import org.spacehq.packetlib.event.server.ServerAdapter;
  51. import org.spacehq.packetlib.event.server.ServerBoundEvent;
  52. import org.spacehq.packetlib.event.server.SessionAddedEvent;
  53. import org.spacehq.packetlib.event.server.SessionRemovedEvent;
  54. import org.spacehq.packetlib.event.session.ConnectedEvent;
  55. import org.spacehq.packetlib.event.session.DisconnectedEvent;
  56. import org.spacehq.packetlib.event.session.PacketReceivedEvent;
  57. import org.spacehq.packetlib.event.session.PacketSentEvent;
  58. import org.spacehq.packetlib.event.session.SessionAdapter;
  59. import org.spacehq.packetlib.event.session.SessionListener;
  60. import org.spacehq.packetlib.packet.Packet;
  61. import org.spacehq.packetlib.tcp.TcpSessionFactory;
  62.  
  63. import fire.meku.bots.Bot;
  64. import fire.meku.managers.BotManager;
  65. import fire.meku.managers.MacroManager;
  66. import fire.meku.managers.ProxyManager;
  67. import fire.meku.system.command.Cmd;
  68. import fire.meku.system.connect.JoinAddon;
  69. import fire.meku.system.messages.Config;
  70. import fire.meku.system.utils.Util;
  71.  
  72. import java.awt.image.BufferedImage;
  73. import java.net.Proxy;
  74. import java.util.ArrayList;
  75. import java.util.Arrays;
  76. import java.util.HashMap;
  77. import java.util.List;
  78.  
  79. @SuppressWarnings("unused")
  80. public class ProxyServer {
  81. private static String humanReadableByteCount(long bytes) {
  82. if (bytes < 1536L) {
  83. return bytes + " B";
  84. } else {
  85. int exp = (int) (Math.log((double) bytes) / Math.log(1536.0D));
  86. String pre = "KMGTPE".charAt(exp - 1) + "i";
  87. return String.format("%.2f %sB",
  88. (double) bytes / Math.pow(1024.0D, (double) exp), pre);
  89. }
  90. }
  91.  
  92. private static final boolean SPAWN_SERVER = true;
  93. private static final boolean VERIFY_USERS = false;
  94. private static final String HOST = "0.0.0.0";
  95. private static final int PORT = 25565;
  96. private static final Proxy PROXY = Proxy.NO_PROXY;
  97. private static final Proxy AUTH_PROXY = Proxy.NO_PROXY;
  98. private static final String USERNAME = "MBot";
  99. private static final String PASSWORD = "Password";
  100. static boolean join = false;
  101. static int i = 0;
  102. private static int antiterminated = 0;
  103. public static String ID = JoinAddon.generateID(5);
  104. public static HashMap<String, String> users = new HashMap<>();
  105. public static List<Session> gracze = new ArrayList<>();
  106. public static List<Session> logins = new ArrayList<>();
  107. public static void main(String[] args) {
  108. users.put("koxlifeg", "adesskitoziomal");
  109. if (SPAWN_SERVER) {
  110. Server server = new Server(HOST, PORT, MinecraftProtocol.class,
  111. new TcpSessionFactory(PROXY));
  112. server.setGlobalFlag(MinecraftConstants.AUTH_PROXY_KEY,
  113. Proxy.NO_PROXY);
  114. server.setGlobalFlag(MinecraftConstants.VERIFY_USERS_KEY, false);
  115. server.setGlobalFlag(MinecraftConstants.SERVER_INFO_BUILDER_KEY,
  116. new ServerInfoBuilder() {
  117. @Override
  118. public ServerStatusInfo buildInfo(Session session) {
  119. return new ServerStatusInfo(
  120. new VersionInfo(
  121. MinecraftConstants.GAME_VERSION,
  122. MinecraftConstants.PROTOCOL_VERSION),
  123. new PlayerInfo(20, 0, new GameProfile[0]),
  124. new TextMessage(Config.Motd),null);
  125. }
  126. });
  127.  
  128. server.setGlobalFlag(MinecraftConstants.SERVER_LOGIN_HANDLER_KEY,
  129. new ServerLoginHandler() {
  130. @Override
  131. public void loggedIn(Session s) {
  132. GameProfile profile = s.getFlag(MinecraftConstants.PROFILE_KEY);
  133. System.out.println(profile.getName() + " Podlaczyl sie do proxy");
  134. Util.sendMsg(s, "&a" + profile.getName() + " &cPodlaczyl sie do proxy");
  135. if (antiterminated != 0) {
  136. if (users.containsKey(profile.getName())) {
  137. gracze.add(s);
  138. for (Session sesja : gracze) {
  139. Util.sendMsg(sesja, profile.getName() + "&cDolaczyl do serwera proxy");
  140. }
  141. s.send(new ServerJoinGamePacket(0, false,GameMode.SURVIVAL, 0, Difficulty.PEACEFUL,10, WorldType.LARGE_BIOMES, false)); // USTAWIENIA WORLDA
  142. s.send(new ServerPlayerPositionRotationPacket(0,0,0,0,0));
  143. Util.sendTitle(s, Config.TitleLog);
  144. Util.sendSubTitle(s, Config.SubTitleLog);
  145. Util.sendMsgLOGIN(s, Config.Logged);
  146. s.send(new ServerTitlePacket(0, 35, 0));
  147. } else {
  148. Util.sendDisconnect(s, Config.Access);
  149. }
  150. } else {
  151. antiterminated++;
  152. }
  153. }
  154. });
  155. server.setGlobalFlag(
  156. MinecraftConstants.SERVER_COMPRESSION_THRESHOLD, 100);
  157. server.addListener(new ServerAdapter() {
  158. @Override
  159. public void sessionAdded(SessionAddedEvent event) {
  160. event.getSession().addListener(new SessionAdapter() {
  161. @Override
  162. public void packetReceived(PacketReceivedEvent event) {
  163. if (event.getPacket() instanceof ClientChatPacket) {
  164. ClientChatPacket packet = event.getPacket();
  165. GameProfile profile = event
  166. .getSession()
  167. .getFlag(MinecraftConstants.PROFILE_KEY);
  168. String[] vargs = packet.getMessage().split(" ");
  169. vargs[0] = vargs[0].toLowerCase();
  170. try {
  171. Cmd.check(vargs, event.getSession(), args);
  172. } catch (Exception e) {
  173. // TODO Auto-generated catch block
  174. e.printStackTrace();
  175. }
  176. }
  177. if (MacroManager.RECORDING) {
  178. if (!(event.getPacket() instanceof ClientChatPacket)) {
  179. MacroManager.packets.add(event.getPacket());
  180. MacroManager.MacroPackets++;
  181. MacroManager.MacroList++;
  182. if(MacroManager.MacroList == 100){
  183. MacroManager.MacroList = 0;
  184. Util.sendMsgMACRO(event.getSession(), Config.MacroAlready + MacroManager.MacroPackets);
  185. }
  186. } else {
  187. ClientChatPacket p = event.getPacket();
  188. if (!p.getMessage().contains(",macro")) {
  189. MacroManager.packets.add(event.getPacket());
  190. MacroManager.MacroPackets++;
  191. MacroManager.MacroList++;
  192. }
  193. }
  194. }
  195. if(BotManager.MOTHER == true){
  196. if (event.getPacket() instanceof ClientChatPacket) {
  197. ClientChatPacket p = event.getPacket();
  198. if (!p.getMessage().startsWith(",") && !p.getMessage().startsWith("@")) {
  199. Bot.sendPacket(event.getPacket());
  200. }//ClientPlayerInteractEntityPacket
  201. } else if (event.getPacket() instanceof ClientPlayerInteractEntityPacket) {} else if (event.getPacket() instanceof ClientWindowActionPacket) {
  202. ClientWindowActionPacket packet = event.getPacket();
  203. Bot.sendPacket(packet);
  204. } else {
  205. Bot.sendPacket(event.getPacket());
  206. }
  207. }
  208. if (JoinAddon.users.containsKey(event.getSession())) {
  209. if (event.getPacket() instanceof ClientChatPacket) {
  210. ClientChatPacket p = event.getPacket();
  211. if (!p.getMessage().startsWith(",") && !p.getMessage().startsWith("@")) {
  212. JoinAddon.sendPacket(event.getSession(), event.getPacket());
  213. }
  214. }else {
  215. JoinAddon.sendPacket(event.getSession(), event.getPacket());
  216. }
  217. }
  218. }
  219. });
  220. }
  221.  
  222. });
  223. ProxyManager.loadProxies();
  224. server.bind();
  225. }
  226.  
  227. status();
  228. login();
  229. }
  230.  
  231.  
  232. private static void status() {
  233. MinecraftProtocol protocol = new MinecraftProtocol(SubProtocol.STATUS);
  234. Client client = new Client(HOST, PORT, protocol, new TcpSessionFactory(
  235. PROXY));
  236. client.getSession().setFlag(MinecraftConstants.AUTH_PROXY_KEY,
  237. AUTH_PROXY);
  238. client.getSession().setFlag(MinecraftConstants.SERVER_INFO_HANDLER_KEY,
  239. new ServerInfoHandler() {
  240. @Override
  241. public void handle(Session session, ServerStatusInfo info) {
  242. System.out.println("meku-proxy by meku");
  243. }
  244. });
  245.  
  246. client.getSession().setFlag(
  247. MinecraftConstants.SERVER_PING_TIME_HANDLER_KEY,
  248. new ServerPingTimeHandler() {
  249. @Override
  250. public void handle(Session session, long pingTime) {
  251. }
  252. });
  253.  
  254. client.getSession().connect(true);
  255.  
  256. while (client.getSession().isConnected()) {
  257.  
  258. try {
  259. Thread.sleep(5);
  260. } catch (InterruptedException e) {
  261. e.printStackTrace();
  262. }
  263. }
  264. }
  265.  
  266. private static void login() {
  267. MinecraftProtocol protocol = null;
  268. if (VERIFY_USERS) {
  269. try {
  270. protocol = new MinecraftProtocol(USERNAME, PASSWORD, false);
  271. System.out.println("Successfully authenticated user.");
  272. } catch (RequestException e) {
  273. e.printStackTrace();
  274. return;
  275. }
  276. } else {
  277. protocol = new MinecraftProtocol(USERNAME);
  278. }
  279. Client client = new Client(HOST, PORT, protocol, new TcpSessionFactory(
  280. PROXY));
  281. client.getSession().setFlag(MinecraftConstants.AUTH_PROXY_KEY,
  282. AUTH_PROXY);
  283. client.getSession().addListener(new SessionAdapter() {
  284. public void packetReceived(PacketReceivedEvent event) {
  285.  
  286. }
  287.  
  288. @Override
  289. public void disconnected(DisconnectedEvent event) {
  290. gracze.remove(event.getSession());
  291. ProxyServer.logins.remove(event.getSession());
  292. if (event.getCause() != null) {
  293. event.getCause().printStackTrace();
  294. }
  295. }
  296. });
  297.  
  298. client.getSession().connect();
  299. }
  300.  
  301. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement