// ==UserScript==
// @name 4uUnion
// @version 4.9.6
// @description Look at the description down there...
// @author KeineAhnung4u
// @license GPL-3.0-or-later
// @run-at document-end
// @match http*://*.craftnite.io/*
// @icon hdata:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxITEhUSEhIVFRUXFRAVFRUVFRUVEBYVFRUWFhUVFRUYHSggGBolHRUVITEhJSkrLi4uFx8zODMtNygtLisBCgoKDg0OGhAQGi0dHR0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLf/AABEIAMgAyAMBEQACEQEDEQH/xAAcAAACAgMBAQAAAAAAAAAAAAAEBQMGAQIHAAj/xABCEAABAwIEAwUFBAcHBQEAAAABAAIDBBEFEiExBkFRE2FxgZEHIjKhsUJSwdEUIzNicuHwQ3OCkqKy8SQ0RFPCFf/EABsBAAIDAQEBAAAAAAAAAAAAAAIDAQQFAAYH/8QALxEAAgEDBAECBgIBBQEAAAAAAAEDAgQRBRITITEjQQYUIjIzURVCYRZScYGRof/aAAwDAQACEQMRAD8AskjQRYraRlNgTm2NkaAZq4I0AyMlEAzVxUAglQ3mhZANmUEGpKklGj5wELCBZ8RY0XJsg3JHbG/Asm4jjB+MeqhzpBKGt+wJWcUxAWBJPclu6pGK0kYpdxVbVrSfOyB3f6GLT8/cwap4pldoA1vqXeqr1XVT8D6bChC2bFZXbvKTVNUx9NrRT7ED6hx3JKXnI7A/4exa36tx3tlJ+l1pWU/9DMvbTP1lwpJPdWsjzsy7JmokJYVGEaE1EhciOIUSJMojjCE43ClAst4WSeryRyx3UkZBCpQLI3I0LZDIVILBnSBRgErnEWMGnGYC9+SrzS7EOhi5KtpU6jjCV2wAVJ3b9i8rFLyxbNjUzvtlKdzUx9NpQgSSped3OPiUtytjVEl4RCSh3NhqnB5QEYXEYMqDjC448uJMg2N1KeHkFrPRd8AxUSNt9oWv+a3IJ96PO3tnseSyQFXEY0iwFhOQg0e5ESjVEiTKkg2AUEMnij5lSkA2WmyyD1hhSgWDVMfMI0C2BuKJC2QynRSCxbUvshYJTON5czB4qjefaXrH8hS1lmyzIU4OMlQTk9ZSQesoyFgMpMJnl/ZQyPP7rHH6BDuRzpY9pPZ3icgBFI9oP37M/wB1kDnop8kKOpjKb2V1kcMk0z4WCNjnlufM8gC9gGi10v5uhvCGcVZQ1aQlnlzIJ6OqdG4OamxSuhi5YlIsM6HhNc2RoLT+YW3BNk8peW7jY4EmivJmfgwEaIZlEQZXHBMMXMrhVVRIpAyWayyD1xrZSQzDgiAYHU0/MKcggUg0RAiusGhQslFE4v8AhHiqN59pdsl6jFXDHD8tdOKeHKHFrnXcbNs3fXzWTVVtWTYSydAofYpMT+tq429Qxrnu9dAku4SDUZYKP2L0bf2s80nUNDWD6FC5mFxDyj9mmFR/+Nn75JHu+QIQctQXEP6TAKSL9nSwMPURNv6kFDuZKpDn32B06cvRQ6mEqSCYaKpMx0aFWOwOkpZ42i7nxStaOriw2CVC8MNo4ZSezbEZP7EM/je1q2VeRlBw1lcxjD3U80kDyC6Nxa4tN23HQpyq39inTjyAKTixcHzkPcL6WBstKyfZl6lSuMusTrraTPMVLAW1NQlm9kQITDDzKkVXWT2XC85MWXHD6Ke51WVg9eT2XHHlILNVIDFtdBa5GyIEQ1rt1BxR+LGFwAaCdeQJVC8f0l+yX1sd+xXDJm4g2R0UgZ2UoLy0hgJGmpWNM1g2okd2vZUixg2upJRgldkLJ4uUZBZ66hs4inGirSjIwUhVywsESXkZg+dvaFGRiNVf/wBrj6gH8V6Gz/FSYs/5CuKyLHHDDrSH+H8Vesn9Zn6gvTL3SnRbqPLyIOYmorVBkEXMqRFVROpFs8uIPLjhhmWfg9VyE8NXbRyjB3IE5+huuwRvNcy7AO41l2sVJJWcXhteyg4N9nDAZ33APuaXANjm3F+awtXf0Gxpq+k6NmJ3WMmzc8HjtfkNzyA6lEqW30Q5KV5A5cXp2/FMy/TMFZVhNWs4KX8jbZxuC2m4uquMdF1PPg2UHCTifG305Y1jWkuBNzfSxtsFr2NlHc53exi6nqVdtjZ7gvC+MSVFR2coaWlrjYC2o2Vu80yCOMo2eqTyybai6PgYGus0bFZFUEfGzcpmkyVISLzj8m4vBxLjWhMmI1g2dmzN7xZeit5dkVJlzRb5GU17C02IsVazkqvoacOH9b5K5Z/kKN6vTL7R7LfTPLSjeji5lNRRkYYjK7PLgTxXBJZIZZeQXBqkZFpVE9E0aFckAzMcxb4KcEZDYZw7ZDgJM3eoaGIV4gwHdAEZ4AYW1Mgt9j/6Cw9X+02tNR0OjF3gLLg+82ZvsJMdP/TTf3cn0WxAlyUmFe546jkDV6Cp07WeSpVW9efJ041kUbRnljZo3Rz2tO3eV4ev7mfR7dPagOp4soI/iq479G3efkhH8Mj/AKiitljxIh9JICyK7HueC3Um4IB3BC09Pv4rXdyHntX0qWV04QVgeFOpZO2c4PsCMo0353XahrCcX2g6foUkUudw7kx15BAaBcEbn81gVan14PQqyw/JUzXP6jyCyXL2bihWDnvEcd6yWTm61+82tdbEUrcSM6SFKRlJx79s71Wtb90GRP1Wb8PO/WjvC0bP7zOvV6Z0TDWXW9Szykw7hYnJmfUTZUWRbpNJHWUo5UAz5LqQ0sGq4keSLOTPSVogcjRXaNHBEBgw0kG4U4JTwFNqxzUNHcmASufuk1IYpTHClSWTSEAH3ANfG687rL46D0uirkyW6hr35xqOewsvOQ3km83poaBk6dzhZxuDuORHQq385J+yq7eNmlPTsaQAxoHgnc8j8sV8tFQ/BwCuaDK8n78n+5A6maqSwRhqDIxI6J7Kp2MjnD3tbd8dsxAv7veoqeRE9OS2VONU7hlbMwu5NBuT4JFw/SOhoefAA+vYOqyizw9igvXYLSbKXj7r1Ug7mH/SFrwLMSZnSP1GUniNtpj3gLXtPsMi7X1mmAftm+a0rfqszLz8R0ygIsFtKo8pKssbU7k1MQ4jE1XyCYmJdIPmumJgtGVOQTKI4t01OD3LKTPT1IAnpCO9MTENAzmo0wGiNwRoVUDVB0U4E1AUk5AsUutExsm4fqAJHbm7eS8p8Q/Yj2nw73ksFPiYDgQ2/nb8F5VVYPUuDJLV8QPaxxa1twCddRcbaKVL2A7NFXn43rCdHMaP3WC/qSr/ACMWoKEVh0dySRckknxO6ncxyoRqWgclGScEkFrW/r+tFDZDoyNcDsJh4FImqzRgOijBYi5Z41I0Lh1RElMx/wD7tx6tZ8hZa9p3EjNkXqVFa4loiT2o291p7lp2dXsZd4vcXYJpM3zWlA/rMm7/ABnQKWqytF1spmFKkStrS7RNpqKkqJWyFNVRWdITE+6YmJaCWsJ2RZB2tk0dK48vVRyEqKsttlmHpWYIRpi2gaeAFMTF1IBnojyKNMq1C6eM8wjyLYoqwofYC6I8Gnax7sxA0FrnxXldfWaEe3+GvcaDFoup8gvHcNZ6/JHUYtG5pa25JBHSyJQtdkiUUJ6/JWeVHYNTSDmSp5QMEjKNveULlZKCoKVg5BA5QkgqCMB2gA8EqqrIWAkkpLRGCIqSStY9GXVTWt3cGAeJutqxWY0jJvrhQU1Sjubg1sjcr5ja4PugX07ySvTRaR3ncfPLz4p5PEf/ANJKPgijjIOV7j1c829BZX1ZRoxptcuJFhPH/Q1bhFO3aFt/M/irCRR+dnr/ALE0cTRs1vk0LmsEbm32ynVVVnmL+RJt4JMNXZuRRYj2jahpy7dW+U75csFHSNbyXcmQlDgPDULqGKjAbdVzQZghShbI3BGmA0RPajF1xglVECNVO4U4yuV9LzCHkA4xCfjN+i87rXdKPYfDzSyeA/45rziTZ6t1Y7L/AMH8B9oBNVgtbu2O9j4uWlDZZX1mVealj7P/AEf1ns+p3fA+RnQZswHrquem0ewlaxX79iiq9m8gF45w49HCx9bpdWmv2HLWF70lbxbAZaZwbK6IE3taQagW1sdRuq702UtrUoAF5LBcj8lX+Tqbwd/I0/0NG1RuLKytGmM64+IIov7G/wCkuV6HREvvZjTfFdWfoQupcUkke1gBJcQBY+pPcp/iaSx/qCqNb60WKHBGCVkpJLmH3eQ7r9f5rXs9MUXueS1P4kkuqKqEsZGwctjJ5UwXBcdg0L1KJwLsdrhHEdbF3uDzSZpC9YwuST/gp5ksq6Z6GlFnwie4CZSxq7LLTBORDC2hGA0ACud4ouIjmJGYj1C7iI5Tf9OYu2Echt24tuowTvyC1MwsdVDCp7EVXISSGi56BJZEslFC+oSz0M5NxE/0Sbm25qCYNSjhaxUO+BaCoNZH20WVouQ61tRytzv+Cyf47i+s9Dbaz836aqOxdqVwRkTI0cIuKeIXQhkMDC+ol0jA2FviJ8AbrskMoLcKmMsr6phfIbAlzTYHW4b3DRSmA1kWYxhzWMzxi2X4hyLTufL80ynBGXGgOHUXHcrdHZ5a7fqdhGQ9ENRTT7IuEKHV0zhtdrfxPpp5qYe2N1KfCVC/7LMZAN7K4YyWSF9U0c0O7AxQmhrW967kJUBG6tQuUNQFV4lxLtJQzQBg2G1zuVUll7N2yg44937FwkXJj9o94dqbXaet06hjKC40dQOqsJnNDAVLUxAYFIVjJQNXhdkjIPI9cSgeaZBUMBJqwgJTGRZJuHn53PceQaPW/wCSHBQ1J+B21ylGOF4fijIZWPka4t1bdtjlcfhJBOyq3ng3dBmoikeffwW2DHad9rSAE8nAtPzWZg9fkYNcDqFIWSpxt7TFr7iCB5Hi7RQRksVLK73rgHU2sTt11CggjqqSGRru0hB0d8bWi9wdi03RJnVdnJaKnaDIWCzc7mtGpADeQv4q/Eujy+rdTBAZc26rqsLyZqTq6QZS4dI1jWNYRa/Le5JukfyFrF1uLz0i7ne7aSnBJnbgDxI18LKtLqsPsy5F8OXb804JBw8/m9o8Ln62VR61T+i9D8Lyv73glZw8Och8mj8SkPXG/wCpdXwtR/vMy4NDGC9xcQ0E6kcvAJP8rKy0vhyBHKMQBEriftEuHgTcBasM3LRuKF3b8VewjjeraZRdIfRzEOaR1AT42Cui8UBJA8laRI4iamIHABh9NJlGYap/2mfjcTzU7rbIHUMUYrqswF7fNC6uhiiK66tc5Z7vC+tP/wAmJWvO1nDuOvohd4NVlWPuGsMkdDmDmguJJYTZw1tr6KtNqVEYiXQpLj6hv/8AiS/fHqfyVf8AmqED/pacy7ApSC0yNsRY6qHrUbCp+GJ6WmiFjHA9m8XeNCWg5XW2OvNdDexymzXZSRJbidkj2G7XFp7irDYGAbBsdkpa4vmeXRTgNc524ttr+6T812ATrMUYyjTcXUYDSyV/i/GoqeItJvI7RjB8Vyhx2BLUollnNqSItjDTvqT4ndadPR4i5n5pqqxvw/QF7s9tG/VYmr3OI+Ne56b4es8ycj9iyR0rl5rJ7pSJexP+jd65s7lPGn70DIchkQNUpAuor/GcobD2bfikv4hrT+dkxHLs5hjdMcof93fz/wCFs2U2OjO1KDNG/wDQojctdPJ5ipYD6CMue0DqE+IUX7D4XaaK4jh5BA6yYiGRUNeHCx0suUyr8FNdHqmtaLhRuHUlfxmovGcp/oqG+h9Hkq0LlhPybi8EzXa3XBIuHs5wSOoNQ6W7hH2bWkOLDmcSTqDvYIHSn5DVTR0Gm4fjjtlfJbo52YfS/wA1Vmso5AvnZF/kxX0YjifI118jXOtY3Nhewslfxn+R/wA4zmMPHrn6SwtF/tR5g8eLXfmm29tHELrn3BkeMwSfC+x6OBB+a0KWVahPj9RmdkFi0ZSLjY87JiFMKoccrG2EdVIA0WDT7wtyGvLf1RLDKNxf8Bs1j3vdLK4vkduSdAOg6KyoTBvtQcxMByG/JE/pRm0U7nj9l6wrDeyjDee57yd1429l5JHUfTtLh+Xt6aQ4RKpxmjkz2a7YduMGILtp24wI12DslC4qmEkxI2YMg8t/ndMSHUFbmhBBadiE2npkVrKZT+yLXuad2uI9F6KCrKPHXFOGWDhmC7yei0I6SqdBw1uisogcR7I0AU+OVrtWm6wcyRhywxyeAPEM290znZ3FgWz1lgQ7pZWYpvTCppK9itSWtYWndxuOXmqbRrVeA6mnc5oL7X7tAhDpZ1r2VU9qJz7fHPIR/CyzR+KlBF1REGhCg4DxLBKaf9tAx55usA8/4hqowcU/EPZjTuv2Er4juGuHaM8AdCPmiQLZzbivhyqpZQDIw6EAsedbW3BAI3U5IwKY5qxuxPlqiVTKlxbxy/fSXyCZth77SbarUysHkbi2dL6Q94Wou0mzcma/4j8P0KydQuMRf8mtoFpyy73/AFLsQvMHvEargzK5kHihJBcRqOzie/o028ToPmpSJRz2UXvfmiRYpF72IiSv8Q0lniUbO0PiP6+S2NOeejz2r2+PU/Y24f8AdjuRz3XoqKTzzeCw4bjEd7G48U9RinLgbUuLROdlDkW0DlKZhrHtbqV5Wa9jkNWGzaAsZrCLC6bB6iFyrAhfMS5gOounYwHAssknbeUdGjQclBfayWzgvh5lb2wkc9rY+zBMbsrru+ze3RVLifi6LMMOUddwTD46eCOCK+RgNrm51NySUyCvKAa7GKeCaLjmbFQRk0P5rjjinHVTmqbfdaP9VyuyShKwd6FskIi7wChyyHTS/YZ4Vj0sBLYnljSblps5hPXKUE0XITClF9haKLjw7SxNP7zHAH/KVSmsf9haVwx9QcRU0psJQ0/df7p8uRVT5aRFnnoG46g3HUJW1oPOTDihCRW+L6rRsQOpOZ3lt+K4OkrKkcDVDF2ThZiMAc0tPcQen9Baen/kRn6n+ELioHFga1erpPHSoXmhkjJBV5FGRmsMhDrg6rsAewVS1Ic24XzKaFo9sJcccC8WXotM/GZl4gJjAHA+KtSoVavvsHqarJmcN3OsPIAXS0Xjrvsio+zoO0O88j5T3tHus+ix9Qq9Q0bYsHE8dW6C1HJkla5rwNLvDb3YCdib+aVb3OGMnp6KjR+1p8NmV0OY3ykx2bICNyYzofJbSqRnl8wHiWkqwDDO0k/Yd7kg8WlTkgcvC4jAJXS5Y3kdD89FK7OOEY3KJKmV3LNlHlohIyC3UBo3Y4lcSStI5qMnGsm11Jxp+kEdD46riCaHiiWn1Y9zdtASW+YKh26kIU7oHuH+1ciwmjD+rgMr/TW6pTaaPV4en4upqiUuzlhcWhocO6wFwq8tnXGXIbyN9HsRqzG3MADqBY9/elQwclZamm46BdQY82aUw5DcX94G7bDc9ybNZ8VG8RDe8lezATVytDmA6Hf6K/pK81FHWZsUpBsdWGtvuvQpnl5pUJKisc5xJWgig+yJp1upINaKmcwW3XzWabee0MnDHEk7p0F5xATQ5PPwkAXd6LThvOUz+HjEtVhTCb689laIU/eC24ZxrUwQxwRshyRtDW5mm9hz0OpWJPFmTs9FAvTyG03H9W46sg8gfzSeJLwP2kVVxC97+2dTUplsB2joc7rDYG5+e6JVP9guCMrlRMZpHSvtnc4u90ZQ0/uAfD/NbFL6Mx+Sx4JxhW09m9p2sf3JfePk/cIwCx1ftIpOytM18Trt2bnZvfQj8UygBnPKg0uZz4a5jgXOcWyMdG+53ANrOXNA5B43tcLtcCO5LaDyl5JGOsoDM57qDjxciIIZXBSC2KcQaXPjYNyWgeLiAjTwB7l5dwPRncyjwcD9Qp5A+I0h4EjZIx8c9w05ix7bA22AKrz9xkwRYkMcVxlmRrtPid3aaKrZw1xt7y9eTciwI+CW3klffYWt1zGybqH4qUK0/phNXIXznoNPTdWdP6iM3WHySDClk1WsmedlCTRB/vbK5zIr5IJ8Py67+CjmOyewstcbkr59NFg9qnkNqqkNNiuhhyTkDfUNdorcKcQmbGBdU0luau/N9GcovUFr3Ko/J6i2/GS0TtfIlIlLSQwOyrKrsMX2yrYglyjKuIeMmjeSrRTFPEZ+AdRm+abEhMjE6a0LTOh+yvCxIJC9oLC5oNwDo3ffySJ5VFBVUVZIncXdFC9vJdcU4HpZPeizQO/cN478/dI08ivPxXtef2ej4MIq2J8F1kJLg0TMH2oz73iWLUhuqGIqiK3NIM2UgtPMHQjyVncmKdOCGYAC4UoWDYJB2tdG3kHZj4NF0Qv+51EFCWcmVLBybdi1wIc1rgeThdLbwR5I46ClhY5wgY0fE4s90k+KjHINVXEVSogptTC+Twe0H/WLfRWo6cIz7j1TSnnaCrNOTCmWwYUtZmNt1aceCmw0tCHBAgwKdltTbUryd3Cz2UdSYLxFWtJDWlWbOH9la7f6FFFO7ONVdmSwVkx7VOsFkOUuoUwUr3i4Gl7IXJg27PuMJp4HMN3CwsQgl7LaQT27eqr7AgWqGvitS0p6M6+fg1jJCvmeI8VmLpDfloPBPjK8o54WweKZjnStzWdYakW67eXom7cmNqFzLC1xnReFJ6KjiMfaNYS65Gp8tAsLV/yca9jf0f6o/mH22OjxdQtvmnbYc7Ot9FlwxM2iI+0DDh/bn/I5PUVS8AunIBi/EmE1APat7TQ69k7MPB24KLMiAcOSiY1T0A96lmm/u5WXFu599La7q7BPX/cS7Mq2SZknaMJaeRabEX71e5qSlwSZLhhmMV7GjtoO2aQDcWDiOXilueL9jVDJ+iyYfiIkF3MfEebXixB/Ed6jni/YfBJ+hpHsi3UCMPIDxDMBA4Hc2ATYkBKymlWkV0CQSX1V2DBjT9sc4bGQ4OOybKUWNnz9AkUr9gV1IolK33hckDnZVZoTbTGzqOl3LxfxWZySZwMp2+4NJLTtOVhHilTOQYlQZmdpZUsFrwT4KLtPikzrBt2PcYRXs9wpUTLooCs4IJ5zdw7gFo2yxSZF3Vmo1e62qtIpsrc7ruJ6lPoE1DnCJXMaCDYk3VhMy7lbiy1cOeLtObbE945lUb+35Y+QboNzwy8T8MWltxZYFHTPZsVPiIJCtUPIGCencbWKXIiUTPbcWQokCcbaJ9LF4LLwtV5mGMnVtyP4ef8AXekyofGx2qo1m7ZXDYptOWKcKKtxFxJI5xiLGlrHaHUE+NlvWi+gwLt4k2il2JZgRktcW3/ktFRmdXKSUg5o0jOlZYqCuHwnUImmVcDdkjALggpeytnbqaSsT4I0Ovcrzn8w2bvAIMUwx7XEjUKxDeKQNLYB4c39YFYn/HkJdjDiS4y2PJVLPGR8iC+DJCWyA8i36KvqNP19Gtp32Me1bfcd4XWdCnkvOpCHMFf2gOtGpJJutCFYpMid5rNql3uOPcU+kr1Fcun0oRUxtFLYAdLJyM+pZY6oMTAY4HmLIn2sFGuFqRVI9HKHC4XmZ4eOQ9zYzckW7/0hqWc0MTLRAwWRVkYJsyUSwWsjubhNjAM4dUPikbIGnQ66bjmFFSyHSXjtAdRsQCPNVWhqZpPMGtLjsBcpkSyyG+il5WvkPfzXqYIsRnjL2b1Gwp+HhpsjUpQkqZpHGQbK2kKbyiWQFuoU4BSyeiqXA7oqSKo0wiGZxOYlfPXSj0zZBiM7ToTZWreLsXVgT0FI7tM/Jas0/p7ArTz2M+IWsksG77KtZ5NSXjAIocos0keC0HTkQqseCCbN94pPAvYRLMzYu93dV+N7yVO8BcD9FbxhEKrcyDF5SI9OZTYkDIJo1YKrQYyRv3h6ohToJ4pB94eq7Ih0v9EpkFr5h6pM8PJQX7KVxyY9n5PNJvdYz6PQpjOMgi6TUMQPVs5hRSdUQxyEG6YCho03SqhiDaScgW6beHRKbCN8aq8sQHNxA8QNSrtlDvkKF9NxxgOFUbSbr0crwjxtXb7LB+hMNr6qmq2Fxr3F8sbA4tsrCdYv0wGRozgcrq53sK7CZ4Y7JKkrJz9IG9/ReKwekAZqEvNynRzbAdgdT0Ry5Rug5/U3BJYAW4W9hI1PiteG7jwSEDDDzdZc7kNVENThgtq4Jkdzn2FSCivp8thcHTkj3JsSCxVpj7x0UliNm+IVzHhtj4g7psfRMnYvlmFk3IKpBsy7AeDW6NIJIyi9sE9IsmHTFzATvssSeHjZowTbxlSv5KnWW0EvZcWQ0sloAc2xsnIEPoJLix3H0SZQkGM0VfPYRHUNEslj9nT81tW3pmFqb3/QNMOpADaytyTZMbhwhqIUKkwBVFkgqMMa7U7o6bhiarcUy0bWutfUKxTNUJqhx7mRTA81PMBxf5P/2Q==
// @grant none
// @namespace https://greasyfork.org/users/1266137
// ==/UserScript==
let espGeometry, espMaterial
{
if (!window.temmMods) {
window.temmMods = [];
playGame = new Proxy(playGame, {
apply: (tar, that, args) => {
window.dispatchEvent(new Event("temm.playGame"))
return tar.apply(that, args);
}
});
G.Game.prototype.postLoad = new Proxy(G.Game.prototype.postLoad, {
apply: (tar, that, args) => {
let val = tar.apply(that, args);
window.dispatchEvent(new Event("temm.loadFinish"))
G.socket.addEventListener("connect", () => {
window.dispatchEvent(new Event("temm.connected"))
})
let onMsg = (m) => {
if (new DataView(m.data).getUint8(0) == G.a823.a174) {
G.socket.removeEventListener("message", onMsg);
setTimeout(() => {
let c = new a201;
let mods = window.temmMods.filter(m => m.announce).map(m => m.name).join(", ");
c.msg = "[4uArmy+Union " + mods + " Hi peoples This scribt is made by KeineAhnung4u. Free download on Greasy Fork! Name: 4uUnion]"
G.socket.send(c.a614());
window.dispatchEvent(new Event("temm.joined"))
}, 500)
}
}
G.socket.addEventListener("message", onMsg)
return val;
}
})
}
window.temmMods.push({ "name": "= 4uUnion", "announce": true })
function htmlToElement(html) {
var template = document.createElement('template');
template.innerHTML = html.trim();
return template.content.firstChild;
}
let elem = document.createElement("input");
elem.style.height = "50px";
elem.style.width = "100%"
elem.style.background = "white"
elem.style.borderRadius = "2px"
elem.style.border = "0px"
elem.style.textAlign = "center"
elem.style.fontSize = "15px"
elem.style.fontFamily = "Madera"
elem.placeholder = "Type ffa+ a number from 1 to 11"
document.getElementById("middlewrap").appendChild(elem)
// Set Server
let officialServer = true;
requestServerName = new Proxy(requestServerName, {
apply: tar => {
let v = elem.value.trim();
if (v != "") {
let addr;
if (v.includes(".")) {
addr = v;
officialServer = !v.endsWith(craftnite.io)
} else {
addr = v + ".craftnite.io"
}
Object.defineProperty(G, "gameServerAddress", {
value: addr,
writable: false
})
}
tar();
}
})
let first = true;
window.addEventListener("temm.playGame", () => {
a234.prototype.a614 = new Proxy(a234.prototype.a614, {
apply: function (target, that, args) {
let res = target.apply(that, args);
let { i: cx, e: cy, o: cz, v: locs, u: ids } = that;
if (new Set(cx).size != 1 || new Set(cy).size != 1 || new Set(cz).size != 1) {
console.log("Multi-place crosses chunk borders... skipping.");
return res;
}
console.log(JSON.stringify({ cx, cy, cz, locs, ids }));
// Set changed blocks in chunks
let chunks = new Set();
for (let i = 0; i < that.i.length; i++) {
try {
chunks.add(GAME.a865.a643s[cx[i]][cy[i]][cz[i]]);
GAME.a865.a643s[cx[i]][cy[i]][cz[i]].volume[locs[i]] = ids[i];
} catch (e) {
return res;
}
}
let compressed = []
for (let chunk of chunks) {
compressed.push(compressChunk(chunk.volume));
}
// Write to Packet buffer
let chunkByteTotal = compressed.reduce((acc, curr) => {
return acc + 4 * 4 + 4 * curr.blockTypes.length;
}, 0)
let buf = new ArrayBuffer(1 + chunkByteTotal);
let view = new DataView(buf);
let idx = 0;
view.setUint8(idx++, G.a823.a120); // Packet ID
for (let i in compressed) {
// Write Chunk Coordinates
view.setUint32(idx, cx[i], true);
idx += 4;
view.setUint32(idx, cy[i], true);
idx += 4;
view.setUint32(idx, cz[i], true);
idx += 4;
view.setUint32(idx, compressed[i].blockTypes.length, true);
idx += 4;
for (let j in compressed[i].blockTypes) {
view.setUint16(idx, compressed[i].blockTypes[j], true);
idx += 2;
view.setUint16(idx, compressed[i].blockAmounts[j], true); // Block Amount
idx += 2;
}
}
console.log("Finished writing " + compressed.length + " chunks at " + idx + "/" + buf.byteLength, cx, cy, cz);
GAME.firstChunkWorker.postMessage({
ao: G.a813.ao,
buffer: view,
first: true
});
return res;
}
})
if (first) {
first = false;
// Draw current Server
document.getElementById("gameContainer").appendChild(htmlToElement('<canvas id="temm-utils" style="background-color: rgba(0, 0, 0, 0); z-index: 11;"></canvas>'))
let cvs = document.getElementById("temm-utils");
cvs.width = window.innerWidth;
cvs.height = window.innerHeight;
let ctx = cvs.getContext("2d");
ctx.fillStyle = "#02149c";
ctx.font = "25px Madera"
if (!officialServer) {
ctx.fillText("Server: " + G.gameServerAddress, 270, cvs.height - 36);
} else {
let server = G.gameServerAddress.split(".")[0];
let w = ctx.measureText("Server: " + server).width;
ctx.fillText("Server: " + server, 270, cvs.height - 36);
ctx.font = "13px Madera"
ctx.fillText(".craftnite.io", 270 + w, cvs.height - 36);
ctx.font = "25px Madera"
ctx.fillText("thx by ka4u", 1350 + w, cvs.height - 36);
}
// No Water/NAN spawn
G.a822er.prototype.respawned = new Proxy(G.a822er.prototype.respawned, {
apply: (tar, that, args) => {
if (isNaN(args[0])) {
console.log("[Temm-Utils] Protected you from spawning in the water!")
setTimeout(() => G.socket.send((new a192).a614()), 2000)
}
return tar.apply(that, args);
}
})
}
})
function compressChunk(blocks) {
let blockAmounts = [];
let blockTypes = [];
for (let i = 0; i < blocks.length; i++) {
if (blockAmounts.length === 0 || blockTypes[blockAmounts.length - 1] !== blocks[i]) {
blockTypes.push(blocks[i]);
blockAmounts.push(1);
} else {
blockAmounts[blockAmounts.length - 1]++;
}
}
return {
blockTypes,
blockAmounts
};
}
}
(function() {
'use strict';
console.log('IPBLOCK ====>> Listening for requests...');
// Lista de URLs de API conhecidas para capturar o IP
const blockedApiUrls = [
'https://api.ipify.org',
'https://api.ipify.org?format=json',
'https://ipinfo.io',
'https://api.ipapi.com',
'https://www.iplocation.net',
'https://api.iplocation.net',
'https://website-cdn.ipinfo.io',
'https://p.typekit.net',
'https://use.typekit.net',
'https://pagead2.googlesyndication.com',
'https://data-jsext.com',
'https:main.exoclick.com',
'https:main.exdynsrv.com',
'https:main.exosrv.com',
'https://geolocation.onetrust.com',
'https://cdn.cookielaw.org',
'http://axeocy.com',
'https://chikzzz.com',
'https://themeetpartners.life',
'https://api.ip-api.com',
'https://ipapi.co',
'https://geo.ipify.org',
'https://extreme-ip-lookup.com',
'https://freeipapi.com',
'https://application/vnd.maxmind.com',
'https://freegeoip.io',
'ipbase.com',
'https://api.ip2location.com',
'https://ipstack.com',
'https://ipstack1.p.rapidapi.com',
'https://app.fusebox.fm',
'https://api.usercentrics.eu',
'https://maps.googleapis.com',
'https://www.expressvpn.com',
'https://graphql.usercentrics.eu',
'https://ipaddress',
'https://tls.browserleaks.com',
'https://rf.revolvermaps.com',
'whoisxmlapi.com',
'maxmind.com',
'ip-api',
'/cookie',
'/location',
'/ip',
'/ips',
'/api/hostname',
'/api/whois',
'https://[',
'geoip',
'geoip2',
'ipaddress'
// Adicione mais URLs de API que deseja bloquear, se necessário
];
let listBlock1 = "list of blocked ==> ";
let listBlock2 = "list of blocked --> ";
var verifyc1 = false;
// Intercepta as solicitações AJAX feitas pelo website
const open = XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype.open = function(method, url) {
// Verifica se a URL da solicitação corresponde a uma URL de API bloqueada
console.log('====>>', url);
if (blockedApiUrls.some(apiUrl => url.startsWith(apiUrl))) {
verifyc1 = true;
listBlock1 += url+" ~ ";
console.log(`Solicitação de API bloqueada: ${url}`);
return; // Interrompe a execução da solicitação
}
for (var i = 0; i < blockedApiUrls.length; i++) {
var palavra = blockedApiUrls[i];
if (url.includes(palavra)) {
console.log(`~ Block: ${palavra}`);
listBlock1 += palavra+" ~ ";
verifyc1 = true;
return;
}
}
// Continua com a execução normal da solicitação
open.apply(this, arguments);
};
let bloquearFetch = true;
let verifyc2 = false;
function interceptarFetch(url, options) {
console.log('---->>', url);
for (var i = 0; i < blockedApiUrls.length; i++) {
var palavra = blockedApiUrls[i];
if (url.includes(palavra)) {
console.log(`~ Block: ${palavra}`);
listBlock2 += palavra+" ~ ";
verifyc2 = true;
return Promise.resolve({ status: 200, body: 'A solicitação foi bloqueada.' });
}
}
if (bloquearFetch && correspondeAUrlBloqueada(url)) {
console.log('Solicitação fetch bloqueada:', url);
verifyc2 = true;
listBlock2 += url+" ~ ";
return Promise.resolve({ status: 200, body: 'A solicitação foi bloqueada.' });
} else {
return window.originalFetch.call(this, url, options);
}
}
function correspondeAUrlBloqueada(url) {
for (const urlBloqueada of blockedApiUrls) {
if (url.startsWith(urlBloqueada)) {
return true;
}
for (var i = 0; i < blockedApiUrls.length; i++) {
var palavra = blockedApiUrls[i];
if (url.includes(palavra)) {
console.log(`~ Block: ${palavra}`);
return true;
}
}
}
return false;
}
// Substituir a função fetch globalmente
window.originalFetch = window.fetch;
window.fetch = interceptarFetch;
// Aguarde o evento de carregamento total da página
window.addEventListener('load', function() {
// Após o carregamento total da página, permitir todas as solicitações fetch
bloquearFetch = false;
});
function notificaAlert() {
setTimeout(function(){
if(verifyc1 == true){
alert("~~ 4uBlocked ~~\n\n"+listBlock1);
listBlock1 = "list of 4uBlocked ==> ";
verifyc1 = false;
}
else if(verifyc2 == true){
alert("~~ 4uBlocked Fetch ~~\n\n"+listBlock2);
listBlock2 = "list of 4uBlocked --> ";
verifyc2 = false;
}
else{
console.log('IPBLOCK ====>> No API requests for IP identified.');
}
},1000);
}
window.addEventListener('load', notificaAlert);
})();