diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/skin/SkinData.java b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/skin/SkinData.java index 88dde15c3..f803154ce 100644 --- a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/skin/SkinData.java +++ b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/skin/SkinData.java @@ -69,6 +69,16 @@ public class SkinData public final static SkinData SLENDERMAN = new SkinData("eyJ0aW1lc3RhbXAiOjE0OTA0NzUyNzk4NTUsInByb2ZpbGVJZCI6IjlmY2FlZDhiMTRiNTRmN2ZhNjRjYjYwNDBlNzA1MjcyIiwicHJvZmlsZU5hbWUiOiJMQ2FzdHIxIiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS9hMWNkOTI5OTFmYTRjZGQ2MGVlZDNhZTM3ZmI5NWRmZjFkNWNkOGNiZmYwYWFjMzE4MmQ0ODU2NDU5NTIzYyJ9fX0=", "OVqWFLCekyZcdGli6kPBKNh8/VYPhKZGNqlAvSOKc3RLgh4pIkI6TDPr/Y+VQdhz1wZozARFYSeoDJJJ4nZTi7gi3rVPG2rL1ZnKo7so5hdT8caEzSTRmgwPKzo03ZhEEsW9AEJo9mpiUxGSJdBlgEb9UgodpYFW1IjRC09CcBUqzRWP8QGZTSFSN5x9emQ97DyiFmt0NFWubHCKHdb7CExhchPRtbahL3hOEzPY8/Y+Irl9OZjx7jONE7O/sYItCuZoXc3FaTgCV0riiXHCgH2eA54s5TQVWumtp3FU7VIcKR6pm/o61+GusvqhNgdFNk9XSHWMUyp+HNU0R8sConZQN/eaVx9laJmUUb4zNZ7hX/hLYV+r9LFU1NXOeIZWJPShD+bYfZgEorIpD+EAL4BHht/f5e6a1IZUDBWb001PFibby2t9WWjoDVKz4McbxZ2Xui7EHKFG1K3biPibhWx6fvnOeJ2xW6UDIZcD+TCXwlW/knkFt44Xpyv3oNHk3UNkyrQgghd6qkc3gZHxP8PQCNvKIyK1I+pHR6JMZvSStp7ZQRDpvsvIUyOJvq+7Bs7lFYs8hcJHMzEB+8PYlH2k7P7iLuA6ZYFUmvOW1LLq0+hvxK96ZdNEsJdmMkVVTZBRw7vsZ4GPbkdp2cMOFH2lHcQj80xKqVbd43IqFDA="); public final static SkinData BOB_ROSS = new SkinData("eyJ0aW1lc3RhbXAiOjE0OTU2NjEyOTc2NTcsInByb2ZpbGVJZCI6IjdkYTJhYjNhOTNjYTQ4ZWU4MzA0OGFmYzNiODBlNjhlIiwicHJvZmlsZU5hbWUiOiJHb2xkYXBmZWwiLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzVhNzZhN2NlMzZlZGRiYmZhNWMzMmJhZmVhYmUyNmQ3ZWJlNWRlOTBkNzYyYzJmNWY3OTQ1ZTQ1ODUxOTU2ZDYifX19", "b7pUQSZ1UkMZJNSqdaBPGWfm+rfvFkEh58pBvYTG2RBPwVju1kKinb1LfsyYhFKlyPvL1jfqi30udmb0302QvE0SKg7p3txxULa3Hr94+eCJWFxrOxUNorRT9E+TurJxH6jimu6KW1p6goPn77/kgNaWb9xn3+E84+vH0z9ETjgc5G0aYLT+cSzThUorhvOQ7DRLfRgSWiFxfm3Er0g+waLfDEeNNAd6OJ5k3X+kgM/+V6QTIFofnZZ6NdZZInTARAVol2H0pRfQfAuVYfJyVyvA0uF+ZX+wlMuBTG1MeyWjZgI1iUKmGaQADXsAV796kT+Z+tAXpbRYYYZnxil5jx5P4druiHvaQfV2KK3lbKm2uH9M3SZr5d57C3V24BKRRWGS4C9INzgO8ORIIomes7kp0gECS4MnSMI6hcl0JsXVlaAy88BgmT/PKxM+3q4PCQE1N9fTCuhoil7vVYIU3uBXwFUE7NTAOUdBee+3TtMstIu2WP8rtEZBVpGH9CmomaLTCzPZSdXGY31goOFXSRYMNi8j4ykuBgP0qJqimipWH0rBF1bMdHqMu359h62tTLRKipHWXPxj4N8c/n1CVPYjuXH9X3f1HAU4DnET+v93Vb/uzbx8rXFrz6jLPwAjSlJ8Th3VE+4ey/ZBHWPB+SuHetN+e0r/LYxiqwwlnwI="); + public static final SkinData HATTORI = new SkinData("eyJ0aW1lc3RhbXAiOjE0OTc0NjEyMTczMDgsInByb2ZpbGVJZCI6Ijg1MmE4YWNmNzMzNzQwZDc5OWVjYjA4ZmQ5OTY1MGI1IiwicHJvZmlsZU5hbWUiOiJLaW5nQ3JhenlfIiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS83MjczMTBiMzlhMTIzOWI3ZTI4Y2JjNTkzMWY1MzlkNGVlNmQxOTc3ODhjNWI1YTY3YWY1NDJlYzk0MmZkMyJ9fX0=", "aHfFqPOZmcQkUqFPjVa27h27k5gyvkZMCOyIaIdIZfqVDg/69/hakkDQazvKg/U8KTlYaDSRyOp9ZD5qOUSCPvRtRDMhuX/Tn68KD9BdW5jYKsXo0puOa7IJDKAE47z7YQ8AvfOtxuOAg6S0ihjYEQqRA56UQ+gPbkd+pxpMxvXoLyAx7IEIKWmlkibG/rmaX8J7OEgq8Wi9s6BhtPVNMaLoznzdzOiiYkcza/zEG5zMXnj/hFHHUpWrYff0Oj7/SUB+krLsiMficASzzs/9HZq81V0ketqUhJYX66HL8F5fQniP8kYu9LbNNcVJmtlER03QaEqP/H8udemlVskFkOYLkTmhxfSetL46N+ZVf0Sxp2xYcFOH3djH/Q26IIXtzEqVyUW5Gun/ZJp8B8zYMOXbXSmaALAYPoX9cs91ZilNX/W7zn7b5Kb9kUBGt58eUpKoXjgK7rSvmH0X2JOZGFVji5QKzp/eOQAqMhkBOU8sEm9AT6mfZjjlyIDOZxSX6hjEJXRVVzFFlzTiRPTcAtaHWRnlRFywsDDSgVBGvQMPNMNa6CFeo0ajnhmfHWa4Ga77kpfQ75PzOoJ/j6Z/2sSIHfQFWE6INAGAyypX/x0Fd/AH6SmYfilnX6lhtd7OsDlxS01QGoRLPBh/ol+wY6rHSM1N6Qta0ulpQZLYIms="); + public static final SkinData ANATH = new SkinData("eyJ0aW1lc3RhbXAiOjE0OTc0Njg4NjM4MTYsInByb2ZpbGVJZCI6Ijg1MmE4YWNmNzMzNzQwZDc5OWVjYjA4ZmQ5OTY1MGI1IiwicHJvZmlsZU5hbWUiOiJLaW5nQ3JhenlfIiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS81NGI5NGQ4NzE5ZWFhYjc0YjVhMzhjN2Q5NDliM2FkMmIyYzA0ODIxZGY4OWM1ZDA0YjY5ZjNjZmExYmJhNjUifX19", "IKlnXzQ2k57XyTHge5V2ttnV1AqbRKrV0JktZS4+nLXx+ROM77/HRuf3/bYTqg48SB8npXy+c6nLYTCY1fTZOl3t2puS6BpZMBXuTV//A0OMQ1pJKzDb8vW6CwPYw2Nu6o0QX3J/FeUIaBj16GZAPxXOtSekkeOw9qsdh57GyqSmzODlEA/7CnJWqX2Ani5DACzo6j5rzfsz2qRgOzVlnbVlVzpXicRuYYLxKvT4nMS+B3HpQdsyFKAx8nTO/GmCHDzW97jck6w/VDlW9x+J39tPDEaKPLbDz1YV59yJt6hjNAcnwgbf3KvHSAbGZNLqRegq/Rk20ZI2J5GYT5ipiyf+p8rHfkRTxIsVCMyVecnSKaz59YQ7AleiWVGzYHDETU702UyigAZFHGHQ/0Kj9UyyZ4ew228FQuGo7iGY4dS/PKq40d1v3fq+czwBhcXR+Msi1Zqg/4dTh+QwwwWsIS3CKtOInpJgZ3U/tkn4STB3o+oKBbmBWvpJk8SrA6DVKKJMjHQig+67hXKSbdcRUWAoGc/iuRhRXgILkC99Ot4PHohEbwbEW8MsKxm49OFqzP4zptaUaiQpMK4YCxENhLrI7X+w51tt2XTjroIHu4oLYS4pG16ZnhUmd/RFg8Ar7mBVOv/2lUtOO5aMAv88CpyD+XXNcCQB4G5pv4c0F14="); + public static final SkinData DEVON = new SkinData("eyJ0aW1lc3RhbXAiOjE0OTc0Njk0NDE1MDYsInByb2ZpbGVJZCI6Ijg1MmE4YWNmNzMzNzQwZDc5OWVjYjA4ZmQ5OTY1MGI1IiwicHJvZmlsZU5hbWUiOiJLaW5nQ3JhenlfIiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS85N2FkNjY1MjFmNzNjOWFmYzE4MzliZGExYzE5ZDNkMjg3YjNmMjRmY2EwZTBlMTE1NzhiOTE0ZTNiNWIwZDIifX19", "BNIc7N3SGIXOEUKFe3hrQp4YmniPxkiL5aKAUNkTmYqbygAQlrCCrwJTuK6JrzkWmD5AzMSzMDKkmoMWOikgulhSmDyC88lQz/LQH3co7WldPHaPL6kk27ZirmIIZEm5WKcvWhQ7ChNWQd2KsZuFqxZSdLSQmsbujF9vpuVbhlU4hajsUwbdiOJRZ18fOAFoJYq/g3RlvqC9VtAA/IAAN7jIpXf9Pn5+vjLqN+AdKm27YknCpqMtBfkYaIhMrpTBe2gP+o50TmH0xm0IZPCS+ORYNGwFdCsg6DzEU7a0rtcUdcZgdInc09mS8tMY9eeMAISYYq5MpyliHQ/areGKk0RJEYg7muc9r/N6vBUpxZtZH8BioDj2dNj4JOoH/58cwU3+hv/Woykc9o5NUPyz0nndiOtTUp1SaDXleKyHryoYnIkPyaDPyuA7qTbIKZQHxyAdrRsnknb0PYku6T8RA4kWNK2jlOH+R9D4eiKFcbLRU2Zl6L57lJTZFFI6GUvzDsyD/vBb59gjvXYzRmvguX9CHUc1aLDeUKhV8NFXeaonoYM9VPIUBQRWNdMery9OlBiQvg4VXy1w2yKLvlHRhJZJpDm/IDdsfg27o8+BUOZ0xHF9iXPBDkOiLXXZ02X4IonLcopVNImCMRZJ1dKHwgu9qnFqVTEKH4mwXUz2Zq8="); + public static final SkinData DANA = new SkinData("eyJ0aW1lc3RhbXAiOjE0OTc0NjkyMzgxMDAsInByb2ZpbGVJZCI6Ijg1MmE4YWNmNzMzNzQwZDc5OWVjYjA4ZmQ5OTY1MGI1IiwicHJvZmlsZU5hbWUiOiJLaW5nQ3JhenlfIiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS9hOWRhYTg5OGVkN2E0N2YyOGFkMjVmNjk5Y2Y4MzQyODFmMTVkZTY5OWM1MWVhMTRkOWRlYzVhM2VlNzY1MiJ9fX0=", "KUI3h0MDUNWQ3avjozkw0KnZf1UAMkRHzRKY9yGS/iUh9EMmDbfLcRfBhUvR5Dd6//75Yw2tElBrvPx+VqfJk0LqMACQc71n0lDY1NzqnXbpf6vNGyuhyumjhMSjJTG3BJ8Qtdd1yCsPK2x5ym+cGPS1FevJj4Vcu6rxg9HXZokgfjD11NXEwulFuPIiWHpJlnd8NlBw4a3txlrVwDnaHo7GqYSJeM1uOCrdICdpThSA2N2mOUEmOHvH9rHUhQvkKHipbsQMIxIX4oiXDWeK6P/GtT+Iv0DIeJfQdDkhDiIG5/zUyxmpC2mma1FQIsFsQOaJfgYZLfcOXGdhwlL/OcZ9ULBIKhgSx7Ozwzsc+JKonqlaBOuaietq5z/XvMClgFG9U2a1LXc5BIgaN/ClsO0uTksuoA8H0SDx9k3EmOjaPdrJOsQ/fgWQSkWN2XniLLFiEtSOEOI58vw6ORVXDgjbP+TqD0b6/d10z0jUzS2FD7AO51LHzTw+BjqoyVef4fszNNSqMi5QEgfBl++EAolZBAMHgN7hq6k52ry2LPlO5L8sm6NoZ4DrLyrx1oFNtXZZgYvNVy7rtEpIDdQczwAZkJFV0fuz8tRH3CkW/roA5HbfX3Fv19mQoteoemrSUrOwLlQsyVPxsFsn8uX94Cw88Q5KgBCGmGY2vpXHuiI="); + public static final SkinData BARDOLF = new SkinData("eyJ0aW1lc3RhbXAiOjE0OTc0NjkxMTE4NjEsInByb2ZpbGVJZCI6Ijg1MmE4YWNmNzMzNzQwZDc5OWVjYjA4ZmQ5OTY1MGI1IiwicHJvZmlsZU5hbWUiOiJLaW5nQ3JhenlfIiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS84MjUxNjZmNzc0ZjcyNmZmMDE3NTQ3OTk0NDc0MGYxNjRmMTZmYmI2M2I3NGI3NmNmNzk0NDMxZGZkNzUyIn19fQ==", "W8TO4M/IQ4rQ91627EaudboKwR8TuKTp5mAYOCyOJLCD0vyyEJmnZFy1Hv9HlXKiXsEm9iC36+cmQ8JfSE0JlIfU2vRH5qbXUL4HUHZi20SHVA5YKM2ztxI9uouc14ctv8pxlhT/huKxYNgB/eJR+ckT1gyc78RBoJj5YLwUTsptO87KE/vFg9hbHVo5lVSdk//jhfDsMRyf0RXp/wKZ1KGxaRA5hWQUc86mLJTiQU1EBVh3Lfb2zUq2w/gpLCoxdwiX8KnNuX1a1iC8pFCZm4VJ20yvNPaIgzFYDFfNQO6Vwv9fcLsdxVH819cEkjxg5do9MpZBj1OVmaWnTmQ4w4r3iKFzL6LMae4eOEyA/vJ8e7mbWUNrxM3+EPUPlxpG/NKr2VsR2ihIIF9GTduBZa2ayj7BJAkL9UK5PEGh/UxG6jf0YS7RjQ9ROaRgmTLMFsOVnQlFlp2UFRTe+heh/woD8/QSpd9MELdWFzeKRAlo7+hvo5AfWyjBI/3e9PIJfCXp+nF3Z92HKoR5V0m9QoYu2WGzbkhU49DJF7n+Bnd3ur0qefHFVl3USdVU2DJLcdcKU+Qn5G6E8NSy/3TVkjDg6u/o38b203b0tUBZNftAYYmCCpx/HVMEoNC03orIBPrwGYD6g//RC1TZ2ZxkLDU4QxeaM6neWq1xryXbvS4="); + public static final SkinData BARDOLF_WEREWOLF = new SkinData("eyJ0aW1lc3RhbXAiOjE0OTc0NjkxODMxOTAsInByb2ZpbGVJZCI6Ijg1MmE4YWNmNzMzNzQwZDc5OWVjYjA4ZmQ5OTY1MGI1IiwicHJvZmlsZU5hbWUiOiJLaW5nQ3JhenlfIiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS9kNzc0ZGY3OWU1OGFiNDQ5OGQ2YzY3ZTdlMjY2NWFjZmE2OTViOWNjOWNkZTE1MmQ3ZTVlM2NjMTUyNzM5In19fQ==", "nqc7IdRVa2RF2SZXRli/HVhw7q5NfY7rnZFWbDyzjQ90Y/H6NWhb+9gwDDdnh7B1WolyptyUnukzTOQmrAcSecVO5vblhCTYY8PEOfcwUKznjpCmL/BgXdzBoYJHs43HFbtvzt3yhshcQ8Wvh7mtdmNu0MEYKbIX7lTqcfSoUbDk+A1PZDINuOF5RM8disGCrkq6WTdLij+k7pd3e7MJhtf8vJbtSoo5TjfzyzJyFvEvZqa+3lxobbPA9Z4cels0DVWVU8I/FEJhB29aSVXDVAZps3vWUr1sLMM9+PRaZdxHPZfNHx6q9R3oHXgjAlqzJwkljtJGExyOV+vOHEUuxrytdwMcW0XGjalukHVJ1A9DCgNMZqAXEbfYKk+BsN2BzOwT/+dtGfsOU+Rq7Kzp1/iit9saQy1QEG8Bynj6A2Vmg9XZsvbYsXZXsE+qNG6TOADEV0yrS9icEhLhOnO0re/+wE4Zsd5WDF51e87+ugvoH3iM4zrzvaWQb6McgxD/wlYlJyVHD+2f5VYCIw2yacNXp6LaZuXpfQyyDCqpHAosTYNLxWwjinl05C/TprQw+sZoLHFCGbVFQjTPEkDhQzG73PHecnO5Px3USBVleDoTb1kZfq6J2wJ1B1/7MTBW21Din3j2DmmuAVUNJYe6kifaNOhY1ghG2WVRNdIf1b4="); + public static final SkinData LARISSA = new SkinData("eyJ0aW1lc3RhbXAiOjE0OTc0NjE0MTUxMzQsInByb2ZpbGVJZCI6Ijg1MmE4YWNmNzMzNzQwZDc5OWVjYjA4ZmQ5OTY1MGI1IiwicHJvZmlsZU5hbWUiOiJLaW5nQ3JhenlfIiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS9jYThjNDRhOWVmZTY3NzExMDYzMjM5ODEwNDRmOTdjYmM1OWJmZmRlOGI1ODdlMGQzMWE4N2ViMDhhMmExZiJ9fX0=", "Lyac51CrnMK/CI2dWgGQLowAm/ZnQMpf0Ict/gqVrUgJVlGWDIVG77Rd1JyMQDEeESvTmoyivH+usiO0ePW95qjisqT3R43YEmLi85CqctGYqLKeSYpGYwYRz8Euw57LwJAALKOMLhVc2s4h2Or9nTecunG8KSmkCuZc4H1qh3frU+ltuV4HLqgdFUULbIHTggyvqiINov2tBqkkXeEjT7sOcTJCJNgNYU2O7//qg5kJmhso2CKHlRLpmy9LsaUK/Z+BzUmoRbwQgSwr3mz7dFAdlVWWKvKNcgX3nt1et0DIig3JKYmrnQX2Fprg+kWcr3nuizzLgjVwAlADC48P3DN0s/VBty2AYoWie16VNPIM+CV4BF2JRQ34GxZ8XceXbCKURrOjoCBgLGHvIhRW35eicoh26xp3/mwLvk5anPi5StJ/qEuzWJALeWcNbLsnt21m2MZp9h/MxaY6ftWOTzjTr5CYVd/teJyscMnGK4+lcV1dlt12lhbDMv6I+iz8iG9NIzuW5OvGkax90dA/Gq+Cd9FXVThPY4ufxWttHcTqgPB64GfMn6rywRm1B0eO1pJpYc/KlJZlW/PuaO8L1assyJs5KkOypBSy3zc6TO6pzgeOZv+VpQfA/UWpogv6ofmTpgdtwpjLFGSzIKTDXvF6FftALKVlYypG0fYbssA="); + public static final SkinData ROWENA = new SkinData("eyJ0aW1lc3RhbXAiOjE0OTc0Njk1MTcxOTgsInByb2ZpbGVJZCI6Ijg1MmE4YWNmNzMzNzQwZDc5OWVjYjA4ZmQ5OTY1MGI1IiwicHJvZmlsZU5hbWUiOiJLaW5nQ3JhenlfIiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS9jNDY1OGExODY4YzNhNjhhZWVhZmZkOTUxZDQyYmZkN2QxYTRjNGZjNDJjZDI2YTlmYzhkNTNmOTkxMTM1ZCJ9fX0=", "OqXMyH9SMmQ/Pwmb21In29YnCxbsN6yqUxfudN6KNgDwRUK6y072XhW6TIoTh9JQLAUKftpeVB53tk0LxHIxnsuBMrIHvETPDQFysIc/6xq3ABogs+zqFzcp5jk6S73HiD78JxLq5pzfUzhgDPMPuZP5Q/u2q1rYbe6B9lVEJ5sUcxBLUTossgucoR4qXYAlWVQdHRhq85Ol8a+OU7ruw3HackNGto6wt6u2MigCtiHVTt9XhJ/AJE4ScodQ3XwW4L6urpl/lV2OMCsr3mCjjjEz2EMhDbCWxrAorQ9aPpMbDkHBS+4TC1tbMGUlKhj5n+EZBYVaeLr4NGPACPSdT35p/2Zra49+DXn9Xn+681yNEB0ghTdsnsgwXg76+HVPHPqRHQMuTBQGQyGZaaTX/zE0tFjH+osMElLdb8dmz3dC7kQA4A13B2phj3YbMSF1FoU4GvnPKIQn6JIuEd6hd+pRLUW7Y+mgYIHHX1FT0ihrXAyVO6lQQ6rs92gSQr7sxC7tnhPSMFcmh7OcJYcbRpn97GMubthPLanOhVy7CKqjmwIkEVtYgP28idigKwNJ+sJuUONrOu7nMKl1UTD5EEapOacc/np6UhdSw8yW+LnWD/x9ueYz9ksnyRrJgcOa41izo/WCbjPK/j3JVezr9Q3x1yveWuFmdl7CGYdXngw="); + public static final SkinData BIFF = new SkinData("eyJ0aW1lc3RhbXAiOjE0OTc0NjEzMDQzNjYsInByb2ZpbGVJZCI6Ijg1MmE4YWNmNzMzNzQwZDc5OWVjYjA4ZmQ5OTY1MGI1IiwicHJvZmlsZU5hbWUiOiJLaW5nQ3JhenlfIiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS9mOWMyMTE3ZDY0ZWE0ZmUxMWZiY2NhZmE2YzU5YzhlZjY3NDVkZjVkMTZjM2QwMmI4NmI2OTlmZWJjNTA0OGI1In19fQ==", "mJMpEvQ4A02z0S/chgLm5bKrrrd+zmp7A0012AB7b3KlyIHoLKEDDz+ZJgJtvN6skOqed3P+yNVqkxitugXaZZP8Af9J+/TseHn+vOy6CTK5tykRSY3Zb8Zmw1kn36v/SARAVtDIHD53yuPgJayYSAbVB7aknj1Q8XBQGUmZRMRxWWxeD7rQTOwgRYI4YJeKFf4UL9i6zxvOJuHsOAouJ7scu7VohG8vgR77Js/Z8rSu8/aSG+O9AQdzP6h9ixYNFkkQOHm7DseK/5tsWKHM4FYBgjIDKt3ApQokSbhThzGB55BA1qjXZkfCoOb13y1nOMC8WoIL6Ees1qzxG3VloGx2WAZLh+Q+/irwrFDMxk1zeU5fIRuj1c/UIM2HKdxxWgoRdrZ8ww/Jrll6maiOBx7geMn/0aOUbJ2U7gkTif6RG6YNS5YN9ZQDLh72l/akJMxF3SlmuAPmLs2kBghQ6eD2YQKuxWR/Hf1yS1YXtogFVNsGnzC1nda7F48EGL3zI+kCajbDlAGQ32aRt0btbEQ+Gj575kir3Aa53qiZ0YOIYQlhgZdOsTN2NE2s8uuy/15Rgc6K3ydgEmSZfdqyMyW0Dy7pE5TfVL8DumKRVRXdOceT5WfnW7MyqSmdorP5ab1fw2wLOnAVzhJmW8oXXNSs77WJ1/PURclxOWB4IF8="); + // Comments this out for now, so it doesn't load the player profile // A better way to do this would check for the properties when getting the skull or the skin // Might change on the next version diff --git a/Plugins/Mineplex.Core/src/mineplex/core/achievement/AchievementCategory.java b/Plugins/Mineplex.Core/src/mineplex/core/achievement/AchievementCategory.java index f0273f3e1..123e9db4d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/achievement/AchievementCategory.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/achievement/AchievementCategory.java @@ -217,7 +217,11 @@ public enum AchievementCategory GEM_HUNTERS("Gem Hunters", null, new StatDisplay[] {StatDisplay.KILLS, StatDisplay.GEMS_EARNED, StatDisplay.fromGame("Quests Completed", GameDisplay.GemHunters, "QuestsCompleted"), StatDisplay.fromGame("Chests Opened", GameDisplay.GemHunters, "ChestsOpened")}, - Material.EMERALD, 0, GameCategory.SURVIVAL, null, false, GameDisplay.GemHunters.getGameId()); + Material.EMERALD, 0, GameCategory.SURVIVAL, null, false, GameDisplay.GemHunters.getGameId()), + + MOBA("Heroes Of Gwen", null, + new StatDisplay[] {StatDisplay.WINS, StatDisplay.GAMES_PLAYED, StatDisplay.GEMS_EARNED, null, StatDisplay.fromGame("Gold Earned", GameDisplay.MOBA, "GoldEarned")}, + Material.PRISMARINE_SHARD, 0, GameCategory.CLASSICS, null, false, GameDisplay.MOBA.getGameId()); private String _name; private String[] _statsToPull; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/achievement/ui/page/AchievementMainPage.java b/Plugins/Mineplex.Core/src/mineplex/core/achievement/ui/page/AchievementMainPage.java index 0ff566c82..bab3f5efd 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/achievement/ui/page/AchievementMainPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/achievement/ui/page/AchievementMainPage.java @@ -51,7 +51,7 @@ public class AchievementMainPage extends ShopPageBase pageLayout = new ItemLayout( - "XXOXOXOXO", + "OXOXOXOXO", "OXOXOXOXO", "OXOXOXOXO", "OXOXOXOXO", diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/Moba.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/Moba.java index f6992f67a..277fbd021 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/Moba.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/Moba.java @@ -1,11 +1,17 @@ package nautilus.game.arcade.game.games.moba; +import mineplex.core.Managers; +import mineplex.core.common.Pair; import mineplex.core.common.Rank; import mineplex.core.common.util.C; import mineplex.core.common.util.F; import mineplex.core.common.util.UtilAlg; import mineplex.core.common.util.UtilServer; import mineplex.core.common.util.UtilTime; +import mineplex.core.disguise.disguises.DisguiseBase; +import mineplex.core.leaderboard.Leaderboard; +import mineplex.core.leaderboard.LeaderboardManager; +import mineplex.core.leaderboard.LeaderboardRepository.LeaderboardSQLType; import mineplex.minecraft.game.core.combat.DeathMessageType; import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.GameType; @@ -19,6 +25,7 @@ import nautilus.game.arcade.game.games.moba.boss.wither.WitherBoss; import nautilus.game.arcade.game.games.moba.buff.BuffManager; import nautilus.game.arcade.game.games.moba.fountain.MobaFountain; import nautilus.game.arcade.game.games.moba.general.ArrowKBManager; +import nautilus.game.arcade.game.games.moba.general.BetaManager; import nautilus.game.arcade.game.games.moba.general.EnderPearlManager; import nautilus.game.arcade.game.games.moba.general.MobaDamageManager; import nautilus.game.arcade.game.games.moba.gold.GoldManager; @@ -45,7 +52,9 @@ import nautilus.game.arcade.game.games.moba.util.MobaUtil; import nautilus.game.arcade.game.modules.CustomScoreboardModule; import nautilus.game.arcade.game.modules.compass.CompassModule; import nautilus.game.arcade.kit.Kit; +import nautilus.game.arcade.managers.lobby.current.NewGameLobbyManager; import nautilus.game.arcade.scoreboard.GameScoreboard; +import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.Location; @@ -151,6 +160,9 @@ public class Moba extends TeamGame // Buffs _buffs = registerManager(new BuffManager()); + // Beta Message + registerManager(new BetaManager(this)); + new CompassModule() .setGiveCompass(true) .setGiveCompassToSpecs(true) @@ -268,6 +280,44 @@ public class Moba extends TeamGame } SpectatorSpawn = WorldData.GetCustomLocs("CENTER").get(0); + + // Leaderboards + if (Manager.IsRewardStats()) + { + if (Manager.GetLobby() instanceof NewGameLobbyManager) + { + Map> lobbyCustomLocs = ((NewGameLobbyManager) Manager.GetLobby()).getCustomLocs(); + LeaderboardManager leaderboard = Managers.get(LeaderboardManager.class); + Pair winPair = Pair.create("Win", "Wins"); + Pair killPair = Pair.create("Kill", "Kills"); + Pair goldPair = Pair.create("Gold", "Gold"); + + { + Location location = lobbyCustomLocs.get("TOP_DAILY_WINS").get(0); + leaderboard.registerLeaderboard("TOP_HOG_DAILY_WINS", new Leaderboard("Top Daily Wins", winPair, new String[]{GetName() + ".Wins"}, LeaderboardSQLType.DAILY, location, 10)); + } + { + Location location = lobbyCustomLocs.get("TOP_DAILY_KILLS").get(0); + leaderboard.registerLeaderboard("TOP_HOG_DAILY_KILLS", new Leaderboard("Top Daily Kills", killPair, new String[]{GetName() + ".Kills"}, LeaderboardSQLType.DAILY, location, 10)); + } + { + Location location = lobbyCustomLocs.get("TOP_DAILY_GOLD").get(0); + leaderboard.registerLeaderboard("TOP_HOG_DAILY_GOLD", new Leaderboard("Top Daily Gold Earned", goldPair, new String[]{GetName() + ".GoldEarned"}, LeaderboardSQLType.DAILY, location, 10)); + } + { + Location location = lobbyCustomLocs.get("TOP_WINS").get(0); + leaderboard.registerLeaderboard("TOP_HOG_WINS", new Leaderboard("Top Wins", winPair, new String[]{GetName() + ".Wins"}, LeaderboardSQLType.ALL, location, 10)); + } + { + Location location = lobbyCustomLocs.get("TOP_KILLS").get(0); + leaderboard.registerLeaderboard("TOP_HOG_KILLS", new Leaderboard("Top Kills", killPair, new String[]{GetName() + ".Kills"}, LeaderboardSQLType.ALL, location, 10)); + } + { + Location location = lobbyCustomLocs.get("TOP_GOLD").get(0); + leaderboard.registerLeaderboard("TOP_HOG_GOLD", new Leaderboard("Top Gold Earned", goldPair, new String[]{GetName() + ".GoldEarned"}, LeaderboardSQLType.ALL, location, 10)); + } + } + } } private void writePrepare(Player player, GameScoreboard scoreboard) @@ -442,11 +492,21 @@ public class Moba extends TeamGame // Get the other team for (GameTeam otherTeam : GetTeamList()) { + for (Player player : otherTeam.GetPlayers(true)) + { + AddGems(player, 10, "Participation", true, true); + } + if (team.equals(otherTeam)) { continue; } + for (Player player : otherTeam.GetPlayers(true)) + { + AddGems(player, 20, "Winning", true, true); + } + AnnounceEnd(otherTeam); SetState(GameState.End); } @@ -505,6 +565,26 @@ public class Moba extends TeamGame } } + // Undisguise everyone upon game end + @EventHandler + public void end(GameStateChangeEvent event) + { + if (event.GetState() != GameState.End) + { + return; + } + + for (Player player : Bukkit.getOnlinePlayers()) + { + DisguiseBase disguise = Manager.GetDisguise().getActiveDisguise(player); + + if (disguise != null) + { + Manager.GetDisguise().undisguise(disguise); + } + } + } + public Map getLocationStartsWith(String s) { Map map = new HashMap<>(); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBoss.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBoss.java index c9483bbe1..edf900681 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBoss.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/boss/wither/WitherBoss.java @@ -128,6 +128,14 @@ public class WitherBoss extends MobaBoss // If not damageable if (!_damageable) { + Player damager = event.GetDamagerPlayer(true); + + if (damager != null) + { + damager.sendMessage(F.main("Game", "You must destroy both towers before attacking the Wither!")); + damager.playSound(damager.getLocation(), Sound.NOTE_BASS, 1, 0.8F); + } + return; } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/general/BetaManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/general/BetaManager.java new file mode 100644 index 000000000..f8f08448a --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/general/BetaManager.java @@ -0,0 +1,34 @@ +package nautilus.game.arcade.game.games.moba.general; + +import mineplex.core.common.util.C; +import mineplex.core.common.util.F; +import mineplex.core.updater.UpdateType; +import mineplex.core.updater.event.UpdateEvent; +import nautilus.game.arcade.game.Game.GameState; +import nautilus.game.arcade.game.games.moba.Moba; +import org.bukkit.Bukkit; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; + +public class BetaManager implements Listener +{ + + private static final String MESSAGE = F.main("Game", "You can suggest improvements for the game on our Trello here ") + C.cYellow + "https://trello.com/b/MrxWVhlI/mineplex-heroes-of-gwen-feedback-update"; + private final Moba _host; + + public BetaManager(Moba host) + { + _host = host; + } + + @EventHandler + public void update(UpdateEvent event) + { + if (event.getType() != UpdateType.MIN_02 || _host.GetState() != GameState.Recruit) + { + return; + } + + Bukkit.broadcastMessage(MESSAGE); + } +} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/gold/GoldManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/gold/GoldManager.java index c55cf84a5..afdd3582d 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/gold/GoldManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/gold/GoldManager.java @@ -157,9 +157,11 @@ public class GoldManager implements Listener public void addGold(Player player, int amount, String reason) { _playerGold.put(player, _playerGold.get(player) + amount); + _host.getArcadeManager().GetStatsManager().incrementStat(player, _host.GetName() + ".GoldEarned", amount); if (amount > 20 && reason != null) { + _host.AddGems(player, (double) amount / 2D, reason, true, true); player.sendMessage(F.main("Game", C.cGold + "+" + amount + " gold (" + reason + ")" + C.cGray + ".")); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroKit.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroKit.java index efd7abfe5..1fc1d18d0 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroKit.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroKit.java @@ -1,15 +1,19 @@ package nautilus.game.arcade.game.games.moba.kit; +import com.mojang.authlib.GameProfile; +import mineplex.core.common.skin.SkinData; import mineplex.core.common.util.C; import mineplex.core.common.util.F; import mineplex.core.common.util.UtilGear; import mineplex.core.common.util.UtilItem; import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilServer; +import mineplex.core.disguise.disguises.DisguisePlayer; import mineplex.core.itemstack.ItemBuilder; import mineplex.core.recharge.Recharge; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; +import mineplex.core.utils.UtilGameProfile; import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.game.games.moba.Moba; import nautilus.game.arcade.game.games.moba.MobaRole; @@ -35,6 +39,7 @@ public class HeroKit extends Kit private ItemStack _ammo; private long _giveTime; private int _maxAmmo; + private SkinData _skin; private static final int RECALL_SLOT = 8; private static final ItemStack RECALL_ITEM = new ItemBuilder(Material.BED) @@ -48,12 +53,13 @@ public class HeroKit extends Kit private boolean _visible = true; - public HeroKit(ArcadeManager manager, String name, Perk[] kitPerks, MobaRole role) + public HeroKit(ArcadeManager manager, String name, Perk[] kitPerks, MobaRole role, SkinData skin) { super(manager, name, KitAvailability.Free, new String[0], kitPerks, null, null); _role = role; _maxAmmo = 64; + _skin = skin; } public MobaRole getRole() @@ -231,6 +237,30 @@ public class HeroKit extends Kit } } + @Override + public void GiveItemsCall(Player player) + { + super.GiveItemsCall(player); + + disguise(player); + } + + public void disguise(Player player) + { + disguise(player, _skin); + } + + public void disguise(Player player, SkinData skin) + { + GameProfile profile = UtilGameProfile.getGameProfile(player); + profile.getProperties().clear(); + profile.getProperties().put("textures", skin.getProperty()); + DisguisePlayer disguise = new DisguisePlayer(player, profile); + disguise.showInTabList(true, 0); + + Manager.GetDisguise().disguise(disguise); + } + public boolean isVisible() { return _visible; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroSkill.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroSkill.java index df6e2e3e2..59cdd544a 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroSkill.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/HeroSkill.java @@ -31,16 +31,14 @@ import org.bukkit.event.player.PlayerToggleSneakEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.scheduler.BukkitRunnable; -import java.util.ArrayList; import java.util.HashMap; -import java.util.List; import java.util.Map; import java.util.UUID; public class HeroSkill extends Perk { - protected List _items; + private ItemStack _item; private ItemStack _cooldownItem; private final int _slot; private final ActionType _actionType; @@ -61,8 +59,7 @@ public class HeroSkill extends Perk { super(name, perkDesc); - _items = new ArrayList<>(2); - _items.add(itemStack); + _item = itemStack; _slot = slot; _actionType = actionType; } @@ -109,18 +106,12 @@ public class HeroSkill extends Perk action += "/Drop Item"; } - List items = new ArrayList<>(2); + _item = new ItemBuilder(_item) + .setTitle((action != null ? C.cYellowB + action + C.cGray + " - " : "") + C.cGreenB + GetName()) + .addLore(GetDesc()) + .setUnbreakable(true) + .build(); - for (ItemStack itemStack : _items) - { - items.add(new ItemBuilder(itemStack) - .setTitle((action != null ? C.cYellowB + action + C.cGray + " - " : "") + C.cGreenB + GetName()) - .addLore(GetDesc()) - .setUnbreakable(true) - .build()); - } - - _items = items; _cooldownItem = new ItemBuilder(Material.INK_SACK, (byte) 8) .setTitle(C.cRed + GetName()) .addLore(GetDesc()) @@ -128,12 +119,6 @@ public class HeroSkill extends Perk .build(); } - protected void addSkillItem(ItemStack itemStack) - { - _items.add(itemStack); - prettifyItems(); - } - @Override public void SetHost(Kit kit) { @@ -199,15 +184,8 @@ public class HeroSkill extends Perk return false; } - for (ItemStack correctItem : _items) - { - if (itemStack.isSimilar(correctItem)) - { - return true; - } - } + return itemStack.isSimilar(_item); - return false; } protected boolean isSkillSneak(PlayerToggleSneakEvent event) @@ -225,15 +203,8 @@ public class HeroSkill extends Perk return false; } - for (ItemStack correctItem : _items) - { - if (itemStack.isSimilar(correctItem)) - { - return true; - } - } + return itemStack.isSimilar(_item); - return false; } @EventHandler @@ -282,7 +253,7 @@ public class HeroSkill extends Perk @EventHandler public void updateCooldowns(UpdateEvent event) { - if (event.getType() != UpdateType.FASTEST || _items == null) + if (event.getType() != UpdateType.FASTEST || _item == null) { return; } @@ -341,12 +312,7 @@ public class HeroSkill extends Perk public void giveItem(Player player) { - if (_items.isEmpty()) - { - return; - } - - player.getInventory().setItem(_slot, _items.get(0)); + player.getInventory().setItem(_slot, _item); } public void useActiveSkill(Player player, long time) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/anath/HeroAnath.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/anath/HeroAnath.java index 59e33556d..6023bd3ed 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/anath/HeroAnath.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/anath/HeroAnath.java @@ -1,5 +1,6 @@ package nautilus.game.arcade.game.games.moba.kit.anath; +import mineplex.core.common.skin.SkinData; import mineplex.core.common.util.C; import mineplex.core.itemstack.ItemBuilder; import nautilus.game.arcade.ArcadeManager; @@ -25,7 +26,7 @@ public class HeroAnath extends HeroKit public HeroAnath(ArcadeManager manager) { - super(manager, "Anath", PERKS, MobaRole.MAGE); + super(manager, "Anath", PERKS, MobaRole.MAGE, SkinData.ANATH); setAmmo(AMMO, 1000); setMaxAmmo(4); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/anath/SkillBurnBeam.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/anath/SkillBurnBeam.java index 2349123f2..7938148b3 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/anath/SkillBurnBeam.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/anath/SkillBurnBeam.java @@ -25,8 +25,9 @@ public class SkillBurnBeam extends HeroSkill { private static final String[] DESCRIPTION = { - "Fires an Ember at high speed in front of you.", - "Any enemies it collides with take damage and are set on fire." + "Fires a single, vertical beam of Flames which move forward in a straight.", + "It passes through enemies and structures dealing damage", + "to anything it passes through." }; private static final ItemStack SKILL_ITEM = new ItemStack(Material.FIREBALL); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/anath/SkillMeteor.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/anath/SkillMeteor.java index 9d7421a1b..dc255d790 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/anath/SkillMeteor.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/anath/SkillMeteor.java @@ -39,7 +39,9 @@ public class SkillMeteor extends HeroSkill implements IThrown { private static final String[] DESCRIPTION = { - "It doesn't blow up the map :)", + "Shoot out a Block of Netherrack which is placed where it lands.", + "Meteors rain from the sky around the block.", + "Enemies within the area are damaged.", }; private static final ItemStack SKILL_ITEM = new ItemStack(Material.NETHER_STAR); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bardolf/HeroBardolf.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bardolf/HeroBardolf.java index b356195c6..d28975e95 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bardolf/HeroBardolf.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bardolf/HeroBardolf.java @@ -1,5 +1,6 @@ package nautilus.game.arcade.game.games.moba.kit.bardolf; +import mineplex.core.common.skin.SkinData; import mineplex.core.common.util.UtilEnt; import mineplex.core.common.util.UtilMath; import mineplex.core.common.util.UtilPlayer; @@ -34,6 +35,7 @@ import java.util.Map; public class HeroBardolf extends HeroKit { + private static final int MIN_DIST_SQUARED = 2; private static final int MAX_DIST_SQUARED = 100; private final List _data; @@ -47,7 +49,7 @@ public class HeroBardolf extends HeroKit public HeroBardolf(ArcadeManager manager) { - super(manager, "Bardolf", PERKS, MobaRole.ASSASSIN); + super(manager, "Bardolf", PERKS, MobaRole.ASSASSIN, SkinData.BARDOLF); _data = new ArrayList<>(2); } @@ -101,7 +103,7 @@ public class HeroBardolf extends HeroKit { wolf.teleport(data.getOwner()); } - else if (ownerOffset > 4) + else if (ownerOffset > MIN_DIST_SQUARED) { UtilEnt.CreatureMoveFast(wolf, data.getOwner().getLocation(), data.isUltimate() ? 2F : 1.5F); } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bardolf/SkillFullMoon.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bardolf/SkillFullMoon.java index 6bfa262bc..c68fab17d 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bardolf/SkillFullMoon.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bardolf/SkillFullMoon.java @@ -1,5 +1,6 @@ package nautilus.game.arcade.game.games.moba.kit.bardolf; +import mineplex.core.common.skin.SkinData; import mineplex.core.common.util.UtilEvent.ActionType; import mineplex.minecraft.game.core.damage.CustomDamageEvent; import nautilus.game.arcade.game.games.moba.kit.HeroSkill; @@ -21,8 +22,11 @@ public class SkillFullMoon extends HeroSkill { private static final String[] DESCRIPTION = { - "Fires an Ember at high speed in front of you.", - "Any enemies it collides with take damage and are set on fire." + "Turns the character into a Werewolf.", + "He gains +1 attack Damage and +5% Movement speed for each Wolf alive in his pack.", + "The Wolves gain movement speed to catch up and are healed to their full HP.", + "As wolves die his power decreases.", + "All Wolves in the pack die after the ultimate ends" }; private static final ItemStack SKILL_ITEM = new ItemStack(Material.NETHER_STAR); private static final long DURATION = TimeUnit.SECONDS.toMillis(10); @@ -49,15 +53,18 @@ public class SkillFullMoon extends HeroSkill return; } - WolfData data = ((HeroBardolf) Kit).getWolfData(player); + HeroBardolf kit = (HeroBardolf) Kit; + WolfData data = kit.getWolfData(player); if (data == null) { return; } + _active.add(player); Manager.GetGame().WorldTimeSet = 18000; player.getWorld().strikeLightningEffect(player.getLocation()); + kit.disguise(player, SkinData.BARDOLF_WEREWOLF); data.setUltimate(true); float speedIncrease = (float) data.getWolves().size() * SPEED_FACTOR; @@ -79,6 +86,7 @@ public class SkillFullMoon extends HeroSkill _active.remove(player); Manager.GetGame().WorldTimeSet = 12000; data.setUltimate(false); + kit.disguise(player); player.setWalkSpeed(player.getWalkSpeed() - data.getLastSpeedIncrease()); for (Wolf wolf : data.getWolves()) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bardolf/SkillSummonWolf.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bardolf/SkillSummonWolf.java index 4fa75b94f..d0e43367b 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bardolf/SkillSummonWolf.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bardolf/SkillSummonWolf.java @@ -25,8 +25,10 @@ public class SkillSummonWolf extends HeroSkill { private static final String[] DESCRIPTION = { - "Fires an Ember at high speed in front of you.", - "Any enemies it collides with take damage and are set on fire." + "Click to summon a Wolf to your pack.", + "Wolves are tamed and will attack your target or people who damage you.", + "Wolves are weak and can be killed.", + "Maximum of 5." }; private static final ItemStack SKILL_ITEM = new ItemStack(Material.BONE); private static final int MAX_WOLVES = 5; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bardolf/SkillWolfPounce.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bardolf/SkillWolfPounce.java index 20e1444dc..e69fdc4c0 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bardolf/SkillWolfPounce.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bardolf/SkillWolfPounce.java @@ -34,7 +34,8 @@ public class SkillWolfPounce extends HeroSkill { private static final String[] DESCRIPTION = { - "Dash along the ground, leaving fire behind you.", + "Dash into the air", + "Your wolves will follow you." }; private static final ItemStack SKILL_ITEM = new ItemStack(Material.FEATHER); private static final int COOLDOWN = 7000; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/biff/HeroBiff.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/biff/HeroBiff.java index 78314c186..3ea9175bc 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/biff/HeroBiff.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/biff/HeroBiff.java @@ -1,5 +1,6 @@ package nautilus.game.arcade.game.games.moba.kit.biff; +import mineplex.core.common.skin.SkinData; import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.game.games.moba.MobaRole; import nautilus.game.arcade.game.games.moba.kit.HeroKit; @@ -18,6 +19,6 @@ public class HeroBiff extends HeroKit public HeroBiff(ArcadeManager manager) { - super(manager, "Biff", PERKS, MobaRole.WARRIOR); + super(manager, "Biff", PERKS, MobaRole.WARRIOR, SkinData.BIFF); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/biff/SkillBiffDash.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/biff/SkillBiffDash.java index 6fa9c4ac4..8db6b27f9 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/biff/SkillBiffDash.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/biff/SkillBiffDash.java @@ -1,7 +1,6 @@ package nautilus.game.arcade.game.games.moba.kit.biff; import mineplex.core.common.util.UtilAction; -import mineplex.core.common.util.UtilAlg; import mineplex.core.common.util.UtilBlock; import mineplex.core.common.util.UtilEnt; import mineplex.core.common.util.UtilEvent.ActionType; @@ -13,7 +12,6 @@ import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; import nautilus.game.arcade.game.games.moba.kit.HeroSkill; import org.bukkit.Effect; -import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.block.Block; @@ -36,7 +34,9 @@ public class SkillBiffDash extends HeroSkill { private static final String[] DESCRIPTION = { - "Dash along the ground, leaving fire behind you.", + "Dash into the air.", + "When you land any enemies near you are damaged", + "and thrown up into the air." }; private static final ItemStack SKILL_ITEM = new ItemStack(Material.FEATHER); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/biff/SkillLeash.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/biff/SkillLeash.java index 5c9e28f4d..dcbb2ff1d 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/biff/SkillLeash.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/biff/SkillLeash.java @@ -1,6 +1,5 @@ package nautilus.game.arcade.game.games.moba.kit.biff; -import mineplex.core.common.events.EntityVelocityChangeEvent; import mineplex.core.common.util.F; import mineplex.core.common.util.UtilAction; import mineplex.core.common.util.UtilEvent.ActionType; @@ -29,8 +28,9 @@ public class SkillLeash extends HeroSkill { private static final String[] DESCRIPTION = { - "Fires an Ember at high speed in front of you.", - "Any enemies it collides with take damage and are set on fire." + "Enemy heroes near to Biff are hooked with a leash to you.", + "Leashed players are slowed and it breaks if the leashed player moves", + "too far away." }; private static final ItemStack SKILL_ITEM = new ItemStack(Material.LEASH); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/biff/SkillWarHorse.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/biff/SkillWarHorse.java index 1564ed858..9a45a201d 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/biff/SkillWarHorse.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/biff/SkillWarHorse.java @@ -34,8 +34,9 @@ public class SkillWarHorse extends HeroSkill { private static final String[] DESCRIPTION = { - "Fires an Ember at high speed in front of you.", - "Any enemies it collides with take damage and are set on fire." + "Mounts you on a horse.", + "Any nearby enemy heroes are rooted and will be", + "unable to move." }; private static final ItemStack SKILL_ITEM = new ItemStack(Material.NETHER_STAR); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bob/HeroBob.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bob/HeroBob.java index 8c851c98b..06ad4b260 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bob/HeroBob.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bob/HeroBob.java @@ -1,5 +1,6 @@ package nautilus.game.arcade.game.games.moba.kit.bob; +import mineplex.core.common.skin.SkinData; import mineplex.core.common.util.C; import mineplex.core.itemstack.ItemBuilder; import nautilus.game.arcade.ArcadeManager; @@ -25,7 +26,7 @@ public class HeroBob extends HeroKit public HeroBob(ArcadeManager manager) { - super(manager, "Bob Ross", PERKS, MobaRole.MAGE); + super(manager, "Bob Ross", PERKS, MobaRole.MAGE, SkinData.BOB_ROSS); setAmmo(AMMO, 500); setMaxAmmo(8); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bob/SkillBeatTheDevil.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bob/SkillBeatTheDevil.java index 596b43a76..55cc18082 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bob/SkillBeatTheDevil.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bob/SkillBeatTheDevil.java @@ -18,7 +18,7 @@ public class SkillBeatTheDevil extends DashSkill { private static final String[] DESCRIPTION = { - "Dash along the ground, leaving fire behind you.", + "Bob Ross" }; private static final ItemStack SKILL_ITEM = new ItemStack(Material.FEATHER); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bob/SkillHappyTrees.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bob/SkillHappyTrees.java index f5e0fbc4b..9590d39f9 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bob/SkillHappyTrees.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/bob/SkillHappyTrees.java @@ -153,7 +153,7 @@ public class SkillHappyTrees extends HeroSkill continue; } - MobaUtil.heal(entity, 2); + MobaUtil.heal(entity, owner, 2); MobaParticles.healing(entity, 1); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/common/SkillSword.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/common/SkillSword.java index 8b892c4eb..c7834d07d 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/common/SkillSword.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/common/SkillSword.java @@ -16,10 +16,6 @@ import java.util.List; public class SkillSword extends HeroSkill { - private static final String[] DESCRIPTION = { - "Please work" - }; - private static final ItemStack SKILL_ITEM = new ItemBuilder(Material.WOOD_SWORD) .setTitle(C.cGreenB + "Sword") .setUnbreakable(true) @@ -27,7 +23,7 @@ public class SkillSword extends HeroSkill public SkillSword(int slot) { - super("Sword", DESCRIPTION, SKILL_ITEM, slot, null); + super("Sword", new String[0], SKILL_ITEM, slot, null); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/dana/HeroDana.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/dana/HeroDana.java index e6e0f1e8b..f305be717 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/dana/HeroDana.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/dana/HeroDana.java @@ -1,5 +1,6 @@ package nautilus.game.arcade.game.games.moba.kit.dana; +import mineplex.core.common.skin.SkinData; import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.game.games.moba.MobaRole; import nautilus.game.arcade.game.games.moba.kit.HeroKit; @@ -18,6 +19,6 @@ public class HeroDana extends HeroKit public HeroDana(ArcadeManager manager) { - super(manager, "Dana", PERKS, MobaRole.WARRIOR); + super(manager, "Dana", PERKS, MobaRole.WARRIOR, SkinData.DANA); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/dana/SkillDanaDash.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/dana/SkillDanaDash.java index 0bb7af0f9..8fcb89839 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/dana/SkillDanaDash.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/dana/SkillDanaDash.java @@ -23,7 +23,8 @@ public class SkillDanaDash extends DashSkill { private static final String[] DESCRIPTION = { - "Dash along the ground, leaving fire behind you.", + "Dash along the ground.", + "Nearby enemies are thrown up into the air." }; private static final ItemStack SKILL_ITEM = new ItemStack(Material.FEATHER); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/dana/SkillPulseHeal.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/dana/SkillPulseHeal.java index 358db05c1..6d26e4cc3 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/dana/SkillPulseHeal.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/dana/SkillPulseHeal.java @@ -21,8 +21,7 @@ public class SkillPulseHeal extends HeroSkill { private static final String[] DESCRIPTION = { - "Fires an Ember at high speed in front of you.", - "Any enemies it collides with take damage and are set on fire." + "Heals nearby allies and minions." }; private static final ItemStack SKILL_ITEM = new ItemBuilder(Material.INK_SACK, (byte) 10).build(); @@ -52,7 +51,7 @@ public class SkillPulseHeal extends HeroSkill continue; } - MobaUtil.heal(entity, 4); + MobaUtil.heal(entity, player, 4); } displayPulse(player.getLocation().add(0, 0.5, 0)); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/dana/SkillRally.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/dana/SkillRally.java index ba64117fe..ec5ac4cc9 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/dana/SkillRally.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/dana/SkillRally.java @@ -33,8 +33,9 @@ public class SkillRally extends HeroSkill { private static final String[] DESCRIPTION = { - "Fires an Ember at high speed in front of you.", - "Any enemies it collides with take damage and are set on fire." + "You leap up into the air, and upon landing", + "you plant a banner that heals nearby allies", + "and minions." }; private static final ItemStack SKILL_ITEM = new ItemStack(Material.NETHER_STAR); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/devon/HeroDevon.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/devon/HeroDevon.java index c50db2648..7ff52d150 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/devon/HeroDevon.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/devon/HeroDevon.java @@ -1,5 +1,6 @@ package nautilus.game.arcade.game.games.moba.kit.devon; +import mineplex.core.common.skin.SkinData; import mineplex.core.common.util.C; import mineplex.core.itemstack.ItemBuilder; import nautilus.game.arcade.ArcadeManager; @@ -27,7 +28,7 @@ public class HeroDevon extends HeroKit public HeroDevon(ArcadeManager manager) { - super(manager, "Devon", PERKS, MobaRole.HUNTER); + super(manager, "Devon", PERKS, MobaRole.HUNTER, SkinData.DEVON); setAmmo(AMMO, 3000); setMaxAmmo(3); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/hattori/HeroHattori.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/hattori/HeroHattori.java index 284a78e01..e9438b9c1 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/hattori/HeroHattori.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/hattori/HeroHattori.java @@ -1,5 +1,6 @@ package nautilus.game.arcade.game.games.moba.kit.hattori; +import mineplex.core.common.skin.SkinData; import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.game.games.moba.MobaRole; import nautilus.game.arcade.game.games.moba.kit.HeroKit; @@ -20,6 +21,6 @@ public class HeroHattori extends HeroKit public HeroHattori(ArcadeManager manager) { - super(manager, "Hattori", PERKS, MobaRole.ASSASSIN); + super(manager, "Hattori", PERKS, MobaRole.ASSASSIN, SkinData.HATTORI); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/hattori/SkillSnowball.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/hattori/SkillSnowball.java index 5b80853d6..f1d06a1dc 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/hattori/SkillSnowball.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/hattori/SkillSnowball.java @@ -24,7 +24,7 @@ public class SkillSnowball extends HeroSkill implements IThrown private static final String[] DESCRIPTION = { "Fires 3 snowballs, one after another.", - "Each snowball deals 3 damage to any enemy it hits." + "Each snowball deals damage to any enemy it hits." }; private static final int DAMAGE = 3; private static final ItemStack SKILL_ITEM = new ItemStack(Material.SNOW_BALL); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/hp/HPManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/hp/HPManager.java index 02ad04e8e..956968e06 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/hp/HPManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/hp/HPManager.java @@ -42,7 +42,7 @@ public class HPManager implements Listener continue; } - MobaHPRegenEvent regenEvent = new MobaHPRegenEvent(player, HP5, true); + MobaHPRegenEvent regenEvent = new MobaHPRegenEvent(player, null, HP5, true); UtilServer.CallEvent(regenEvent); if (regenEvent.isCancelled()) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/HeroLarissa.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/HeroLarissa.java index f208d672b..a1f2cb08b 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/HeroLarissa.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/HeroLarissa.java @@ -1,5 +1,6 @@ package nautilus.game.arcade.game.games.moba.kit.larissa; +import mineplex.core.common.skin.SkinData; import mineplex.core.common.util.C; import mineplex.core.itemstack.ItemBuilder; import nautilus.game.arcade.ArcadeManager; @@ -26,7 +27,7 @@ public class HeroLarissa extends HeroKit public HeroLarissa(ArcadeManager manager) { - super(manager, "Larissa", PERKS, MobaRole.MAGE); + super(manager, "Larissa", PERKS, MobaRole.MAGE, SkinData.LARISSA); setAmmo(AMMO, 3000); setMaxAmmo(5); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillAOEHeal.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillAOEHeal.java index 15a6fe9f8..93e4e5055 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillAOEHeal.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillAOEHeal.java @@ -44,8 +44,9 @@ public class SkillAOEHeal extends HeroSkill implements IThrown { private static final String[] DESCRIPTION = { - "Fires an Ember at high speed in front of you.", - "Any enemies it collides with take damage and are set on fire." + "Throws a water bucket which upon coming into", + "contact with the ground will heal nearby", + "players and minions." }; private static final long DURATION = TimeUnit.SECONDS.toMillis(6); private static final int RADIUS = 3; @@ -127,7 +128,7 @@ public class SkillAOEHeal extends HeroSkill implements IThrown if (isTeamDamage(entity, owner)) { MobaParticles.healing(entity, HEALTH_PER_SECOND); - MobaUtil.heal(entity, HEALTH_PER_SECOND); + MobaUtil.heal(entity, owner, HEALTH_PER_SECOND); } else { diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillAquaCannon.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillAquaCannon.java index 74e61a7f3..2a64ce53c 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillAquaCannon.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillAquaCannon.java @@ -26,8 +26,8 @@ public class SkillAquaCannon extends HeroSkill { private static final String[] DESCRIPTION = { - "Fires an Ember at high speed in front of you.", - "Any enemies it collides with take damage and are set on fire." + "Fires a beam of water that deals damage", + "to the first enemy it comes in contact with." }; private static final int DAMAGE = 6; private static final ItemStack SKILL_ITEM = new ItemStack(Material.DIAMOND_HOE); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillStormHeal.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillStormHeal.java index 9c2fbbaca..a26b02cfe 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillStormHeal.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillStormHeal.java @@ -1,6 +1,5 @@ package nautilus.game.arcade.game.games.moba.kit.larissa; -import mineplex.core.Managers; import mineplex.core.common.util.UtilEvent.ActionType; import mineplex.core.common.util.UtilParticle; import mineplex.core.common.util.UtilParticle.ParticleType; @@ -30,8 +29,8 @@ public class SkillStormHeal extends HeroSkill { private static final String[] DESCRIPTION = { - "Fires an Ember at high speed in front of you.", - "Any enemies it collides with take damage and are set on fire." + "All team members are consistently healed", + "over the next 7 seconds." }; private static final long DURATION = TimeUnit.SECONDS.toMillis(7); private static final int HEALTH_PER_SECOND = 2; @@ -86,7 +85,7 @@ public class SkillStormHeal extends HeroSkill for (Player teamMember : team.GetPlayers(true)) { - MobaUtil.heal(teamMember, HEALTH_PER_SECOND); + MobaUtil.heal(teamMember, player, HEALTH_PER_SECOND); } }); } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillWaterDash.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillWaterDash.java index d66be7c20..69cc3a8f4 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillWaterDash.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/larissa/SkillWaterDash.java @@ -18,7 +18,8 @@ public class SkillWaterDash extends DashSkill { private static final String[] DESCRIPTION = { - "Dash along the ground, leaving water behind you.", + "Dash along the ground, crippling enemies you", + "come into contact with." }; private static final ItemStack SKILL_ITEM = new ItemStack(Material.FEATHER); private static final long CRIPPLE_DURATION = TimeUnit.SECONDS.toMillis(3); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/rowena/HeroRowena.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/rowena/HeroRowena.java index d196ad8cb..d15ab3174 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/rowena/HeroRowena.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/rowena/HeroRowena.java @@ -1,5 +1,6 @@ package nautilus.game.arcade.game.games.moba.kit.rowena; +import mineplex.core.common.skin.SkinData; import mineplex.core.common.util.C; import mineplex.core.itemstack.ItemBuilder; import nautilus.game.arcade.ArcadeManager; @@ -27,7 +28,7 @@ public class HeroRowena extends HeroKit public HeroRowena(ArcadeManager manager) { - super(manager, "Rowena", PERKS, MobaRole.HUNTER); + super(manager, "Rowena", PERKS, MobaRole.HUNTER, SkinData.ROWENA); setAmmo(AMMO, 2000); setMaxAmmo(2); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/rowena/SkillBombardment.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/rowena/SkillBombardment.java index 1a704d5e8..2499f8d6e 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/rowena/SkillBombardment.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/rowena/SkillBombardment.java @@ -1,30 +1,32 @@ package nautilus.game.arcade.game.games.moba.kit.rowena; import mineplex.core.common.events.EntityVelocityChangeEvent; -import mineplex.core.common.util.UtilAction; +import mineplex.core.common.util.C; +import mineplex.core.common.util.UtilEnt; import mineplex.core.common.util.UtilEvent.ActionType; import mineplex.core.common.util.UtilParticle; import mineplex.core.common.util.UtilParticle.ParticleType; import mineplex.core.common.util.UtilParticle.ViewDist; +import mineplex.core.common.util.UtilServer; import mineplex.core.common.util.UtilTime; +import mineplex.core.common.util.particles.effects.LineParticle; +import mineplex.core.itemstack.ItemBuilder; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; -import mineplex.minecraft.game.core.damage.CustomDamageEvent; import nautilus.game.arcade.game.games.moba.kit.HeroSkill; -import nautilus.game.arcade.kit.Perk; +import nautilus.game.arcade.game.games.moba.util.MobaUtil; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; +import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.entity.EntityShootBowEvent; +import org.bukkit.event.entity.EntityDamageEvent.DamageCause; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.inventory.ItemStack; -import org.bukkit.util.Vector; import java.util.HashSet; import java.util.Iterator; @@ -34,13 +36,16 @@ public class SkillBombardment extends HeroSkill { private static final String[] DESCRIPTION = { - "Turns into a Diamond Sword that deals extreme", - "damage to any player hit by it." + "Take to the sky!", + "Your shots become fast high power explosive shots." }; private static final ItemStack SKILL_ITEM = new ItemStack(Material.NETHER_STAR); + private static final int DAMAGE_FACTOR = 2; private static final int SHOTS = 3; private static final int MAX_TIME = 10000; - private static final int DAMAGE_INCREASE = 5; + private static final ItemStack ACTIVE_ITEM = new ItemBuilder(Material.DIAMOND_BARDING) + .setTitle(C.cDRedB + "Bombardment") + .build(); private Set _data = new HashSet<>(); @@ -71,20 +76,54 @@ public class SkillBombardment extends HeroSkill } } - for (Perk perk : Kit.GetPerks()) - { - if (perk instanceof SkillLightArrows) - { - SkillLightArrows skill = (SkillLightArrows) perk; + Location toTeleport = player.getLocation().add(0, 15, 0); - skill.resetCooldown(player); - skill.setPlayerArrows(player, SHOTS); - } + player.teleport(toTeleport); + player.getInventory().setItem(0, ACTIVE_ITEM); + player.getInventory().setHeldItemSlot(0); + broadcast(player); + _data.add(new BombardmentData(player)); + } + + @EventHandler + public void interactActive(PlayerInteractEvent event) + { + if (event.getItem() == null || !event.getItem().isSimilar(ACTIVE_ITEM)) + { + return; } - broadcast(player); - UtilAction.velocity(player, new Vector(0, 2, 0)); - _data.add(new BombardmentData(player)); + Player player = event.getPlayer(); + + for (BombardmentData data : _data) + { + if (data.Shooter.equals(player)) + { + Location location = player.getEyeLocation(); + LineParticle lineParticle = new LineParticle(location, location.getDirection(), 0.4, 40, ParticleType.FIREWORKS_SPARK, UtilServer.getPlayers()); + double damage = MobaUtil.scaleDamageWithBow(player.getInventory().getItem(0), 0) * DAMAGE_FACTOR; + + while (!lineParticle.update()) + { + } + + player.playSound(player.getLocation(), Sound.EXPLODE, 1, 0.8F); + UtilParticle.PlayParticleToAll(ParticleType.HUGE_EXPLOSION, lineParticle.getDestination(), 0, 0, 0, 0.1F, 1, ViewDist.LONG); + + for (LivingEntity entity : UtilEnt.getInRadius(lineParticle.getLastLocation(), 5).keySet()) + { + if (isTeamDamage(entity, player)) + { + continue; + } + + Manager.GetDamage().NewDamageEvent(entity, player, null, DamageCause.CUSTOM, damage, true, true, false, player.getName(), GetName()); + } + + data.Shots--; + return; + } + } } @EventHandler @@ -102,21 +141,10 @@ public class SkillBombardment extends HeroSkill BombardmentData data = iterator.next(); Player player = data.Shooter; - if (data.Block == null && player.getVelocity().getY() <= 0) - { - data.Block = player.getLocation().getBlock().getRelative(BlockFace.DOWN); - data.Block.setType(Material.BARRIER); - - Location playerLocation = player.getLocation(); - Location toTeleport = data.Block.getLocation(); - toTeleport.setYaw(playerLocation.getYaw()); - toTeleport.setPitch(playerLocation.getPitch()); - - player.getInventory().setHeldItemSlot(0); - } - else if (UtilTime.elapsed(data.Start, MAX_TIME) || data.Shots == 0) + if (UtilTime.elapsed(data.Start, MAX_TIME) || data.Shots == 0) { useSkill(player); + Kit.GiveItems(player); data.Block.setType(Material.AIR); iterator.remove(); } @@ -127,46 +155,6 @@ public class SkillBombardment extends HeroSkill } } - @EventHandler - public void shootArrow(EntityShootBowEvent event) - { - if (!(event.getEntity() instanceof Player)) - { - return; - } - - Player player = (Player) event.getEntity(); - - for (BombardmentData data : _data) - { - if (data.Shooter.equals(player)) - { - data.Shots--; - return; - } - } - } - - @EventHandler(priority = EventPriority.HIGH) - public void increaseDamage(CustomDamageEvent event) - { - if (event.isCancelled()) - { - return; - } - - Player damager = event.GetDamagerPlayer(true); - - if (damager == null || event.GetReason() == null || !event.GetReason().contains("Light Arrows")) - { - return; - } - - damager.playSound(event.GetDamageeEntity().getLocation(), Sound.EXPLODE, 1, 0.6F); - UtilParticle.PlayParticleToAll(ParticleType.LARGE_EXPLODE, event.GetDamageeEntity().getLocation().add(0, 1, 0), 0, 0, 0, 0.1F, 1, ViewDist.LONG); - event.AddMod(GetName(), DAMAGE_INCREASE); - } - @EventHandler public void playerMove(PlayerMoveEvent event) { @@ -212,6 +200,8 @@ public class SkillBombardment extends HeroSkill { Shooter = shooter; Shots = SHOTS; + Block = shooter.getLocation().getBlock().getRelative(BlockFace.DOWN); + Block.setType(Material.BARRIER); Start = System.currentTimeMillis(); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/rowena/SkillCombatDash.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/rowena/SkillCombatDash.java index 27de6635a..a3edb19df 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/rowena/SkillCombatDash.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/rowena/SkillCombatDash.java @@ -13,7 +13,7 @@ public class SkillCombatDash extends DashSkill { private static final String[] DESCRIPTION = { - "Dash along the ground, leaving fire behind you.", + "Dash very fast along the ground.", }; private static final ItemStack SKILL_ITEM = new ItemStack(Material.FEATHER); @@ -25,7 +25,6 @@ public class SkillCombatDash extends DashSkill _collide = false; _velocityTime = 250; - _velocityStopOnEnd = true; _velocityMagnitude = 1.5; _horizontial = true; } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/rowena/SkillLightArrows.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/rowena/SkillLightArrows.java index b71653c29..d4037aa5f 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/rowena/SkillLightArrows.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/kit/rowena/SkillLightArrows.java @@ -38,8 +38,8 @@ public class SkillLightArrows extends HeroSkill { private static final String[] DESCRIPTION = { - "Your next 3 arrows are infused with TNT.", - "They explode on contact dealing damage and knockback." + "Your next 5 arrows become light infused.", + "They pass through blocks and deal high damage." }; private static final ItemStack SKILL_ITEM = new ItemStack(Material.GOLD_NUGGET); @@ -170,10 +170,5 @@ public class SkillLightArrows extends HeroSkill _playerArrows.remove(event.getPlayer()); _arrows.remove(event.getPlayer()); } - - void setPlayerArrows(Player player, int amount) - { - _playerArrows.put(player, amount); - } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/minion/MinionManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/minion/MinionManager.java index 1d90780a7..e3c663632 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/minion/MinionManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/minion/MinionManager.java @@ -143,6 +143,11 @@ public class MinionManager implements Listener public void unregisterWave(MinionWave wave) { + for (Minion minion : wave.getMinions()) + { + minion.getEntity().remove(); + } + _waves.remove(wave); } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/minion/MinionWave.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/minion/MinionWave.java index edb5c9917..5d9f3e77f 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/minion/MinionWave.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/minion/MinionWave.java @@ -33,6 +33,7 @@ import org.jooq.util.derby.sys.Sys; import java.util.ArrayList; import java.util.HashMap; +import java.util.Iterator; import java.util.List; import java.util.Map; @@ -163,7 +164,23 @@ public class MinionWave implements Listener return; } - _minions.removeIf(minion -> minion.getEntity() == null || minion.getEntity().isDead() || !minion.getEntity().isValid()); + Iterator iterator = _minions.iterator(); + + while (iterator.hasNext()) + { + Minion minion = iterator.next(); + LivingEntity entity = minion.getEntity(); + + if (entity == null || entity.isDead() || !entity.isValid()) + { + if (entity != null && entity.getKiller() != null) + { + _host.AddGems(entity.getKiller(), 0.1, "Minion Kills", true, true); + } + + iterator.remove(); + } + } // Only should unregister the wave after all entities have spawned if (_minions.isEmpty() && UtilTime.elapsed(_startTime, 10000)) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/effects/MobaKillHealEffect.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/effects/MobaKillHealEffect.java index d31ff421e..0565ef5e5 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/effects/MobaKillHealEffect.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/shop/effects/MobaKillHealEffect.java @@ -19,12 +19,12 @@ public class MobaKillHealEffect extends MobaItemEffect @Override public void onDeath(Player killed, Player killer) { - MobaUtil.heal(killer, _health); + MobaUtil.heal(killer, killer, _health); } @Override public String getDescription() { - return "Killing a player heals for " + F.greenElem(format(_health / 2)) + C.cRed + "❤" + C.cGray + "."; + return "Killing a player heals for an additional " + F.greenElem(format(_health / 2)) + C.cRed + "❤" + C.cGray + "."; } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/structure/tower/TowerManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/structure/tower/TowerManager.java index f31a6c380..a7c9d4d54 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/structure/tower/TowerManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/structure/tower/TowerManager.java @@ -125,6 +125,11 @@ public class TowerManager implements Listener @EventHandler public void updateTower(UpdateEvent event) { + if (!_host.IsLive()) + { + return; + } + if (event.getType() == UpdateType.FASTEST) { for (Tower tower : _towers) @@ -166,7 +171,7 @@ public class TowerManager implements Listener @EventHandler(priority = EventPriority.LOW) public void crystalDamage(EntityDamageByEntityEvent event) { - if (!(event.getEntity() instanceof EnderCrystal)) + if (!(event.getEntity() instanceof EnderCrystal) || !_host.IsLive()) { return; } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/util/MobaUtil.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/util/MobaUtil.java index 72fe45918..ac09e9aac 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/util/MobaUtil.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/moba/util/MobaUtil.java @@ -198,11 +198,11 @@ public class MobaUtil return entity.hasMetadata(MobaConstants.TEAM_METADATA) && entity.getMetadata(MobaConstants.TEAM_METADATA).get(0).asString().equals(team.GetName()); } - public static void heal(LivingEntity entity, double health) + public static void heal(LivingEntity entity, Player source, double health) { if (entity instanceof Player) { - MobaHPRegenEvent regenEvent = new MobaHPRegenEvent((Player) entity, health, false); + MobaHPRegenEvent regenEvent = new MobaHPRegenEvent((Player) entity, source, health, false); UtilServer.CallEvent(regenEvent); if (regenEvent.isCancelled())