Merge remote-tracking branch 'refs/remotes/origin/develop' into update/bridges
This commit is contained in:
commit
b1a1faacb1
@ -111,6 +111,30 @@ public class ShapeWings extends ShapeGrid implements CosmeticShape
|
|||||||
"000000$000000"
|
"000000$000000"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
public static final String[] FOUR_LEAF_CLOVER = new String[]
|
||||||
|
{
|
||||||
|
"$$$$$$$$###$$$$$$$",
|
||||||
|
"$$$$$$##***#$$$$$$",
|
||||||
|
"$$$$##****%#$$$$$$",
|
||||||
|
"$$$#******%#$###$$",
|
||||||
|
"$$$#***%#%%##***#$",
|
||||||
|
"$$$$#**%#%#*****#$",
|
||||||
|
"$$$####*%%#*%%**#$",
|
||||||
|
"$##***#*%#**##**##",
|
||||||
|
"#***%%*###******%#",
|
||||||
|
"#**%##*%###%%%%%%#",
|
||||||
|
"#**#**%%#**######$",
|
||||||
|
"$#****%#*****#$$$$",
|
||||||
|
"$$#*%%%#******#$$$",
|
||||||
|
"$$#####**%#****#$$",
|
||||||
|
"$$$$$##**%#***%#$$",
|
||||||
|
"$$$$$###****%%%#$$",
|
||||||
|
"$$$$##$#%%%%%##$$$",
|
||||||
|
"$$$##$$$#####$$$$$",
|
||||||
|
"$###$$$$$$$$$$$$$$",
|
||||||
|
"$##$$$$$$$$$$$$$$$"
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default rotation to give the wings a little tilt when displayed on players for instance
|
* Default rotation to give the wings a little tilt when displayed on players for instance
|
||||||
|
@ -64,6 +64,7 @@ public class SkinData
|
|||||||
public final static SkinData TURKEY = new SkinData("eyJ0aW1lc3RhbXAiOjE0NzU3NzM2MTc5MDQsInByb2ZpbGVJZCI6IjlmY2FlZDhiMTRiNTRmN2ZhNjRjYjYwNDBlNzA1MjcyIiwicHJvZmlsZU5hbWUiOiJMQ2FzdHIxIiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8xYzdmYjczMTRkNmY1ZTMzNmVjN2ViNTI1ZGM0ODMzOWNhMjI4ZDk3ODU1MDM3ZDZhNDIwOGZjNzYwNDc1NiJ9fX0=", "eZWi1LOD8ke7MCUAfhspBCnyfCoGM8suFLKtbW6b27CURoRBG3eKIfwLYYeMp3ObjoZ8gCB90s28Qyw5XMzwvvowy9W/b5cYC0OzQ8+GR7tDZoWc28tGqGBM8cmDJIFQgZdceBIIr2lXeAvEJfLbyrus46hPjk8YTiQW2DsBq88BhKIy6Igb1rGqJ1goVERF07b6+/yMdLKCaT8OZFzKLXfo5rY5gr6HLnvsQiNL9aTrl74agXn1GUcP+QVNe7/c9lYmv5vLCBst1YiIPq27NZASZ++Fwyv6+PRlaFZZYtMHVd4UZeYPl7ak1Cdi/1sUcRpkBbJM8AHIrqq0iuXxrLbc6ldQ2cYQKHg9ljIpW/EZanuf6Wgm/LK1JnxXne9GUb/xPzB1EnZ95i8/u9WJa+NixEcfc3pAzDPYncIR8lishFwyBRta6BCG76U3UY2lQr3YD/48AJ49r7+WVU0gOP/h2SDSdAZHEdvkpVJ0w/xA+SevJ7Y7xA5EJ655YMQ0F8f3WUFTf1pFklE5E+fwkMVCWOPw7UMy558IcRSpdWAPPyf8sc7CpDqRk37/vXWRDa+7YBfgskK6B2eXowrzThUOBx+AmDTF3Rv8ZSr1Un0FWGi+GQ5ny7W9dJBMomzyMUbzz9stsCml5XB+6xLP2MD+9lO1bHipKS6qkhtZChE=");
|
public final static SkinData TURKEY = new SkinData("eyJ0aW1lc3RhbXAiOjE0NzU3NzM2MTc5MDQsInByb2ZpbGVJZCI6IjlmY2FlZDhiMTRiNTRmN2ZhNjRjYjYwNDBlNzA1MjcyIiwicHJvZmlsZU5hbWUiOiJMQ2FzdHIxIiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8xYzdmYjczMTRkNmY1ZTMzNmVjN2ViNTI1ZGM0ODMzOWNhMjI4ZDk3ODU1MDM3ZDZhNDIwOGZjNzYwNDc1NiJ9fX0=", "eZWi1LOD8ke7MCUAfhspBCnyfCoGM8suFLKtbW6b27CURoRBG3eKIfwLYYeMp3ObjoZ8gCB90s28Qyw5XMzwvvowy9W/b5cYC0OzQ8+GR7tDZoWc28tGqGBM8cmDJIFQgZdceBIIr2lXeAvEJfLbyrus46hPjk8YTiQW2DsBq88BhKIy6Igb1rGqJ1goVERF07b6+/yMdLKCaT8OZFzKLXfo5rY5gr6HLnvsQiNL9aTrl74agXn1GUcP+QVNe7/c9lYmv5vLCBst1YiIPq27NZASZ++Fwyv6+PRlaFZZYtMHVd4UZeYPl7ak1Cdi/1sUcRpkBbJM8AHIrqq0iuXxrLbc6ldQ2cYQKHg9ljIpW/EZanuf6Wgm/LK1JnxXne9GUb/xPzB1EnZ95i8/u9WJa+NixEcfc3pAzDPYncIR8lishFwyBRta6BCG76U3UY2lQr3YD/48AJ49r7+WVU0gOP/h2SDSdAZHEdvkpVJ0w/xA+SevJ7Y7xA5EJ655YMQ0F8f3WUFTf1pFklE5E+fwkMVCWOPw7UMy558IcRSpdWAPPyf8sc7CpDqRk37/vXWRDa+7YBfgskK6B2eXowrzThUOBx+AmDTF3Rv8ZSr1Un0FWGi+GQ5ny7W9dJBMomzyMUbzz9stsCml5XB+6xLP2MD+9lO1bHipKS6qkhtZChE=");
|
||||||
public final static SkinData GINGERBREAD = new SkinData("eyJ0aW1lc3RhbXAiOjE0ODAxOTk5MjM0NTUsInByb2ZpbGVJZCI6IjRjOGQ1NjllZWZlMTRkOGE4YzJmMmM4ODA3ODA3ODRmIiwicHJvZmlsZU5hbWUiOiJHaW5nZXJicmVhZE1hbiIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzAyM2IxZGQ5MWQyYjM2Y2FkZTU2NjVjM2Y3ODk3ZmNiOGRlMWFlNjE5YTRlOTYxODU2MzdiMTliZGNmZjQ3In19fQ==", "lND5lQCzd5DKdn+ps82zn55hrSDr12bBLFoSbxetOj7MaYAuHCkJPQQOXdcMh3TLLSgxmQzEWkIHSUo760/2Qfd2uDDOTVfZZqiFjiOwDQ7YQjkokqNaC3U9gEq+LBJ+IgEkwaCsluXYMIK0Wvqx1DFa82pg8bSYGczJfTw/1kQsUUTpmao6ChZw3yrHTPow38onD95f9i6yVcnhSpPfM/JTQuL4N6Jdcql6VRJNSvCHJvEgh6R2p0w7DJhEGIzkFaF3lPdBqw+Mm97fBPvznscd4s6gpH07gUl/T+vlyHyRBLm85Pgm70r4MQ+c/nGOQOXzFMNpO8RIot/uhd7t3bvSi6yFzZQm7P9QLCLm/0C84x0sCugjeN/hVA347FWnuRPcya5xPzlpTWAW7pCjheAz0mvnPUMYT6Wp4CJx6bPdePnaiLFSeK8EyQIU9IUQJgXqMA3cOwqMBdh/0r71fTInPdgXsVxabmGbCgIuK3A2hSgxpcZv9412T0NIJYSTi0s2B3dyAaZJrdF5wa1hIr8au63SWFJww3GEEOF5YObEyVvKj2yS40iaHaRrfn1DeALT0eD0oN1zzK66FKbFuDmZmm4Thel9gKt+QcnR2uHlFLEBUogpIXyeC8zca7SOppANloOpO4mBbf22dXBJogenVd425JWaXOHJ6NVqIBw=");
|
public final static SkinData GINGERBREAD = new SkinData("eyJ0aW1lc3RhbXAiOjE0ODAxOTk5MjM0NTUsInByb2ZpbGVJZCI6IjRjOGQ1NjllZWZlMTRkOGE4YzJmMmM4ODA3ODA3ODRmIiwicHJvZmlsZU5hbWUiOiJHaW5nZXJicmVhZE1hbiIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzAyM2IxZGQ5MWQyYjM2Y2FkZTU2NjVjM2Y3ODk3ZmNiOGRlMWFlNjE5YTRlOTYxODU2MzdiMTliZGNmZjQ3In19fQ==", "lND5lQCzd5DKdn+ps82zn55hrSDr12bBLFoSbxetOj7MaYAuHCkJPQQOXdcMh3TLLSgxmQzEWkIHSUo760/2Qfd2uDDOTVfZZqiFjiOwDQ7YQjkokqNaC3U9gEq+LBJ+IgEkwaCsluXYMIK0Wvqx1DFa82pg8bSYGczJfTw/1kQsUUTpmao6ChZw3yrHTPow38onD95f9i6yVcnhSpPfM/JTQuL4N6Jdcql6VRJNSvCHJvEgh6R2p0w7DJhEGIzkFaF3lPdBqw+Mm97fBPvznscd4s6gpH07gUl/T+vlyHyRBLm85Pgm70r4MQ+c/nGOQOXzFMNpO8RIot/uhd7t3bvSi6yFzZQm7P9QLCLm/0C84x0sCugjeN/hVA347FWnuRPcya5xPzlpTWAW7pCjheAz0mvnPUMYT6Wp4CJx6bPdePnaiLFSeK8EyQIU9IUQJgXqMA3cOwqMBdh/0r71fTInPdgXsVxabmGbCgIuK3A2hSgxpcZv9412T0NIJYSTi0s2B3dyAaZJrdF5wa1hIr8au63SWFJww3GEEOF5YObEyVvKj2yS40iaHaRrfn1DeALT0eD0oN1zzK66FKbFuDmZmm4Thel9gKt+QcnR2uHlFLEBUogpIXyeC8zca7SOppANloOpO4mBbf22dXBJogenVd425JWaXOHJ6NVqIBw=");
|
||||||
public final static SkinData LOVE_DOCTOR = new SkinData("eyJ0aW1lc3RhbXAiOjE0ODQ0MzM1MjQxMjAsInByb2ZpbGVJZCI6IjlmY2FlZDhiMTRiNTRmN2ZhNjRjYjYwNDBlNzA1MjcyIiwicHJvZmlsZU5hbWUiOiJMQ2FzdHIxIiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS9iY2RiZTM2OTM1NGZjMzUxY2RhNGRmY2Y2OWM0MzY3ODcwYjI4ZWE3NDUzYWVjM2IzMjgyM2YyMWMzNTJlNTUifX19", "KD0NsKFlS+9/JpPQdT0Lq2jo942WeHpFevJPR3T9JO/5NVmNprupsWuTgepw14iHoax8/xyP8S4XksYq8hJ30e+gRKXVReqtq4l8JetXJILI7JTL6EHj/Flg4t0O6ASIm3Hr+w86IKrPb0NwHTjHJHvbf0r7k3E/TMLbq0/c7Xgi+JgC0uQd+wIPZhQe92P3O7eGH858X0vsxG0FVzgnEAlHVLmqBCwqxMU5CsBp0JCTVIbtp+JNmveCsfLagP6mi39rUudbueXJQgqLv7H7Zw+ZNINLLaKPNVO6Od8sX3c+CSUQ+Bm9bakYr628k/z0krTdNpLG7OGXWoT3XShW6HXB/z7o7hpuDXJW7HdyvmWv9GVyWLm2USNe7/3Ugs2zWZI1f+t6t+V3EVr3T+nR4zpY/ISdlTsLtV/Daebr0v/V0YlaM0UaASzz16ob3p1cfao7C7BZwKqOBKoSyHpnuLhd70wOtNrhhPDU9dWQBC/l6uojcMJ9lQMsxFmHj4JFqJYl7p/UXnq1vnYBo1P3A//IGl4gL1Hv8U0I14LT77/AMYH57mItgD0/VnE4bvPIFML/4cX7L9qpdLoOAAyfa5P9cAfzhUnVnRRLM016MpGtvY8SfbZ68Of1Xjz/dZ9/fBEcObXPHGX2QNuJRFiWJjRVKjO7ok0qfiVUEmuZr6I=");
|
public final static SkinData LOVE_DOCTOR = new SkinData("eyJ0aW1lc3RhbXAiOjE0ODQ0MzM1MjQxMjAsInByb2ZpbGVJZCI6IjlmY2FlZDhiMTRiNTRmN2ZhNjRjYjYwNDBlNzA1MjcyIiwicHJvZmlsZU5hbWUiOiJMQ2FzdHIxIiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS9iY2RiZTM2OTM1NGZjMzUxY2RhNGRmY2Y2OWM0MzY3ODcwYjI4ZWE3NDUzYWVjM2IzMjgyM2YyMWMzNTJlNTUifX19", "KD0NsKFlS+9/JpPQdT0Lq2jo942WeHpFevJPR3T9JO/5NVmNprupsWuTgepw14iHoax8/xyP8S4XksYq8hJ30e+gRKXVReqtq4l8JetXJILI7JTL6EHj/Flg4t0O6ASIm3Hr+w86IKrPb0NwHTjHJHvbf0r7k3E/TMLbq0/c7Xgi+JgC0uQd+wIPZhQe92P3O7eGH858X0vsxG0FVzgnEAlHVLmqBCwqxMU5CsBp0JCTVIbtp+JNmveCsfLagP6mi39rUudbueXJQgqLv7H7Zw+ZNINLLaKPNVO6Od8sX3c+CSUQ+Bm9bakYr628k/z0krTdNpLG7OGXWoT3XShW6HXB/z7o7hpuDXJW7HdyvmWv9GVyWLm2USNe7/3Ugs2zWZI1f+t6t+V3EVr3T+nR4zpY/ISdlTsLtV/Daebr0v/V0YlaM0UaASzz16ob3p1cfao7C7BZwKqOBKoSyHpnuLhd70wOtNrhhPDU9dWQBC/l6uojcMJ9lQMsxFmHj4JFqJYl7p/UXnq1vnYBo1P3A//IGl4gL1Hv8U0I14LT77/AMYH57mItgD0/VnE4bvPIFML/4cX7L9qpdLoOAAyfa5P9cAfzhUnVnRRLM016MpGtvY8SfbZ68Of1Xjz/dZ9/fBEcObXPHGX2QNuJRFiWJjRVKjO7ok0qfiVUEmuZr6I=");
|
||||||
|
public final static SkinData LEPRECHAUN = new SkinData("eyJ0aW1lc3RhbXAiOjE0ODc4NzI5Mjg1ODIsInByb2ZpbGVJZCI6IjlmY2FlZDhiMTRiNTRmN2ZhNjRjYjYwNDBlNzA1MjcyIiwicHJvZmlsZU5hbWUiOiJMQ2FzdHIxIiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS80ZTBkZjZhZGNiNzkzMzM5ZjFhOGNkM2E0ZGQ2ZThjNGQ2ZWFjYmU5NWMzZDA5OTI4NDMyMWFiZGI5MTgwOSJ9fX0=", "cyIYHTdzvVBOyYoiJZTvNS8Et5pzqBNxuz6GQspE2lBkW2Bj82JNv5oczsf3oxYAG4zxdb96G8+7UKBmoJdvx0x6UD7Dk0dnKrwpXfOhe+jRxtwMGMsdYCb8URWaoIoeKpxdCmAtjgV6FI8zDy2Yzi+MF4O9e4VqH0tMBoD2/CZScQwNEzc4YXf2M2fglKn9uK2+xrgLV+XS+SNdIn7BRiNlQf96u6N2G0lO+eb09LbIfIgAgfnyLiARccWa+VNo6gwlCFyRMnwOlgqxL5XA5Um4kkx2ZReRRCDFQ4NV5eLBktLd5wpECyOuY7v7S3zLqwbhwG47gS8hnXqmtHG5RW0RUQZEryg638Cw7hwr2k09iStfok8WeZUIJ+fuUWgdArvbtN36a2pCXyFdqzp+E8xzSF4E9SQv0K+1lNj+w4L58dh8pddeKK8m5bpjINj4xZ6nf7reWYQAX/imVNYTXTW8JqYnF+++xViBwmfeeM3PmEg+wyTduh+M25nyhGcqn5l+UyQ9aMzzdNs2aEdx12fOm1sOFXjHrHWeo6ciEm7sY1SDjiJ99VVXuGHCJWBtxq/B+c+vC/Cj8itEYOetwe5NKrgI99pZjG+KiRr4L0n8/NA3Px7SbKUUpHse80pNMjGfFW4pAOyFXJaKHrObWT2iL2AnTe+yfdY4sf/JZT4=");
|
||||||
|
|
||||||
// Comments this out for now, so it doesn't load the player profile
|
// 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
|
// A better way to do this would check for the properties when getting the skull or the skin
|
||||||
|
@ -260,7 +260,7 @@ public class BonusManager extends MiniClientPlugin<BonusClientData> implements I
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if(carlLocation != null)
|
if (carlLocation != null)
|
||||||
{
|
{
|
||||||
_carlNpc.setLocation(carlLocation);
|
_carlNpc.setLocation(carlLocation);
|
||||||
}
|
}
|
||||||
@ -405,14 +405,14 @@ public class BonusManager extends MiniClientPlugin<BonusClientData> implements I
|
|||||||
if (event.getType() != UpdateType.TICK)
|
if (event.getType() != UpdateType.TICK)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
_animation.itemClean();
|
||||||
|
|
||||||
if (_canVote)
|
if (_canVote)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!_enabled)
|
if (!_enabled)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
_animation.itemClean();
|
|
||||||
|
|
||||||
if (!_animationRunning)
|
if (!_animationRunning)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -48,13 +48,13 @@ public class AnimationCarl extends Animation
|
|||||||
for (int i = 50; i < 60; i++)
|
for (int i = 50; i < 60; i++)
|
||||||
{
|
{
|
||||||
Item gem = _creeper.getWorld().dropItem(_creeper.getLocation().add(0.5, 1.5, 0.5), ItemStackFactory.Instance.CreateStack(Material.EMERALD, (byte) 0, 1, " " + i));
|
Item gem = _creeper.getWorld().dropItem(_creeper.getLocation().add(0.5, 1.5, 0.5), ItemStackFactory.Instance.CreateStack(Material.EMERALD, (byte) 0, 1, " " + i));
|
||||||
Item coin = _creeper.getWorld().dropItem(_creeper.getLocation().add(0.5, 1.5, 0.5), ItemStackFactory.Instance.CreateStack(Material.DOUBLE_PLANT, (byte) 0, 1, " " + i));
|
Item shard = _creeper.getWorld().dropItem(_creeper.getLocation().add(0.5, 1.5, 0.5), ItemStackFactory.Instance.CreateStack(Material.PRISMARINE_SHARD, (byte) 0, 1, " " + i));
|
||||||
_items.add(gem);
|
_items.add(gem);
|
||||||
_items.add(coin);
|
_items.add(shard);
|
||||||
|
|
||||||
Vector vel = new Vector(Math.sin(i * 9/5d), 0, Math.cos(i * 9/5d));
|
Vector vel = new Vector(Math.sin(i * 9/5d), 0, Math.cos(i * 9/5d));
|
||||||
UtilAction.velocity(gem, vel, Math.abs(Math.sin(i * 12/3000d)), false, 0, 0.2 + Math.abs(Math.cos(i * 12/3000d))*0.6, 1, false);
|
UtilAction.velocity(gem, vel, Math.abs(Math.sin(i * 12/3000d)), false, 0, 0.2 + Math.abs(Math.cos(i * 12/3000d))*0.6, 1, false);
|
||||||
UtilAction.velocity(coin, vel, Math.abs(Math.sin(UtilMath.r(i) * 30/3000d)), false, 0, 0.2 + Math.abs(Math.cos(UtilMath.r(i) * 30/3000d))*0.6, 1, false);
|
UtilAction.velocity(shard, vel, Math.abs(Math.sin(UtilMath.r(i) * 30/3000d)), false, 0, 0.2 + Math.abs(Math.cos(UtilMath.r(i) * 30/3000d))*0.6, 1, false);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -62,11 +62,11 @@ public class AnimationCarl extends Animation
|
|||||||
{
|
{
|
||||||
for (int i = 50; i < 60; i++)
|
for (int i = 50; i < 60; i++)
|
||||||
{
|
{
|
||||||
Item coin = _creeper.getWorld().dropItem(_creeper.getLocation().add(0.5, 1.5, 0.5), ItemStackFactory.Instance.CreateStack(Material.DOUBLE_PLANT, (byte) 0, 1, " " + i));
|
Item shard = _creeper.getWorld().dropItem(_creeper.getLocation().add(0.5, 1.5, 0.5), ItemStackFactory.Instance.CreateStack(Material.PRISMARINE_SHARD, (byte) 0, 1, " " + i));
|
||||||
_items.add(coin);
|
_items.add(shard);
|
||||||
|
|
||||||
Vector vel = new Vector(Math.sin(UtilMath.r(i) * 7/5d), 0, Math.cos(UtilMath.r(i) * 7/5d));
|
Vector vel = new Vector(Math.sin(UtilMath.r(i) * 7/5d), 0, Math.cos(UtilMath.r(i) * 7/5d));
|
||||||
UtilAction.velocity(coin, vel, Math.abs(Math.sin(UtilMath.r(i) * 7/3000d)), false, 0, 0.2 + Math.abs(Math.cos(UtilMath.r(i) * 7/3000d))*0.6, 1, false);
|
UtilAction.velocity(shard, vel, Math.abs(Math.sin(UtilMath.r(i) * 7/3000d)), false, 0, 0.2 + Math.abs(Math.cos(UtilMath.r(i) * 7/3000d))*0.6, 1, false);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -135,12 +135,12 @@ public abstract class CommandBase<PluginType extends MiniPlugin> implements ICom
|
|||||||
return matches;
|
return matches;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected List<String> tabCompletePlayerNames(CommandSender sender, String commandLabel, String[] args)
|
protected List<String> tabCompletePlayerNames(CommandSender sender, String[] args)
|
||||||
{
|
{
|
||||||
return tabCompletePlayerNames(sender, commandLabel, args, t -> true);
|
return tabCompletePlayerNames(sender, args, t -> true);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected List<String> tabCompletePlayerNames(CommandSender sender, String commandLabel, String[] args, Predicate<Player> filter)
|
protected List<String> tabCompletePlayerNames(CommandSender sender, String[] args, Predicate<Player> filter)
|
||||||
{
|
{
|
||||||
if (sender instanceof Player)
|
if (sender instanceof Player)
|
||||||
{
|
{
|
||||||
|
@ -1,23 +1,26 @@
|
|||||||
package mineplex.core.cosmetic.ui.page;
|
package mineplex.core.cosmetic.ui.page;
|
||||||
|
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.Sound;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.inventory.ClickType;
|
||||||
|
|
||||||
import mineplex.core.account.CoreClientManager;
|
import mineplex.core.account.CoreClientManager;
|
||||||
import mineplex.core.common.currency.GlobalCurrency;
|
import mineplex.core.common.currency.GlobalCurrency;
|
||||||
import mineplex.core.common.util.C;
|
import mineplex.core.common.util.C;
|
||||||
import mineplex.core.cosmetic.CosmeticManager;
|
import mineplex.core.cosmetic.CosmeticManager;
|
||||||
import mineplex.core.cosmetic.ui.CosmeticShop;
|
import mineplex.core.cosmetic.ui.CosmeticShop;
|
||||||
import mineplex.core.donation.DonationManager;
|
import mineplex.core.donation.DonationManager;
|
||||||
|
import mineplex.core.gadget.gadgets.outfit.freezesuit.OutfitFreezeSuit;
|
||||||
import mineplex.core.gadget.gadgets.outfit.ravesuit.OutfitRaveSuit;
|
import mineplex.core.gadget.gadgets.outfit.ravesuit.OutfitRaveSuit;
|
||||||
import mineplex.core.gadget.gadgets.outfit.spacesuit.OutfitSpaceSuit;
|
import mineplex.core.gadget.gadgets.outfit.spacesuit.OutfitSpaceSuit;
|
||||||
|
import mineplex.core.gadget.gadgets.outfit.stpatricks.OutfitStPatricksSuit;
|
||||||
import mineplex.core.gadget.types.Gadget;
|
import mineplex.core.gadget.types.Gadget;
|
||||||
import mineplex.core.gadget.types.GadgetType;
|
import mineplex.core.gadget.types.GadgetType;
|
||||||
import mineplex.core.gadget.types.ItemGadget;
|
import mineplex.core.gadget.types.ItemGadget;
|
||||||
import mineplex.core.gadget.types.OutfitGadget;
|
import mineplex.core.gadget.types.OutfitGadget;
|
||||||
import mineplex.core.shop.item.IButton;
|
import mineplex.core.shop.item.IButton;
|
||||||
import mineplex.core.shop.item.ShopItem;
|
import mineplex.core.shop.item.ShopItem;
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.Sound;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.event.inventory.ClickType;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by shaun on 14-09-15.
|
* Created by shaun on 14-09-15.
|
||||||
@ -42,11 +45,13 @@ public class CostumePage extends GadgetPage
|
|||||||
|
|
||||||
OutfitGadget outfitGadget = ((OutfitGadget) gadget);
|
OutfitGadget outfitGadget = ((OutfitGadget) gadget);
|
||||||
|
|
||||||
int offset = 0;
|
int offset;
|
||||||
|
|
||||||
if (gadget instanceof OutfitRaveSuit) offset = 0;
|
if (gadget instanceof OutfitRaveSuit) offset = 0;
|
||||||
else if (gadget instanceof OutfitSpaceSuit) offset = 1;
|
else if (gadget instanceof OutfitSpaceSuit) offset = 1;
|
||||||
else offset = 2;
|
else if (gadget instanceof OutfitFreezeSuit) offset = 2;
|
||||||
|
else if (gadget instanceof OutfitStPatricksSuit) offset = 3;
|
||||||
|
else offset = 4;
|
||||||
|
|
||||||
slot = offset + 1 + 18; //1 buffer to left, 18 = 2 lines down
|
slot = offset + 1 + 18; //1 buffer to left, 18 = 2 lines down
|
||||||
|
|
||||||
|
@ -22,6 +22,8 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
|
|||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.inventory.ClickType;
|
import org.bukkit.event.inventory.ClickType;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
|
||||||
import mineplex.core.account.CoreClientManager;
|
import mineplex.core.account.CoreClientManager;
|
||||||
import mineplex.core.common.currency.GlobalCurrency;
|
import mineplex.core.common.currency.GlobalCurrency;
|
||||||
@ -165,9 +167,13 @@ public class PetPage extends ShopPageBase<CosmeticManager, CosmeticShop>
|
|||||||
itemLore.add(C.cBlack);
|
itemLore.add(C.cBlack);
|
||||||
itemLore.add(C.cGreen + "Click to Disable");
|
itemLore.add(C.cGreen + "Click to Disable");
|
||||||
|
|
||||||
addButton(slot, new ShopItem(pet.getMaterial(), pet.getData(),
|
ItemStack item = pet.getDisplayItem();
|
||||||
pet.getName() + " (" + C.cWhite + petName + C.cGreen + ")",
|
ItemMeta itemMeta = item.getItemMeta();
|
||||||
itemLore.toArray(new String[itemLore.size()]), 1, false, false), new DeactivatePetButton(this, getPlugin().getPetManager()));
|
itemMeta.setDisplayName(C.cGreen + C.Bold + pet.getName() + C.cGreen + " (" + C.cWhite + petName + C.cGreen + ")");
|
||||||
|
itemMeta.setLore(itemLore);
|
||||||
|
item.setItemMeta(itemMeta);
|
||||||
|
|
||||||
|
addButton(slot, new ShopItem(item, false, false).hideInfo(), new DeactivatePetButton(this, getPlugin().getPetManager()));
|
||||||
|
|
||||||
addGlow(slot);
|
addGlow(slot);
|
||||||
}
|
}
|
||||||
@ -175,29 +181,14 @@ public class PetPage extends ShopPageBase<CosmeticManager, CosmeticShop>
|
|||||||
{
|
{
|
||||||
itemLore.add(C.cBlack);
|
itemLore.add(C.cBlack);
|
||||||
itemLore.add(C.cGreen + "Click to Enable");
|
itemLore.add(C.cGreen + "Click to Enable");
|
||||||
/*
|
|
||||||
ItemStack petItem = ItemStackFactory.Instance.CreateStack(pet.getMaterial(), pet.getData(), 1,
|
|
||||||
pet.getName() + " (" + C.cWhite + petName + C.cGreen + ")", itemLore);
|
|
||||||
|
|
||||||
IButton iButton = new ActivatePetButton(pet, this);
|
ItemStack item = pet.getDisplayItem();
|
||||||
|
ItemMeta itemMeta = item.getItemMeta();
|
||||||
|
itemMeta.setDisplayName(C.cGreen + C.Bold + pet.getName() + C.cGreen + " (" + C.cWhite + petName + C.cGreen + ")");
|
||||||
|
itemMeta.setLore(itemLore);
|
||||||
|
item.setItemMeta(itemMeta);
|
||||||
|
|
||||||
if (pet.equals(PetType.SHULKER))
|
addButton(slot, new ShopItem(item, false, false).hideInfo(), new ActivatePetButton(pet, this));
|
||||||
{
|
|
||||||
petItem = UtilItem.getVersionSpecificItem(_player, UtilPlayer.PlayerVersion._1_9, petItem);
|
|
||||||
if (petItem.getType().equals(Material.BARRIER))
|
|
||||||
{
|
|
||||||
iButton = null;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Does not set the item stack yet
|
|
||||||
//petItem.setType(Material.getMaterial(201));
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
|
|
||||||
addButton(slot, new ShopItem(pet.getMaterial(), pet.getData(),
|
|
||||||
pet.getName() + " (" + C.cWhite + petName + C.cGreen + ")",
|
|
||||||
itemLore.toArray(new String[itemLore.size()]), 1, false, false), new ActivatePetButton(pet, this));
|
|
||||||
//addButton(slot, new ShopItem(petItem, false, false), iButton);
|
//addButton(slot, new ShopItem(petItem, false, false), iButton);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -47,6 +47,6 @@ public class AddFriend extends CommandBase<FriendManager>
|
|||||||
@Override
|
@Override
|
||||||
public List<String> onTabComplete(CommandSender sender, String commandLabel, String[] args)
|
public List<String> onTabComplete(CommandSender sender, String commandLabel, String[] args)
|
||||||
{
|
{
|
||||||
return tabCompletePlayerNames(sender, commandLabel, args);
|
return tabCompletePlayerNames(sender, args);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,8 +2,10 @@ package mineplex.core.gadget;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.function.Predicate;
|
import java.util.function.Predicate;
|
||||||
@ -28,7 +30,6 @@ import mineplex.core.account.CoreClientManager;
|
|||||||
import mineplex.core.achievement.AchievementManager;
|
import mineplex.core.achievement.AchievementManager;
|
||||||
import mineplex.core.blockrestore.BlockRestore;
|
import mineplex.core.blockrestore.BlockRestore;
|
||||||
import mineplex.core.common.util.F;
|
import mineplex.core.common.util.F;
|
||||||
import mineplex.core.common.util.NautHashMap;
|
|
||||||
import mineplex.core.common.util.UtilEnt;
|
import mineplex.core.common.util.UtilEnt;
|
||||||
import mineplex.core.common.util.UtilMath;
|
import mineplex.core.common.util.UtilMath;
|
||||||
import mineplex.core.common.util.UtilPlayer;
|
import mineplex.core.common.util.UtilPlayer;
|
||||||
@ -153,6 +154,10 @@ import mineplex.core.gadget.gadgets.outfit.spacesuit.OutfitSpaceSuitBoots;
|
|||||||
import mineplex.core.gadget.gadgets.outfit.spacesuit.OutfitSpaceSuitChestplate;
|
import mineplex.core.gadget.gadgets.outfit.spacesuit.OutfitSpaceSuitChestplate;
|
||||||
import mineplex.core.gadget.gadgets.outfit.spacesuit.OutfitSpaceSuitHelmet;
|
import mineplex.core.gadget.gadgets.outfit.spacesuit.OutfitSpaceSuitHelmet;
|
||||||
import mineplex.core.gadget.gadgets.outfit.spacesuit.OutfitSpaceSuitLeggings;
|
import mineplex.core.gadget.gadgets.outfit.spacesuit.OutfitSpaceSuitLeggings;
|
||||||
|
import mineplex.core.gadget.gadgets.outfit.stpatricks.OutfitStPatricksBoots;
|
||||||
|
import mineplex.core.gadget.gadgets.outfit.stpatricks.OutfitStPatricksChestplate;
|
||||||
|
import mineplex.core.gadget.gadgets.outfit.stpatricks.OutfitStPatricksHat;
|
||||||
|
import mineplex.core.gadget.gadgets.outfit.stpatricks.OutfitStPatricksLeggings;
|
||||||
import mineplex.core.gadget.gadgets.outfit.windupsuit.OutfitWindUpSuitBoosterManager;
|
import mineplex.core.gadget.gadgets.outfit.windupsuit.OutfitWindUpSuitBoosterManager;
|
||||||
import mineplex.core.gadget.gadgets.particle.ParticleChristmasTree;
|
import mineplex.core.gadget.gadgets.particle.ParticleChristmasTree;
|
||||||
import mineplex.core.gadget.gadgets.particle.ParticleCoalFumes;
|
import mineplex.core.gadget.gadgets.particle.ParticleCoalFumes;
|
||||||
@ -179,6 +184,7 @@ import mineplex.core.gadget.gadgets.particle.vampire.ParticleBlood;
|
|||||||
import mineplex.core.gadget.gadgets.particle.wisdom.ParticleEnchant;
|
import mineplex.core.gadget.gadgets.particle.wisdom.ParticleEnchant;
|
||||||
import mineplex.core.gadget.gadgets.taunts.BlowAKissTaunt;
|
import mineplex.core.gadget.gadgets.taunts.BlowAKissTaunt;
|
||||||
import mineplex.core.gadget.gadgets.taunts.EternalTaunt;
|
import mineplex.core.gadget.gadgets.taunts.EternalTaunt;
|
||||||
|
import mineplex.core.gadget.gadgets.taunts.RainbowTaunt;
|
||||||
import mineplex.core.gadget.gadgets.wineffect.WinEffectBabyChicken;
|
import mineplex.core.gadget.gadgets.wineffect.WinEffectBabyChicken;
|
||||||
import mineplex.core.gadget.gadgets.wineffect.WinEffectFlames;
|
import mineplex.core.gadget.gadgets.wineffect.WinEffectFlames;
|
||||||
import mineplex.core.gadget.gadgets.wineffect.WinEffectHalloween;
|
import mineplex.core.gadget.gadgets.wineffect.WinEffectHalloween;
|
||||||
@ -206,6 +212,7 @@ import mineplex.core.gadget.set.SetWisdom;
|
|||||||
import mineplex.core.gadget.set.suits.SetFreezeSuit;
|
import mineplex.core.gadget.set.suits.SetFreezeSuit;
|
||||||
import mineplex.core.gadget.set.suits.SetRaveSuit;
|
import mineplex.core.gadget.set.suits.SetRaveSuit;
|
||||||
import mineplex.core.gadget.set.suits.SetSpaceSuit;
|
import mineplex.core.gadget.set.suits.SetSpaceSuit;
|
||||||
|
import mineplex.core.gadget.set.suits.SetStPatricksSuit;
|
||||||
import mineplex.core.gadget.types.ArrowEffectGadget;
|
import mineplex.core.gadget.types.ArrowEffectGadget;
|
||||||
import mineplex.core.gadget.types.BalloonGadget;
|
import mineplex.core.gadget.types.BalloonGadget;
|
||||||
import mineplex.core.gadget.types.DeathEffectGadget;
|
import mineplex.core.gadget.types.DeathEffectGadget;
|
||||||
@ -253,10 +260,10 @@ public class GadgetManager extends MiniPlugin
|
|||||||
private TreasureManager _treasureManager;
|
private TreasureManager _treasureManager;
|
||||||
private SoulManager _soulManager;
|
private SoulManager _soulManager;
|
||||||
|
|
||||||
private NautHashMap<GadgetType, List<Gadget>> _gadgets;
|
private Map<GadgetType, List<Gadget>> _gadgets;
|
||||||
|
|
||||||
private final NautHashMap<Player, Long> _lastMove = new NautHashMap<>();
|
private final Map<Player, Long> _lastMove = new HashMap<>();
|
||||||
private final NautHashMap<Player, NautHashMap<GadgetType, Gadget>> _playerActiveGadgetMap = new NautHashMap<>();
|
private final Map<Player, Map<GadgetType, Gadget>> _playerActiveGadgetMap = new HashMap<>();
|
||||||
|
|
||||||
private final HashSet<GadgetSet> _sets = new HashSet<>();
|
private final HashSet<GadgetSet> _sets = new HashSet<>();
|
||||||
|
|
||||||
@ -315,8 +322,11 @@ public class GadgetManager extends MiniPlugin
|
|||||||
addSet(new SetRaveSuit(this));
|
addSet(new SetRaveSuit(this));
|
||||||
addSet(new SetSpaceSuit(this));
|
addSet(new SetSpaceSuit(this));
|
||||||
addSet(new SetFreezeSuit(this));
|
addSet(new SetFreezeSuit(this));
|
||||||
|
addSet(new SetStPatricksSuit(this));
|
||||||
// Hidden in this update
|
// Hidden in this update
|
||||||
//addSet(new SetWindUpSuit(this));
|
//addSet(new SetWindUpSuit(this));
|
||||||
|
|
||||||
|
// Sets
|
||||||
addSet(new SetParty(this));
|
addSet(new SetParty(this));
|
||||||
addSet(new SetCupidsLove(this));
|
addSet(new SetCupidsLove(this));
|
||||||
addSet(new SetEmerald(this));
|
addSet(new SetEmerald(this));
|
||||||
@ -330,7 +340,7 @@ public class GadgetManager extends MiniPlugin
|
|||||||
|
|
||||||
private void createGadgets()
|
private void createGadgets()
|
||||||
{
|
{
|
||||||
_gadgets = new NautHashMap<>();
|
_gadgets = new HashMap<>();
|
||||||
|
|
||||||
// Items
|
// Items
|
||||||
addGadget(new ItemEtherealPearl(this));
|
addGadget(new ItemEtherealPearl(this));
|
||||||
@ -373,6 +383,11 @@ public class GadgetManager extends MiniPlugin
|
|||||||
addGadget(new OutfitFreezeSuitLeggings(this));
|
addGadget(new OutfitFreezeSuitLeggings(this));
|
||||||
addGadget(new OutfitFreezeSuitBoots(this));
|
addGadget(new OutfitFreezeSuitBoots(this));
|
||||||
|
|
||||||
|
addGadget(new OutfitStPatricksHat(this));
|
||||||
|
addGadget(new OutfitStPatricksChestplate(this));
|
||||||
|
addGadget(new OutfitStPatricksLeggings(this));
|
||||||
|
addGadget(new OutfitStPatricksBoots(this));
|
||||||
|
|
||||||
addGadget(new OutfitTeam(this, "Team Helmet", -1, ArmorSlot.HELMET, Material.LEATHER_HELMET, (byte)0));
|
addGadget(new OutfitTeam(this, "Team Helmet", -1, ArmorSlot.HELMET, Material.LEATHER_HELMET, (byte)0));
|
||||||
addGadget(new OutfitTeam(this, "Team Shirt", -1, ArmorSlot.CHEST, Material.LEATHER_CHESTPLATE, (byte)0));
|
addGadget(new OutfitTeam(this, "Team Shirt", -1, ArmorSlot.CHEST, Material.LEATHER_CHESTPLATE, (byte)0));
|
||||||
addGadget(new OutfitTeam(this, "Team Pants", -1, ArmorSlot.LEGS, Material.LEATHER_LEGGINGS, (byte)0));
|
addGadget(new OutfitTeam(this, "Team Pants", -1, ArmorSlot.LEGS, Material.LEATHER_LEGGINGS, (byte)0));
|
||||||
@ -561,6 +576,7 @@ public class GadgetManager extends MiniPlugin
|
|||||||
// TAUNTS!!!
|
// TAUNTS!!!
|
||||||
addGadget(new EternalTaunt(this));
|
addGadget(new EternalTaunt(this));
|
||||||
addGadget(new BlowAKissTaunt(this));
|
addGadget(new BlowAKissTaunt(this));
|
||||||
|
addGadget(new RainbowTaunt(this));
|
||||||
|
|
||||||
// Gem Hunters Mounts
|
// Gem Hunters Mounts
|
||||||
for (MountType mount : MountType.values())
|
for (MountType mount : MountType.values())
|
||||||
@ -1035,7 +1051,7 @@ public class GadgetManager extends MiniPlugin
|
|||||||
public void setActive(Player player, Gadget gadget)
|
public void setActive(Player player, Gadget gadget)
|
||||||
{
|
{
|
||||||
if (!_playerActiveGadgetMap.containsKey(player))
|
if (!_playerActiveGadgetMap.containsKey(player))
|
||||||
_playerActiveGadgetMap.put(player, new NautHashMap<GadgetType, Gadget>());
|
_playerActiveGadgetMap.put(player, new HashMap<>());
|
||||||
|
|
||||||
_playerActiveGadgetMap.get(player).put(gadget.getGadgetType(), gadget);
|
_playerActiveGadgetMap.get(player).put(gadget.getGadgetType(), gadget);
|
||||||
}
|
}
|
||||||
@ -1043,7 +1059,7 @@ public class GadgetManager extends MiniPlugin
|
|||||||
public Gadget getActive(Player player, GadgetType gadgetType)
|
public Gadget getActive(Player player, GadgetType gadgetType)
|
||||||
{
|
{
|
||||||
if (!_playerActiveGadgetMap.containsKey(player))
|
if (!_playerActiveGadgetMap.containsKey(player))
|
||||||
_playerActiveGadgetMap.put(player, new NautHashMap<GadgetType, Gadget>());
|
_playerActiveGadgetMap.put(player, new HashMap<>());
|
||||||
|
|
||||||
return _playerActiveGadgetMap.get(player).get(gadgetType);
|
return _playerActiveGadgetMap.get(player).get(gadgetType);
|
||||||
}
|
}
|
||||||
@ -1051,7 +1067,7 @@ public class GadgetManager extends MiniPlugin
|
|||||||
public void removeActive(Player player, Gadget gadget)
|
public void removeActive(Player player, Gadget gadget)
|
||||||
{
|
{
|
||||||
if (!_playerActiveGadgetMap.containsKey(player))
|
if (!_playerActiveGadgetMap.containsKey(player))
|
||||||
_playerActiveGadgetMap.put(player, new NautHashMap<GadgetType, Gadget>());
|
_playerActiveGadgetMap.put(player, new HashMap<>());
|
||||||
|
|
||||||
_playerActiveGadgetMap.get(player).remove(gadget.getGadgetType());
|
_playerActiveGadgetMap.get(player).remove(gadget.getGadgetType());
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,15 @@
|
|||||||
|
package mineplex.core.gadget.gadgets.outfit.stpatricks;
|
||||||
|
|
||||||
|
import org.bukkit.Material;
|
||||||
|
|
||||||
|
import mineplex.core.gadget.GadgetManager;
|
||||||
|
|
||||||
|
public class OutfitStPatricksBoots extends OutfitStPatricksSuit
|
||||||
|
{
|
||||||
|
|
||||||
|
public OutfitStPatricksBoots(GadgetManager manager)
|
||||||
|
{
|
||||||
|
super(manager, "St Patrick's Boots", -18, ArmorSlot.BOOTS, Material.LEATHER_BOOTS, (byte) 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package mineplex.core.gadget.gadgets.outfit.stpatricks;
|
||||||
|
|
||||||
|
import org.bukkit.Material;
|
||||||
|
|
||||||
|
import mineplex.core.gadget.GadgetManager;
|
||||||
|
|
||||||
|
public class OutfitStPatricksChestplate extends OutfitStPatricksSuit
|
||||||
|
{
|
||||||
|
|
||||||
|
public OutfitStPatricksChestplate(GadgetManager manager)
|
||||||
|
{
|
||||||
|
super(manager, "St Patrick's Chest", -18, ArmorSlot.CHEST, Material.LEATHER_CHESTPLATE, (byte) 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package mineplex.core.gadget.gadgets.outfit.stpatricks;
|
||||||
|
|
||||||
|
import org.bukkit.Material;
|
||||||
|
|
||||||
|
import mineplex.core.gadget.GadgetManager;
|
||||||
|
|
||||||
|
public class OutfitStPatricksHat extends OutfitStPatricksSuit
|
||||||
|
{
|
||||||
|
|
||||||
|
public OutfitStPatricksHat(GadgetManager manager)
|
||||||
|
{
|
||||||
|
super(manager, "St Patrick's Hat", -18, ArmorSlot.HELMET, Material.LEATHER_HELMET, (byte) 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package mineplex.core.gadget.gadgets.outfit.stpatricks;
|
||||||
|
|
||||||
|
import org.bukkit.Material;
|
||||||
|
|
||||||
|
import mineplex.core.gadget.GadgetManager;
|
||||||
|
|
||||||
|
public class OutfitStPatricksLeggings extends OutfitStPatricksSuit
|
||||||
|
{
|
||||||
|
|
||||||
|
public OutfitStPatricksLeggings(GadgetManager manager)
|
||||||
|
{
|
||||||
|
super(manager, "St Patrick's Pants", -18, ArmorSlot.LEGS, Material.LEATHER_LEGGINGS, (byte) 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,117 @@
|
|||||||
|
package mineplex.core.gadget.gadgets.outfit.stpatricks;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Iterator;
|
||||||
|
|
||||||
|
import org.bukkit.Color;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.entity.Item;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.player.PlayerPickupItemEvent;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
import org.bukkit.inventory.meta.LeatherArmorMeta;
|
||||||
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
|
import mineplex.core.common.util.C;
|
||||||
|
import mineplex.core.common.util.LineFormat;
|
||||||
|
import mineplex.core.common.util.UtilMath;
|
||||||
|
import mineplex.core.common.util.UtilText;
|
||||||
|
import mineplex.core.gadget.GadgetManager;
|
||||||
|
import mineplex.core.gadget.types.OutfitGadget;
|
||||||
|
import mineplex.core.updater.UpdateType;
|
||||||
|
import mineplex.core.updater.event.UpdateEvent;
|
||||||
|
|
||||||
|
public class OutfitStPatricksSuit extends OutfitGadget
|
||||||
|
{
|
||||||
|
|
||||||
|
private HashSet<Item> _items = new HashSet<>();
|
||||||
|
|
||||||
|
public OutfitStPatricksSuit(GadgetManager manager, String name, int cost, OutfitGadget.ArmorSlot slot, Material mat, byte data)
|
||||||
|
{
|
||||||
|
super(manager, name, UtilText.splitLinesToArray(new String[]{C.cGray + "Wherever a Leprechaun goes he leaves behind a trail of gold and a hint of spring."}, LineFormat.LORE), cost, slot, mat, data);
|
||||||
|
setColor(Color.fromRGB(0, 153, 0));
|
||||||
|
ItemStack displayItem = new ItemStack(mat, 1, data);
|
||||||
|
if (displayItem.getItemMeta() instanceof LeatherArmorMeta)
|
||||||
|
{
|
||||||
|
LeatherArmorMeta leatherArmorMeta = (LeatherArmorMeta) displayItem.getItemMeta();
|
||||||
|
leatherArmorMeta.setColor(Color.fromRGB(0, 153, 0));
|
||||||
|
displayItem.setItemMeta(leatherArmorMeta);
|
||||||
|
}
|
||||||
|
setDisplayItem(displayItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void enableCustom(Player player, boolean message)
|
||||||
|
{
|
||||||
|
applyArmor(player, message);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void disableCustom(Player player, boolean message)
|
||||||
|
{
|
||||||
|
removeArmor(player, message);
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onUpdate(UpdateEvent event)
|
||||||
|
{
|
||||||
|
// Prevents event running 4 times
|
||||||
|
if (getSlot() != ArmorSlot.HELMET)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (event.getType() == UpdateType.TICK)
|
||||||
|
cleanItems();
|
||||||
|
|
||||||
|
if (event.getType() == UpdateType.FASTER)
|
||||||
|
{
|
||||||
|
for (Player player : getActive())
|
||||||
|
{
|
||||||
|
if (setActive(player))
|
||||||
|
{
|
||||||
|
ItemStack itemStack = new ItemStack(Material.GOLD_INGOT);
|
||||||
|
ItemMeta itemMeta = itemStack.getItemMeta();
|
||||||
|
itemMeta.setDisplayName(player.getName() + "DROPPED" + System.currentTimeMillis() + UtilMath.random.nextInt());
|
||||||
|
itemStack.setItemMeta(itemMeta);
|
||||||
|
Item gold = player.getWorld().dropItem(player.getLocation().add(0.5, 1.5, 0.5), itemStack);
|
||||||
|
_items.add(gold);
|
||||||
|
gold.setVelocity(new Vector((Math.random() - 0.5) * 0.3, Math.random() - 0.4, (Math.random() - 0.5) * 0.3));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onItemPickup(PlayerPickupItemEvent event)
|
||||||
|
{
|
||||||
|
// Prevents event running 4 times
|
||||||
|
if (getSlot() != ArmorSlot.HELMET)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (_items.contains(event.getItem()))
|
||||||
|
{
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean setActive(Player player)
|
||||||
|
{
|
||||||
|
return getSet() != null && getSet().isActive(player);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void cleanItems()
|
||||||
|
{
|
||||||
|
Iterator<Item> it = _items.iterator();
|
||||||
|
while (it.hasNext())
|
||||||
|
{
|
||||||
|
Item item = it.next();
|
||||||
|
if (item.getTicksLived() >= 20)
|
||||||
|
{
|
||||||
|
item.remove();
|
||||||
|
it.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,62 @@
|
|||||||
|
package mineplex.core.gadget.gadgets.taunts;
|
||||||
|
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
|
import mineplex.core.common.util.C;
|
||||||
|
import mineplex.core.common.util.LineFormat;
|
||||||
|
import mineplex.core.common.util.UtilText;
|
||||||
|
import mineplex.core.gadget.GadgetManager;
|
||||||
|
import mineplex.core.gadget.types.TauntGadget;
|
||||||
|
import mineplex.core.particleeffects.EffectLocation;
|
||||||
|
import mineplex.core.particleeffects.RainbowTauntEffect;
|
||||||
|
import mineplex.core.recharge.Recharge;
|
||||||
|
|
||||||
|
public class RainbowTaunt extends TauntGadget
|
||||||
|
{
|
||||||
|
|
||||||
|
private static final int COOLDOWN = 30000;
|
||||||
|
private static final int PVP_COOLDOWN = 10000;
|
||||||
|
|
||||||
|
public RainbowTaunt(GadgetManager manager)
|
||||||
|
{
|
||||||
|
super(manager, "Rainbow Taunt", UtilText.splitLinesToArray(new String[]{C.cGray + "At the end of every Rainbow they say there is a pot of Gold.", C.cWhite + "Type /taunt in game to use this taunt."},
|
||||||
|
LineFormat.LORE), -18, Material.WOOL, (byte) 11);
|
||||||
|
setCanPlayWithPvp(false);
|
||||||
|
setPvpCooldown(PVP_COOLDOWN);
|
||||||
|
setShouldPlay(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStart(Player player)
|
||||||
|
{
|
||||||
|
if (!Recharge.Instance.use(player, getName(), COOLDOWN, true, false, "Cosmetics"))
|
||||||
|
return;
|
||||||
|
|
||||||
|
Vector dir = player.getLocation().getDirection();
|
||||||
|
Vector sideA = dir.clone().setX(-dir.getZ()).setZ(dir.getX());
|
||||||
|
Vector sideB = dir.clone().setX(dir.getZ()).setZ(-dir.getX());
|
||||||
|
|
||||||
|
Location start = player.getLocation().clone().add(sideA.multiply(4).toLocation(player.getWorld()));
|
||||||
|
Location end = player.getLocation().clone().add(sideB.multiply(4).toLocation(player.getWorld()));
|
||||||
|
|
||||||
|
RainbowTauntEffect rainbowTauntEffect = new RainbowTauntEffect(start, Manager.getPlugin());
|
||||||
|
rainbowTauntEffect.setTargetLocation(new EffectLocation(end));
|
||||||
|
rainbowTauntEffect.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPlay(Player player)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFinish(Player player)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,22 @@
|
|||||||
|
package mineplex.core.gadget.set.suits;
|
||||||
|
|
||||||
|
import mineplex.core.gadget.GadgetManager;
|
||||||
|
import mineplex.core.gadget.gadgets.outfit.stpatricks.OutfitStPatricksBoots;
|
||||||
|
import mineplex.core.gadget.gadgets.outfit.stpatricks.OutfitStPatricksChestplate;
|
||||||
|
import mineplex.core.gadget.gadgets.outfit.stpatricks.OutfitStPatricksHat;
|
||||||
|
import mineplex.core.gadget.gadgets.outfit.stpatricks.OutfitStPatricksLeggings;
|
||||||
|
import mineplex.core.gadget.types.GadgetSet;
|
||||||
|
|
||||||
|
public class SetStPatricksSuit extends GadgetSet
|
||||||
|
{
|
||||||
|
|
||||||
|
public SetStPatricksSuit(GadgetManager manager)
|
||||||
|
{
|
||||||
|
super(manager, "St Patrick's Suit", "Placeholder",
|
||||||
|
manager.getGadget(OutfitStPatricksHat.class),
|
||||||
|
manager.getGadget(OutfitStPatricksChestplate.class),
|
||||||
|
manager.getGadget(OutfitStPatricksLeggings.class),
|
||||||
|
manager.getGadget(OutfitStPatricksBoots.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -70,6 +70,7 @@ public abstract class TauntGadget extends Gadget
|
|||||||
@Override
|
@Override
|
||||||
public void disableCustom(Player player, boolean message)
|
public void disableCustom(Player player, boolean message)
|
||||||
{
|
{
|
||||||
|
super.disableCustom(player, message);
|
||||||
finish(player);
|
finish(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,6 +35,6 @@ public class MessageAdminCommand extends CommandBase<MessageManager>
|
|||||||
@Override
|
@Override
|
||||||
public List<String> onTabComplete(CommandSender sender, String commandLabel, String[] args)
|
public List<String> onTabComplete(CommandSender sender, String commandLabel, String[] args)
|
||||||
{
|
{
|
||||||
return tabCompletePlayerNames(sender, commandLabel, args);
|
return tabCompletePlayerNames(sender, args);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -45,6 +45,6 @@ public class MessageCommand extends CommandBase<MessageManager>
|
|||||||
@Override
|
@Override
|
||||||
public List<String> onTabComplete(CommandSender sender, String commandLabel, String[] args)
|
public List<String> onTabComplete(CommandSender sender, String commandLabel, String[] args)
|
||||||
{
|
{
|
||||||
return tabCompletePlayerNames(sender, commandLabel, args);
|
return tabCompletePlayerNames(sender, args);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -35,6 +35,7 @@ import mineplex.core.mount.types.MountMule;
|
|||||||
import mineplex.core.mount.types.MountNightmareSteed;
|
import mineplex.core.mount.types.MountNightmareSteed;
|
||||||
import mineplex.core.mount.types.MountSlime;
|
import mineplex.core.mount.types.MountSlime;
|
||||||
import mineplex.core.mount.types.MountSpider;
|
import mineplex.core.mount.types.MountSpider;
|
||||||
|
import mineplex.core.mount.types.MountStPatricksHorse;
|
||||||
import mineplex.core.mount.types.MountTitan;
|
import mineplex.core.mount.types.MountTitan;
|
||||||
import mineplex.core.mount.types.MountUndead;
|
import mineplex.core.mount.types.MountUndead;
|
||||||
import mineplex.core.mount.types.MountValentinesSheep;
|
import mineplex.core.mount.types.MountValentinesSheep;
|
||||||
@ -48,7 +49,7 @@ public class MountManager extends MiniPlugin
|
|||||||
private DisguiseManager _disguiseManager;
|
private DisguiseManager _disguiseManager;
|
||||||
|
|
||||||
private List<Mount<?>> _types;
|
private List<Mount<?>> _types;
|
||||||
private NautHashMap<Player, Mount<?>> _playerActiveMountMap = new NautHashMap<Player, Mount<?>>();
|
private NautHashMap<Player, Mount<?>> _playerActiveMountMap = new NautHashMap<>();
|
||||||
|
|
||||||
public MountManager(JavaPlugin plugin, CoreClientManager clientManager, DonationManager donationManager, BlockRestore blockRestore, DisguiseManager disguiseManager)
|
public MountManager(JavaPlugin plugin, CoreClientManager clientManager, DonationManager donationManager, BlockRestore blockRestore, DisguiseManager disguiseManager)
|
||||||
{
|
{
|
||||||
@ -79,10 +80,10 @@ public class MountManager extends MiniPlugin
|
|||||||
_types.add(new MountValentinesSheep(this));
|
_types.add(new MountValentinesSheep(this));
|
||||||
_types.add(new MountFreedomHorse(this));
|
_types.add(new MountFreedomHorse(this));
|
||||||
_types.add(new MountNightmareSteed(this));
|
_types.add(new MountNightmareSteed(this));
|
||||||
// Hidden in this update
|
|
||||||
_types.add(new MountChicken(this));
|
_types.add(new MountChicken(this));
|
||||||
_types.add(new MountCake(this));
|
_types.add(new MountCake(this));
|
||||||
_types.add(new MountLoveTrain(this));
|
_types.add(new MountLoveTrain(this));
|
||||||
|
_types.add(new MountStPatricksHorse(this));
|
||||||
//_types.add(new MountSheep(this));
|
//_types.add(new MountSheep(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,115 @@
|
|||||||
|
package mineplex.core.mount.types;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.entity.Horse;
|
||||||
|
import org.bukkit.entity.Item;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.entity.HorseJumpEvent;
|
||||||
|
import org.bukkit.event.player.PlayerPickupItemEvent;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import mineplex.core.common.util.C;
|
||||||
|
import mineplex.core.common.util.LineFormat;
|
||||||
|
import mineplex.core.common.util.UtilText;
|
||||||
|
import mineplex.core.mount.HorseMount;
|
||||||
|
import mineplex.core.mount.MountManager;
|
||||||
|
import mineplex.core.mount.SingleEntityMountData;
|
||||||
|
import mineplex.core.particleeffects.RainbowTrailEffect;
|
||||||
|
import mineplex.core.recharge.Recharge;
|
||||||
|
import mineplex.core.updater.UpdateType;
|
||||||
|
import mineplex.core.updater.event.UpdateEvent;
|
||||||
|
|
||||||
|
public class MountStPatricksHorse extends HorseMount
|
||||||
|
{
|
||||||
|
|
||||||
|
private HashSet<Item> _items = new HashSet<>();
|
||||||
|
private Map<SingleEntityMountData<Horse>, RainbowTrailEffect> _trailMap = new HashMap<>();
|
||||||
|
|
||||||
|
public MountStPatricksHorse(MountManager manager)
|
||||||
|
{
|
||||||
|
super(manager, "St Patrick's Mount",
|
||||||
|
UtilText.splitLinesToArray(new String[]{C.cGray + "You know the cow that jumped over the moon? Total show off."}, LineFormat.LORE),
|
||||||
|
Material.CAULDRON_ITEM, (byte) 0, -7, Horse.Color.WHITE, Horse.Style.WHITE, Horse.Variant.HORSE, 1, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void enableCustom(Player player)
|
||||||
|
{
|
||||||
|
super.enableCustom(player);
|
||||||
|
SingleEntityMountData<Horse> horseData = getActive().get(player);
|
||||||
|
horseData.getEntity().getInventory().setArmor(new ItemStack(Material.GOLD_BARDING));
|
||||||
|
_trailMap.put(horseData, new RainbowTrailEffect(horseData.getEntity(), Manager.getPlugin(), _items));
|
||||||
|
_trailMap.get(horseData).start();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void disable(Player player)
|
||||||
|
{
|
||||||
|
super.disable(player);
|
||||||
|
List<SingleEntityMountData<Horse>> toRemove = new ArrayList<>();
|
||||||
|
for (SingleEntityMountData<Horse> horseData : _trailMap.keySet())
|
||||||
|
{
|
||||||
|
if (horseData.getOwner().equals(player))
|
||||||
|
toRemove.add(horseData);
|
||||||
|
}
|
||||||
|
for (SingleEntityMountData<Horse> horseData : toRemove)
|
||||||
|
{
|
||||||
|
_trailMap.get(horseData).stop();
|
||||||
|
_trailMap.remove(horseData);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void horseJump(HorseJumpEvent event)
|
||||||
|
{
|
||||||
|
for (SingleEntityMountData<Horse> horseData : _trailMap.keySet())
|
||||||
|
{
|
||||||
|
if (horseData.getEntity().equals(event.getEntity()))
|
||||||
|
{
|
||||||
|
if (Recharge.Instance.use(horseData.getOwner(), getName(), 2500, false, false, "Cosmetics"))
|
||||||
|
{
|
||||||
|
_trailMap.get(horseData).setJumping(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onItemPickup(PlayerPickupItemEvent event)
|
||||||
|
{
|
||||||
|
if (_items.contains(event.getItem()))
|
||||||
|
{
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onUpdate(UpdateEvent event)
|
||||||
|
{
|
||||||
|
if (event.getType() == UpdateType.TICK)
|
||||||
|
cleanItems();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void cleanItems()
|
||||||
|
{
|
||||||
|
Iterator<Item> it = _items.iterator();
|
||||||
|
while (it.hasNext())
|
||||||
|
{
|
||||||
|
Item item = it.next();
|
||||||
|
if (item.getTicksLived() >= 20)
|
||||||
|
{
|
||||||
|
item.remove();
|
||||||
|
it.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,33 @@
|
|||||||
|
package mineplex.core.particleeffects;
|
||||||
|
|
||||||
|
import java.awt.Color;
|
||||||
|
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
|
import mineplex.core.common.shape.ShapeWings;
|
||||||
|
import mineplex.core.common.util.UtilParticle;
|
||||||
|
|
||||||
|
public class CloverEffect extends Effect
|
||||||
|
{
|
||||||
|
|
||||||
|
private ShapeWings _cloverBlack = new ShapeWings(UtilParticle.ParticleType.RED_DUST.particleName, new Vector(1, 1, 1), 1, 0, '#', ShapeWings.DEFAULT_ROTATION, ShapeWings.FOUR_LEAF_CLOVER);
|
||||||
|
private ShapeWings _cloverDarkGreen = new ShapeWings(UtilParticle.ParticleType.RED_DUST.particleName, new Vector(1, 1, 1), 1, 0, '%', ShapeWings.DEFAULT_ROTATION, ShapeWings.FOUR_LEAF_CLOVER);
|
||||||
|
private ShapeWings _cloverGreen = new ShapeWings(UtilParticle.ParticleType.RED_DUST.particleName, new Vector(1, 1, 1), 1, 0, '*', ShapeWings.DEFAULT_ROTATION, ShapeWings.FOUR_LEAF_CLOVER);
|
||||||
|
|
||||||
|
public CloverEffect(JavaPlugin plugin, Location location)
|
||||||
|
{
|
||||||
|
super(-1, new EffectLocation(location), plugin, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void runEffect()
|
||||||
|
{
|
||||||
|
Location location = getEffectLocation().getLocation();
|
||||||
|
_cloverBlack.displayColored(location, Color.BLACK);
|
||||||
|
_cloverDarkGreen.displayColored(location, new Color(0, 100, 0));
|
||||||
|
_cloverGreen.displayColored(location, Color.GREEN);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,63 @@
|
|||||||
|
package mineplex.core.particleeffects;
|
||||||
|
|
||||||
|
import java.awt.Color;
|
||||||
|
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
|
import mineplex.core.common.util.UtilParticle;
|
||||||
|
import mineplex.core.common.util.particles.ColoredParticle;
|
||||||
|
import mineplex.core.common.util.particles.DustSpellColor;
|
||||||
|
|
||||||
|
public class RainbowTauntEffect extends Effect
|
||||||
|
{
|
||||||
|
|
||||||
|
private static final int PARTICLES = 25;
|
||||||
|
private static final double HEIGHT = 4;
|
||||||
|
|
||||||
|
private static final Color RED = new Color(255, 0, 0);
|
||||||
|
private static final Color ORANGE = new Color(255, 127, 0);
|
||||||
|
private static final Color YELLOW = new Color(255, 255, 0);
|
||||||
|
private static final Color GREEN = new Color(0, 255, 0);
|
||||||
|
private static final Color BLUE = new Color(0, 0, 255);
|
||||||
|
private static final Color INDIGO = new Color(75, 0, 130);
|
||||||
|
private static final Color VIOLET = new Color(143, 0, 255);
|
||||||
|
|
||||||
|
public RainbowTauntEffect(Location start, JavaPlugin javaPlugin)
|
||||||
|
{
|
||||||
|
super(16, new EffectLocation(start), javaPlugin, 5);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void runEffect()
|
||||||
|
{
|
||||||
|
Location location = getEffectLocation().getFixedLocation();
|
||||||
|
Location target = getTargetLocation().getFixedLocation();
|
||||||
|
Color[] colors = new Color[]{VIOLET, INDIGO, BLUE, GREEN, YELLOW, ORANGE, RED};
|
||||||
|
|
||||||
|
for (int i = 0; i < 7; i++)
|
||||||
|
{
|
||||||
|
line(location.clone().add(0, 0.25 * i, 0), target.clone().add(0, 0.25 * i, 0), colors[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void line(Location startLocation, Location targetLocation, Color color)
|
||||||
|
{
|
||||||
|
Vector link = targetLocation.toVector().subtract(startLocation.toVector());
|
||||||
|
float length = (float) link.length();
|
||||||
|
float pitch = (float) (4 * HEIGHT / Math.pow(length, 2));
|
||||||
|
for (int i = 0; i < PARTICLES; i++)
|
||||||
|
{
|
||||||
|
Vector v = link.clone().normalize().multiply(length * i / PARTICLES);
|
||||||
|
float x = ((float) i / PARTICLES) * length - length / 2;
|
||||||
|
float y = (float) (-pitch * Math.pow(x, 2) + HEIGHT);
|
||||||
|
startLocation.add(v).add(0, y, 0);
|
||||||
|
ColoredParticle coloredParticle = new ColoredParticle(UtilParticle.ParticleType.RED_DUST,
|
||||||
|
new DustSpellColor(color), startLocation);
|
||||||
|
coloredParticle.display();
|
||||||
|
startLocation.subtract(0, y, 0).subtract(v);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,113 @@
|
|||||||
|
package mineplex.core.particleeffects;
|
||||||
|
|
||||||
|
import java.awt.Color;
|
||||||
|
import java.util.HashSet;
|
||||||
|
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.entity.Entity;
|
||||||
|
import org.bukkit.entity.Item;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
|
import mineplex.core.common.util.UtilMath;
|
||||||
|
import mineplex.core.common.util.UtilParticle;
|
||||||
|
import mineplex.core.common.util.particles.ColoredParticle;
|
||||||
|
import mineplex.core.common.util.particles.DustSpellColor;
|
||||||
|
|
||||||
|
public class RainbowTrailEffect extends Effect
|
||||||
|
{
|
||||||
|
|
||||||
|
private HashSet<Item> _items;
|
||||||
|
|
||||||
|
private long _count, _jumpingTimer = 0;
|
||||||
|
private boolean _isJumping = false;
|
||||||
|
private Entity _entity;
|
||||||
|
|
||||||
|
private Color _red = new Color(255, 0, 0);
|
||||||
|
private Color _orange = new Color(255, 127, 0);
|
||||||
|
private Color _yellow = new Color(255, 255, 0);
|
||||||
|
private Color _green = new Color(0, 255, 0);
|
||||||
|
private Color _blue = new Color(0, 0, 255);
|
||||||
|
private Color _indigo = new Color(75, 0, 130);
|
||||||
|
private Color _violet = new Color(143, 0, 255);
|
||||||
|
|
||||||
|
private Color _color = _red;
|
||||||
|
|
||||||
|
public RainbowTrailEffect(Entity entity, JavaPlugin javaPlugin, HashSet<Item> items)
|
||||||
|
{
|
||||||
|
super(-1, new EffectLocation(entity), javaPlugin);
|
||||||
|
_entity = entity;
|
||||||
|
_items = items;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void runEffect()
|
||||||
|
{
|
||||||
|
if (!_entity.isValid() || _entity.isDead())
|
||||||
|
{
|
||||||
|
stop();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
ColoredParticle coloredParticle = new ColoredParticle(UtilParticle.ParticleType.RED_DUST,
|
||||||
|
new DustSpellColor(_color), _effectLocation.getLocation().clone().add(0, .5, 0));
|
||||||
|
for (int i = 0; i < 7; i++)
|
||||||
|
{
|
||||||
|
coloredParticle.setLocation(_effectLocation.getLocation().clone().add(0, .5, 0));
|
||||||
|
coloredParticle.display();
|
||||||
|
if (_isJumping)
|
||||||
|
{
|
||||||
|
coloredParticle.setLocation(_effectLocation.getLocation().clone().add(.25, .5, 0));
|
||||||
|
coloredParticle.display();
|
||||||
|
coloredParticle.setLocation(_effectLocation.getLocation().clone().add(0, .5, .25));
|
||||||
|
coloredParticle.display();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (_isJumping)
|
||||||
|
{
|
||||||
|
_jumpingTimer++;
|
||||||
|
if (_jumpingTimer >= 30)
|
||||||
|
{
|
||||||
|
setJumping(false);
|
||||||
|
_jumpingTimer = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_count++;
|
||||||
|
if (_count % 5 == 0)
|
||||||
|
{
|
||||||
|
if (_color.equals(_red))
|
||||||
|
_color = _orange;
|
||||||
|
else if (_color.equals(_orange))
|
||||||
|
_color = _yellow;
|
||||||
|
else if (_color.equals(_yellow))
|
||||||
|
_color = _green;
|
||||||
|
else if (_color.equals(_green))
|
||||||
|
_color = _blue;
|
||||||
|
else if (_color.equals(_blue))
|
||||||
|
_color = _indigo;
|
||||||
|
else if (_color.equals(_indigo))
|
||||||
|
_color = _violet;
|
||||||
|
else
|
||||||
|
_color = _red;
|
||||||
|
}
|
||||||
|
if (_count == Long.MAX_VALUE - 1)
|
||||||
|
_count = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setJumping(boolean jumping)
|
||||||
|
{
|
||||||
|
_isJumping = jumping;
|
||||||
|
if (_isJumping)
|
||||||
|
{
|
||||||
|
ItemStack itemStack = new ItemStack(Material.GOLD_INGOT);
|
||||||
|
ItemMeta itemMeta = itemStack.getItemMeta();
|
||||||
|
itemMeta.setDisplayName("DROPPED" + System.currentTimeMillis() + UtilMath.random.nextInt());
|
||||||
|
itemStack.setItemMeta(itemMeta);
|
||||||
|
Item gold = _entity.getWorld().dropItem(_entity.getLocation().add(0.5, 1.5, 0.5), itemStack);
|
||||||
|
_items.add(gold);
|
||||||
|
gold.setVelocity(new Vector((Math.random()-0.5)*0.3, Math.random()-0.4, (Math.random()-0.5)*0.3));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,6 +1,5 @@
|
|||||||
package mineplex.core.party.command.cli;
|
package mineplex.core.party.command.cli;
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@ -39,7 +38,7 @@ public class PartyInviteCommand extends CommandBase<PartyManager>
|
|||||||
Player player = (Player) sender;
|
Player player = (Player) sender;
|
||||||
Party party = Plugin.getPartyByPlayer(player);
|
Party party = Plugin.getPartyByPlayer(player);
|
||||||
|
|
||||||
return tabCompletePlayerNames(sender, commandLabel, args, other -> party == null || !party.isMember(other));
|
return tabCompletePlayerNames(sender, args, other -> party == null || !party.isMember(other));
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
@ -50,7 +50,7 @@ public class PartyKickCommand extends CommandBase<PartyManager>
|
|||||||
|
|
||||||
if (party != null && party.isOwner(player))
|
if (party != null && party.isOwner(player))
|
||||||
{
|
{
|
||||||
return tabCompletePlayerNames(sender, commandLabel, args, other -> other != player && party.isMember(other));
|
return tabCompletePlayerNames(sender, args, other -> other != player && party.isMember(other));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -77,7 +77,7 @@ public class PartyTransferOwnerCommand extends CommandBase<PartyManager>
|
|||||||
|
|
||||||
if (party != null && party.isOwner(player))
|
if (party != null && party.isOwner(player))
|
||||||
{
|
{
|
||||||
return tabCompletePlayerNames(sender, commandLabel, args, other -> other != player && party.isMember(other));
|
return tabCompletePlayerNames(sender, args, other -> other != player && party.isMember(other));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ public class PartyGUIInviteCommand extends CommandBase<PartyManager>
|
|||||||
Player player = (Player) sender;
|
Player player = (Player) sender;
|
||||||
Party party = Plugin.getPartyByPlayer(player);
|
Party party = Plugin.getPartyByPlayer(player);
|
||||||
|
|
||||||
return tabCompletePlayerNames(sender, commandLabel, args, other -> party == null || !party.isMember(other));
|
return tabCompletePlayerNames(sender, args, other -> party == null || !party.isMember(other));
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
@ -396,6 +396,20 @@ public class PetManager extends MiniClientPlugin<PetClient>
|
|||||||
UtilEnt.silence(villager, true);
|
UtilEnt.silence(villager, true);
|
||||||
_trueLovePets.put(zombie, new TrueLoveData(player, zombie, villager));
|
_trueLovePets.put(zombie, new TrueLoveData(player, zombie, villager));
|
||||||
}
|
}
|
||||||
|
else if (petType.equals(PetType.LEPRECHAUN))
|
||||||
|
{
|
||||||
|
Zombie zombie = (Zombie) pet;
|
||||||
|
zombie.setBaby(true);
|
||||||
|
|
||||||
|
UtilEnt.silence(zombie, true);
|
||||||
|
|
||||||
|
zombie.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, Integer.MAX_VALUE, 1, false, false));
|
||||||
|
|
||||||
|
zombie.getEquipment().setHelmet(SkinData.LEPRECHAUN.getSkull());
|
||||||
|
zombie.getEquipment().setChestplate(ItemStackFactory.Instance.createColoredLeatherArmor(1, org.bukkit.Color.fromRGB(0, 153, 0)));
|
||||||
|
zombie.getEquipment().setLeggings(ItemStackFactory.Instance.createColoredLeatherArmor(2, org.bukkit.Color.fromRGB(0, 153, 0)));
|
||||||
|
zombie.getEquipment().setBoots(ItemStackFactory.Instance.createColoredLeatherArmor(3, org.bukkit.Color.fromRGB(0, 153, 0)));
|
||||||
|
}
|
||||||
|
|
||||||
_activePetOwnerTypes.put(player.getName(), petType);
|
_activePetOwnerTypes.put(player.getName(), petType);
|
||||||
_activePetOwners.put(player.getName(), pet);
|
_activePetOwners.put(player.getName(), pet);
|
||||||
|
@ -6,7 +6,9 @@ import java.util.Optional;
|
|||||||
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import mineplex.core.common.skin.SkinData;
|
||||||
import mineplex.core.pet.sales.PetSalesPackage;
|
import mineplex.core.pet.sales.PetSalesPackage;
|
||||||
|
|
||||||
public enum PetType
|
public enum PetType
|
||||||
@ -30,7 +32,8 @@ public enum PetType
|
|||||||
BLAZE("Grim Reaper", EntityType.BLAZE, -8, "Aww isn't he so cute with his little wings and little scythe?"),
|
BLAZE("Grim Reaper", EntityType.BLAZE, -8, "Aww isn't he so cute with his little wings and little scythe?"),
|
||||||
GINGERBREAD_MAN("Gingerbread Man", EntityType.ZOMBIE, -16, "Looks like you can catch him after all."),
|
GINGERBREAD_MAN("Gingerbread Man", EntityType.ZOMBIE, -16, "Looks like you can catch him after all."),
|
||||||
CUPID_PET("Cupid", EntityType.ZOMBIE, -17, "Sometimes you need a little extra help finding true Love. Why not have Cupid help you out?", Material.BOW, (byte) 0),
|
CUPID_PET("Cupid", EntityType.ZOMBIE, -17, "Sometimes you need a little extra help finding true Love. Why not have Cupid help you out?", Material.BOW, (byte) 0),
|
||||||
TRUE_LOVE_PET("True Love", EntityType.ZOMBIE, -14, "Sometimes love means chasing the person of your dreams until you catch them.", Material.APPLE, YearMonth.of(2017, Month.FEBRUARY))
|
TRUE_LOVE_PET("True Love", EntityType.ZOMBIE, -14, "Sometimes love means chasing the person of your dreams until you catch them.", Material.APPLE, YearMonth.of(2017, Month.FEBRUARY)),
|
||||||
|
LEPRECHAUN("Leprechaun", EntityType.ZOMBIE, -18, "Apparently this little guy lost his Pot of Gold in the war.", SkinData.LEPRECHAUN.getSkull())
|
||||||
// TODO CHECK IF LOBBY IS 1.9+
|
// TODO CHECK IF LOBBY IS 1.9+
|
||||||
// Not in this update
|
// Not in this update
|
||||||
//SHULKER("Shulker Pet", EntityType.BAT, 0, "Is it a turtle or an alien? Either way its shot can be really UPLIFTING.")
|
//SHULKER("Shulker Pet", EntityType.BAT, 0, "Is it a turtle or an alien? Either way its shot can be really UPLIFTING.")
|
||||||
@ -42,6 +45,7 @@ public enum PetType
|
|||||||
private final Material _material;
|
private final Material _material;
|
||||||
private final byte _data;
|
private final byte _data;
|
||||||
private YearMonth _yearMonth;
|
private YearMonth _yearMonth;
|
||||||
|
private ItemStack _displayItem;
|
||||||
|
|
||||||
PetType(String name, EntityType entityType, int price)
|
PetType(String name, EntityType entityType, int price)
|
||||||
{
|
{
|
||||||
@ -84,6 +88,12 @@ public enum PetType
|
|||||||
_yearMonth = yearMonth;
|
_yearMonth = yearMonth;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PetType(String name, EntityType entityType, int price, String lore, ItemStack displayItem)
|
||||||
|
{
|
||||||
|
this(name, entityType, price, lore);
|
||||||
|
_displayItem = displayItem;
|
||||||
|
}
|
||||||
|
|
||||||
public String getName()
|
public String getName()
|
||||||
{
|
{
|
||||||
return _name;
|
return _name;
|
||||||
@ -114,6 +124,15 @@ public enum PetType
|
|||||||
return _data;
|
return _data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ItemStack getDisplayItem()
|
||||||
|
{
|
||||||
|
if (_displayItem == null)
|
||||||
|
{
|
||||||
|
return new ItemStack(_material, 1, _data);
|
||||||
|
}
|
||||||
|
return _displayItem;
|
||||||
|
}
|
||||||
|
|
||||||
public YearMonth getYearMonth()
|
public YearMonth getYearMonth()
|
||||||
{
|
{
|
||||||
return _yearMonth;
|
return _yearMonth;
|
||||||
|
@ -143,6 +143,6 @@ public class PunishCommand extends CommandBase<Punish>
|
|||||||
@Override
|
@Override
|
||||||
public List<String> onTabComplete(CommandSender sender, String commandLabel, String[] args)
|
public List<String> onTabComplete(CommandSender sender, String commandLabel, String[] args)
|
||||||
{
|
{
|
||||||
return tabCompletePlayerNames(sender, commandLabel, args);
|
return tabCompletePlayerNames(sender, args);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,7 @@ import org.bukkit.Material;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import mineplex.core.Managers;
|
||||||
import mineplex.core.account.CoreClientManager;
|
import mineplex.core.account.CoreClientManager;
|
||||||
import mineplex.core.common.Rank;
|
import mineplex.core.common.Rank;
|
||||||
import mineplex.core.common.util.banner.CountryFlag;
|
import mineplex.core.common.util.banner.CountryFlag;
|
||||||
@ -91,6 +92,10 @@ import mineplex.core.gadget.gadgets.outfit.spacesuit.OutfitSpaceSuitBoots;
|
|||||||
import mineplex.core.gadget.gadgets.outfit.spacesuit.OutfitSpaceSuitChestplate;
|
import mineplex.core.gadget.gadgets.outfit.spacesuit.OutfitSpaceSuitChestplate;
|
||||||
import mineplex.core.gadget.gadgets.outfit.spacesuit.OutfitSpaceSuitHelmet;
|
import mineplex.core.gadget.gadgets.outfit.spacesuit.OutfitSpaceSuitHelmet;
|
||||||
import mineplex.core.gadget.gadgets.outfit.spacesuit.OutfitSpaceSuitLeggings;
|
import mineplex.core.gadget.gadgets.outfit.spacesuit.OutfitSpaceSuitLeggings;
|
||||||
|
import mineplex.core.gadget.gadgets.outfit.stpatricks.OutfitStPatricksBoots;
|
||||||
|
import mineplex.core.gadget.gadgets.outfit.stpatricks.OutfitStPatricksChestplate;
|
||||||
|
import mineplex.core.gadget.gadgets.outfit.stpatricks.OutfitStPatricksHat;
|
||||||
|
import mineplex.core.gadget.gadgets.outfit.stpatricks.OutfitStPatricksLeggings;
|
||||||
import mineplex.core.gadget.gadgets.particle.ParticleChristmasTree;
|
import mineplex.core.gadget.gadgets.particle.ParticleChristmasTree;
|
||||||
import mineplex.core.gadget.gadgets.particle.ParticleCoalFumes;
|
import mineplex.core.gadget.gadgets.particle.ParticleCoalFumes;
|
||||||
import mineplex.core.gadget.gadgets.particle.ParticleFairy;
|
import mineplex.core.gadget.gadgets.particle.ParticleFairy;
|
||||||
@ -113,6 +118,7 @@ import mineplex.core.gadget.gadgets.particle.shadow.ParticleFoot;
|
|||||||
import mineplex.core.gadget.gadgets.particle.vampire.ParticleBlood;
|
import mineplex.core.gadget.gadgets.particle.vampire.ParticleBlood;
|
||||||
import mineplex.core.gadget.gadgets.particle.wisdom.ParticleEnchant;
|
import mineplex.core.gadget.gadgets.particle.wisdom.ParticleEnchant;
|
||||||
import mineplex.core.gadget.gadgets.taunts.BlowAKissTaunt;
|
import mineplex.core.gadget.gadgets.taunts.BlowAKissTaunt;
|
||||||
|
import mineplex.core.gadget.gadgets.taunts.RainbowTaunt;
|
||||||
import mineplex.core.gadget.gadgets.wineffect.WinEffectBabyChicken;
|
import mineplex.core.gadget.gadgets.wineffect.WinEffectBabyChicken;
|
||||||
import mineplex.core.gadget.gadgets.wineffect.WinEffectFlames;
|
import mineplex.core.gadget.gadgets.wineffect.WinEffectFlames;
|
||||||
import mineplex.core.gadget.gadgets.wineffect.WinEffectHalloween;
|
import mineplex.core.gadget.gadgets.wineffect.WinEffectHalloween;
|
||||||
@ -140,6 +146,7 @@ import mineplex.core.mount.types.MountMule;
|
|||||||
import mineplex.core.mount.types.MountNightmareSteed;
|
import mineplex.core.mount.types.MountNightmareSteed;
|
||||||
import mineplex.core.mount.types.MountSlime;
|
import mineplex.core.mount.types.MountSlime;
|
||||||
import mineplex.core.mount.types.MountSpider;
|
import mineplex.core.mount.types.MountSpider;
|
||||||
|
import mineplex.core.mount.types.MountStPatricksHorse;
|
||||||
import mineplex.core.mount.types.MountUndead;
|
import mineplex.core.mount.types.MountUndead;
|
||||||
import mineplex.core.mount.types.MountValentinesSheep;
|
import mineplex.core.mount.types.MountValentinesSheep;
|
||||||
import mineplex.core.mount.types.MountZombie;
|
import mineplex.core.mount.types.MountZombie;
|
||||||
@ -157,9 +164,11 @@ import mineplex.core.reward.rewards.PowerPlayReward;
|
|||||||
import mineplex.core.reward.rewards.RankReward;
|
import mineplex.core.reward.rewards.RankReward;
|
||||||
import mineplex.core.reward.rewards.RuneAmplifierReward;
|
import mineplex.core.reward.rewards.RuneAmplifierReward;
|
||||||
import mineplex.core.reward.rewards.SpinTicketReward;
|
import mineplex.core.reward.rewards.SpinTicketReward;
|
||||||
|
import mineplex.core.reward.rewards.TitleReward;
|
||||||
import mineplex.core.reward.rewards.TreasureShardReward;
|
import mineplex.core.reward.rewards.TreasureShardReward;
|
||||||
import mineplex.core.reward.rewards.UnknownPackageReward;
|
import mineplex.core.reward.rewards.UnknownPackageReward;
|
||||||
import mineplex.core.stats.StatsManager;
|
import mineplex.core.stats.StatsManager;
|
||||||
|
import mineplex.core.titles.tracks.TrackManager;
|
||||||
import mineplex.core.treasure.TreasureType;
|
import mineplex.core.treasure.TreasureType;
|
||||||
|
|
||||||
public class RewardManager
|
public class RewardManager
|
||||||
@ -167,6 +176,7 @@ public class RewardManager
|
|||||||
private EnumMap<RewardPool.Type, RewardPool> _rewardPools;
|
private EnumMap<RewardPool.Type, RewardPool> _rewardPools;
|
||||||
private Random _random;
|
private Random _random;
|
||||||
|
|
||||||
|
private final TrackManager _trackManager = Managers.require(TrackManager.class);
|
||||||
private CoreClientManager _clientManager;
|
private CoreClientManager _clientManager;
|
||||||
private DonationManager _donationManager;
|
private DonationManager _donationManager;
|
||||||
private InventoryManager _inventoryManager;
|
private InventoryManager _inventoryManager;
|
||||||
@ -414,6 +424,37 @@ public class RewardManager
|
|||||||
addMineStrikeSkin(Type.MINESTRIKE, MineStrikeSkin.P90_Asiimov, rarity, 100, 1000);
|
addMineStrikeSkin(Type.MINESTRIKE, MineStrikeSkin.P90_Asiimov, rarity, 100, 1000);
|
||||||
addMineStrikeSkin(Type.MINESTRIKE, MineStrikeSkin.SG553_Pulse, rarity, 100, 1000);
|
addMineStrikeSkin(Type.MINESTRIKE, MineStrikeSkin.SG553_Pulse, rarity, 100, 1000);
|
||||||
|
|
||||||
|
// Titles
|
||||||
|
|
||||||
|
addTitle(Type.NORMAL, "shrug", rarity, 10, 500);
|
||||||
|
addTitle(Type.NORMAL, "tableflip", rarity, 10, 500);
|
||||||
|
addTitle(Type.NORMAL, "tablerespecter", rarity, 15, 500);
|
||||||
|
addTitle(Type.NORMAL, "tableflip-disgusted", rarity, 15, 500);
|
||||||
|
addTitle(Type.NORMAL, "tableflip-enraged", rarity, 15, 500);
|
||||||
|
addTitle(Type.NORMAL, "tableflip-riot", rarity, 10, 500);
|
||||||
|
addTitle(Type.NORMAL, "teddy-bear", rarity, 10, 500);
|
||||||
|
addTitle(Type.NORMAL, "disgust", rarity, 10, 500);
|
||||||
|
addTitle(Type.NORMAL, "old-man", rarity, 5, 500);
|
||||||
|
addTitle(Type.NORMAL, "jake", rarity, 5, 500);
|
||||||
|
addTitle(Type.NORMAL, "finn", rarity, 5, 500);
|
||||||
|
addTitle(Type.NORMAL, "finn-and-jake", rarity, 5, 500);
|
||||||
|
addTitle(Type.NORMAL, "boxer", rarity, 5, 500);
|
||||||
|
addTitle(Type.NORMAL, "zoidberg", rarity, 5, 500);
|
||||||
|
|
||||||
|
addTitle(Type.OMEGA, "shrug", rarity, 10, 500);
|
||||||
|
addTitle(Type.OMEGA, "tableflip", rarity, 10, 500);
|
||||||
|
addTitle(Type.OMEGA, "tablerespecter", rarity, 15, 500);
|
||||||
|
addTitle(Type.OMEGA, "tableflip-disgusted", rarity, 15, 500);
|
||||||
|
addTitle(Type.OMEGA, "tableflip-enraged", rarity, 15, 500);
|
||||||
|
addTitle(Type.OMEGA, "tableflip-riot", rarity, 10, 500);
|
||||||
|
addTitle(Type.OMEGA, "teddy-bear", rarity, 10, 500);
|
||||||
|
addTitle(Type.OMEGA, "disgust", rarity, 10, 500);
|
||||||
|
addTitle(Type.OMEGA, "old-man", rarity, 5, 500);
|
||||||
|
addTitle(Type.OMEGA, "jake", rarity, 5, 500);
|
||||||
|
addTitle(Type.OMEGA, "finn", rarity, 5, 500);
|
||||||
|
addTitle(Type.OMEGA, "finn-and-jake", rarity, 5, 500);
|
||||||
|
addTitle(Type.OMEGA, "boxer", rarity, 5, 500);
|
||||||
|
addTitle(Type.OMEGA, "zoidberg", rarity, 5, 500);
|
||||||
|
|
||||||
// VALENTINES
|
// VALENTINES
|
||||||
//Hats
|
//Hats
|
||||||
@ -553,6 +594,11 @@ public class RewardManager
|
|||||||
addPetReward(Type.LOVECHEST, PetType.CUPID_PET, rarity, 50, 500);
|
addPetReward(Type.LOVECHEST, PetType.CUPID_PET, rarity, 50, 500);
|
||||||
|
|
||||||
addGadget(Type.LOVECHEST, getGadget(WinEffectLoveIsABattlefield.class), rarity, 100, 500);
|
addGadget(Type.LOVECHEST, getGadget(WinEffectLoveIsABattlefield.class), rarity, 100, 500);
|
||||||
|
|
||||||
|
// ST PATRICKS
|
||||||
|
addGadget(Type.STPATRICKS, getGadget(OutfitStPatricksChestplate.class), rarity, 50);
|
||||||
|
addGadget(Type.STPATRICKS, getGadget(OutfitStPatricksLeggings.class), rarity, 50);
|
||||||
|
addGadget(Type.STPATRICKS, getGadget(OutfitStPatricksBoots.class), rarity, 50);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addLegendary()
|
public void addLegendary()
|
||||||
@ -624,6 +670,38 @@ public class RewardManager
|
|||||||
addMineStrikeSkin(Type.MINESTRIKE, MineStrikeSkin.XM1014_Pig_Gun, rarity, 10, 7500);
|
addMineStrikeSkin(Type.MINESTRIKE, MineStrikeSkin.XM1014_Pig_Gun, rarity, 10, 7500);
|
||||||
addMineStrikeSkin(Type.MINESTRIKE, MineStrikeSkin.M4A4_Enderman, rarity, 10, 7500);
|
addMineStrikeSkin(Type.MINESTRIKE, MineStrikeSkin.M4A4_Enderman, rarity, 10, 7500);
|
||||||
|
|
||||||
|
// Titles
|
||||||
|
|
||||||
|
addTitle(Type.NORMAL, "ayyye", rarity, 25, 500);
|
||||||
|
addTitle(Type.NORMAL, "ameno", rarity, 15, 5000);
|
||||||
|
addTitle(Type.NORMAL, "magician", rarity, 25, 5000);
|
||||||
|
addTitle(Type.NORMAL, "fireball", rarity, 75, 5000);
|
||||||
|
addTitle(Type.NORMAL, "magic-missile", rarity, 75, 5000);
|
||||||
|
addTitle(Type.NORMAL, "pewpewpew", rarity, 75, 5000);
|
||||||
|
addTitle(Type.NORMAL, "stardust", rarity, 60, 5000);
|
||||||
|
addTitle(Type.NORMAL, "blow-a-kiss", rarity, 60, 5000);
|
||||||
|
addTitle(Type.NORMAL, "cool-guy", rarity, 60, 5000);
|
||||||
|
addTitle(Type.NORMAL, "deal-with-it", rarity, 60, 5000);
|
||||||
|
addTitle(Type.NORMAL, "party-time", rarity, 55, 5000);
|
||||||
|
addTitle(Type.NORMAL, "lalala", rarity, 30, 5000);
|
||||||
|
addTitle(Type.NORMAL, "gotta-go", rarity, 30, 5000);
|
||||||
|
addTitle(Type.NORMAL, "whaaat", rarity, 30, 5000);
|
||||||
|
|
||||||
|
addTitle(Type.OMEGA, "ayyye", rarity, 25, 500);
|
||||||
|
addTitle(Type.OMEGA, "ameno", rarity, 15, 5000);
|
||||||
|
addTitle(Type.OMEGA, "magician", rarity, 25, 5000);
|
||||||
|
addTitle(Type.OMEGA, "fireball", rarity, 75, 5000);
|
||||||
|
addTitle(Type.OMEGA, "magic-missile", rarity, 75, 5000);
|
||||||
|
addTitle(Type.OMEGA, "pewpewpew", rarity, 75, 5000);
|
||||||
|
addTitle(Type.OMEGA, "stardust", rarity, 60, 5000);
|
||||||
|
addTitle(Type.OMEGA, "blow-a-kiss", rarity, 60, 5000);
|
||||||
|
addTitle(Type.OMEGA, "cool-guy", rarity, 60, 5000);
|
||||||
|
addTitle(Type.OMEGA, "deal-with-it", rarity, 60, 5000);
|
||||||
|
addTitle(Type.OMEGA, "party-time", rarity, 55, 5000);
|
||||||
|
addTitle(Type.OMEGA, "lalala", rarity, 30, 5000);
|
||||||
|
addTitle(Type.OMEGA, "gotta-go", rarity, 30, 5000);
|
||||||
|
addTitle(Type.OMEGA, "whaaat", rarity, 30, 5000);
|
||||||
|
|
||||||
//WINTER
|
//WINTER
|
||||||
|
|
||||||
//Arrow Trails
|
//Arrow Trails
|
||||||
@ -770,6 +848,14 @@ public class RewardManager
|
|||||||
addGadget(Type.LOVECHEST, getGadget(MorphLoveDoctor.class), rarity, 30, 5000);
|
addGadget(Type.LOVECHEST, getGadget(MorphLoveDoctor.class), rarity, 30, 5000);
|
||||||
addGadget(Type.LOVECHEST, getGadget(BlowAKissTaunt.class), rarity, 50, 5000);
|
addGadget(Type.LOVECHEST, getGadget(BlowAKissTaunt.class), rarity, 50, 5000);
|
||||||
addGadget(Type.LOVECHEST, getGadget(ParticleWingsLove.class), rarity, 10, 5000);
|
addGadget(Type.LOVECHEST, getGadget(ParticleWingsLove.class), rarity, 10, 5000);
|
||||||
|
|
||||||
|
// ST PATRICKS
|
||||||
|
addGadget(Type.STPATRICKS, getGadget(RainbowTaunt.class), rarity, 30);
|
||||||
|
addGadget(Type.STPATRICKS, getGadget(OutfitStPatricksHat.class), rarity, 15);
|
||||||
|
|
||||||
|
addPetReward(Type.STPATRICKS, PetType.LEPRECHAUN, rarity, 30);
|
||||||
|
|
||||||
|
addMount(Type.STPATRICKS, getMount(MountStPatricksHorse.class), rarity, 30);
|
||||||
}
|
}
|
||||||
|
|
||||||
public UnknownPackageReward addMount(Type type, Mount<?> mount, RewardRarity rarity, int weight)
|
public UnknownPackageReward addMount(Type type, Mount<?> mount, RewardRarity rarity, int weight)
|
||||||
@ -855,6 +941,11 @@ public class RewardManager
|
|||||||
return addGadget(type, gadget, gadget.getDisplayName() + " (Minestrike Weapon Skin)", rarity, weight, shards);
|
return addGadget(type, gadget, gadget.getDisplayName() + " (Minestrike Weapon Skin)", rarity, weight, shards);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void addTitle(Type type, String trackName, RewardRarity rarity, int weight, int shards)
|
||||||
|
{
|
||||||
|
addReward(type, new TitleReward(_trackManager.getTrackById(trackName), rarity, weight, shards));
|
||||||
|
}
|
||||||
|
|
||||||
public UnknownPackageReward addHat(Type type, HatType hatType, RewardRarity rarity, int weight)
|
public UnknownPackageReward addHat(Type type, HatType hatType, RewardRarity rarity, int weight)
|
||||||
{
|
{
|
||||||
return addHat(type, hatType, rarity, weight, getShards(rarity));
|
return addHat(type, hatType, rarity, weight, getShards(rarity));
|
||||||
|
@ -64,6 +64,7 @@ public class RewardPool
|
|||||||
GINGERBREAD(false, 1),
|
GINGERBREAD(false, 1),
|
||||||
MINESTRIKE(true, 2),
|
MINESTRIKE(true, 2),
|
||||||
LOVECHEST(false, 1),
|
LOVECHEST(false, 1),
|
||||||
|
STPATRICKS(false, 1),
|
||||||
CARL_SPINNER(true);
|
CARL_SPINNER(true);
|
||||||
|
|
||||||
private boolean _useDuplicates;
|
private boolean _useDuplicates;
|
||||||
|
@ -21,6 +21,7 @@ public enum RewardType
|
|||||||
MINESTRIKE_CHEST( 0, 2, 16, 0),
|
MINESTRIKE_CHEST( 0, 2, 16, 0),
|
||||||
LOVE_CHEST( 0, 6, 18, 0),
|
LOVE_CHEST( 0, 6, 18, 0),
|
||||||
VALENTINES_GIFT( 0, 7, 20, 20),
|
VALENTINES_GIFT( 0, 7, 20, 20),
|
||||||
|
ST_PATRICKS( 0, 6, 18, 0),
|
||||||
|
|
||||||
SPINNER_FILLER( 0.1, 1, 4, 20),
|
SPINNER_FILLER( 0.1, 1, 4, 20),
|
||||||
SPINNER_REAL( 0.000001, 0.05, 0.4, 5);
|
SPINNER_REAL( 0.000001, 0.05, 0.4, 5);
|
||||||
|
@ -0,0 +1,49 @@
|
|||||||
|
package mineplex.core.reward.rewards;
|
||||||
|
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import mineplex.core.Managers;
|
||||||
|
import mineplex.core.reward.Reward;
|
||||||
|
import mineplex.core.reward.RewardData;
|
||||||
|
import mineplex.core.reward.RewardRarity;
|
||||||
|
import mineplex.core.reward.RewardType;
|
||||||
|
import mineplex.core.titles.tracks.Track;
|
||||||
|
import mineplex.core.titles.tracks.TrackManager;
|
||||||
|
|
||||||
|
public class TitleReward extends Reward
|
||||||
|
{
|
||||||
|
private final ItemStack ITEM_STACK = new ItemStack(Material.BOOK);
|
||||||
|
private final TrackManager _trackManager = Managers.require(TrackManager.class);
|
||||||
|
private final Track _track;
|
||||||
|
|
||||||
|
public TitleReward(Track track, RewardRarity rarity, int weight, int shardValue)
|
||||||
|
{
|
||||||
|
super(rarity, weight, shardValue);
|
||||||
|
if (track == null)
|
||||||
|
{
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
_track = track;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected RewardData giveRewardCustom(Player player, RewardType rewardType)
|
||||||
|
{
|
||||||
|
_trackManager.unlockTrack(player, _track);
|
||||||
|
return getFakeRewardData(player);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RewardData getFakeRewardData(Player player)
|
||||||
|
{
|
||||||
|
return new RewardData(getRarity().getDarkColor() + "Title", getRarity().getColor() + _track.getLongName(), ITEM_STACK, getRarity());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canGiveReward(Player player)
|
||||||
|
{
|
||||||
|
return !_trackManager.hasTrack(player, _track);
|
||||||
|
}
|
||||||
|
}
|
@ -3,6 +3,7 @@ package mineplex.core.titles;
|
|||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.Comparator;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -70,6 +71,7 @@ import mineplex.core.itemstack.ItemBuilder;
|
|||||||
import mineplex.core.packethandler.IPacketHandler;
|
import mineplex.core.packethandler.IPacketHandler;
|
||||||
import mineplex.core.packethandler.PacketHandler;
|
import mineplex.core.packethandler.PacketHandler;
|
||||||
import mineplex.core.packethandler.PacketInfo;
|
import mineplex.core.packethandler.PacketInfo;
|
||||||
|
import mineplex.core.titles.commands.GiveTrackCommand;
|
||||||
import mineplex.core.titles.commands.TrackCommand;
|
import mineplex.core.titles.commands.TrackCommand;
|
||||||
import mineplex.core.titles.tracks.Track;
|
import mineplex.core.titles.tracks.Track;
|
||||||
import mineplex.core.titles.tracks.TrackFormat;
|
import mineplex.core.titles.tracks.TrackFormat;
|
||||||
@ -301,21 +303,7 @@ public class Titles extends MiniDbClientPlugin<TitleData> implements IPacketHand
|
|||||||
|
|
||||||
tracks.removeIf(track -> track.getRequirements().getTier(player) == null && track.hideIfUnowned());
|
tracks.removeIf(track -> track.getRequirements().getTier(player) == null && track.hideIfUnowned());
|
||||||
|
|
||||||
tracks.sort((a, b) ->
|
tracks.sort(Comparator.comparing(Track::getShortName));
|
||||||
{
|
|
||||||
if (a.hideIfUnowned() && !b.hideIfUnowned())
|
|
||||||
{
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
else if (!a.hideIfUnowned() && b.hideIfUnowned())
|
|
||||||
{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return a.getShortName().compareTo(b.getShortName());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
String bookTitle = C.cGreen + "Titles";
|
String bookTitle = C.cGreen + "Titles";
|
||||||
|
|
||||||
|
@ -0,0 +1,79 @@
|
|||||||
|
package mineplex.core.titles.commands;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import mineplex.core.command.CommandBase;
|
||||||
|
import mineplex.core.common.Rank;
|
||||||
|
import mineplex.core.common.util.F;
|
||||||
|
import mineplex.core.common.util.UtilPlayer;
|
||||||
|
import mineplex.core.titles.tracks.ItemizedTrack;
|
||||||
|
import mineplex.core.titles.tracks.Track;
|
||||||
|
import mineplex.core.titles.tracks.TrackManager;
|
||||||
|
|
||||||
|
public class GiveTrackCommand extends CommandBase<TrackManager>
|
||||||
|
{
|
||||||
|
public GiveTrackCommand(TrackManager plugin)
|
||||||
|
{
|
||||||
|
super(plugin, Rank.ADMIN, "givetrack" );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void Execute(Player caller, String[] args)
|
||||||
|
{
|
||||||
|
if (args.length < 2)
|
||||||
|
{
|
||||||
|
UtilPlayer.message(caller, F.help("/givetrack <player> <trackid>", "Give a player an unlockable track", GetRequiredRank()));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String player = args[0];
|
||||||
|
String track = args[1];
|
||||||
|
|
||||||
|
Track trackObj = Plugin.getTrackById(track);
|
||||||
|
|
||||||
|
if (trackObj == null)
|
||||||
|
{
|
||||||
|
UtilPlayer.message(caller, F.main(Plugin.getName(), "That is not a track" ));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(trackObj instanceof ItemizedTrack))
|
||||||
|
{
|
||||||
|
UtilPlayer.message(caller, F.main(Plugin.getName(), "That is not an unlockable track" ));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Plugin.unlockTrack(player, track, result -> {
|
||||||
|
switch (result)
|
||||||
|
{
|
||||||
|
case PLAYER_NOT_FOUND:
|
||||||
|
UtilPlayer.message(caller, F.main(Plugin.getName(), "That player has never joined Mineplex!"));
|
||||||
|
break;
|
||||||
|
case UNKNOWN_ERROR:
|
||||||
|
UtilPlayer.message(caller, F.main(Plugin.getName(), "Oops. Something has gone wrong while giving " + F.elem(player) + " the track " + F.elem(track) + "!"));
|
||||||
|
break;
|
||||||
|
case SUCCESS:
|
||||||
|
UtilPlayer.message(caller, F.main(Plugin.getName(), "Successfully gave " + F.elem(player) + " the track " + F.elem(track) + "!"));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> onTabComplete(CommandSender sender, String commandLabel, String[] args)
|
||||||
|
{
|
||||||
|
if (args.length == 1)
|
||||||
|
{
|
||||||
|
return tabCompletePlayerNames(sender, args);
|
||||||
|
}
|
||||||
|
if (args.length == 2)
|
||||||
|
{
|
||||||
|
return getMatches(args[1], Plugin.getAllTracks().stream().filter(track -> track instanceof ItemizedTrack).map(Track::getId).collect(Collectors.toList()));
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,8 @@
|
|||||||
package mineplex.core.titles.commands;
|
package mineplex.core.titles.commands;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import mineplex.core.Managers;
|
import mineplex.core.Managers;
|
||||||
@ -10,6 +13,7 @@ import mineplex.core.common.Rank;
|
|||||||
import mineplex.core.common.util.F;
|
import mineplex.core.common.util.F;
|
||||||
import mineplex.core.common.util.UtilPlayer;
|
import mineplex.core.common.util.UtilPlayer;
|
||||||
import mineplex.core.titles.Titles;
|
import mineplex.core.titles.Titles;
|
||||||
|
import mineplex.core.titles.tracks.ItemizedTrack;
|
||||||
import mineplex.core.titles.tracks.Track;
|
import mineplex.core.titles.tracks.Track;
|
||||||
import mineplex.core.titles.tracks.TrackManager;
|
import mineplex.core.titles.tracks.TrackManager;
|
||||||
|
|
||||||
@ -52,4 +56,17 @@ public class TrackCommand extends CommandBase<Titles>
|
|||||||
}
|
}
|
||||||
Plugin.setOrToggleTrackForPlayer(caller, track, args.length > 1);
|
Plugin.setOrToggleTrackForPlayer(caller, track, args.length > 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> onTabComplete(CommandSender sender, String commandLabel, String[] args)
|
||||||
|
{
|
||||||
|
if (args.length == 1)
|
||||||
|
{
|
||||||
|
if (sender instanceof Player)
|
||||||
|
{
|
||||||
|
return getMatches(args[0], _trackManager.getAllTracks().stream().filter(track -> track.getRequirements().getTier((Player) sender) != null).map(Track::getId));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,35 @@
|
|||||||
|
package mineplex.core.titles.tracks;
|
||||||
|
|
||||||
|
import net.md_5.bungee.api.ChatColor;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import mineplex.core.Managers;
|
||||||
|
import mineplex.core.inventory.InventoryManager;
|
||||||
|
|
||||||
|
public class ItemizedTrack extends Track
|
||||||
|
{
|
||||||
|
private final InventoryManager _inventoryManager = Managers.require(InventoryManager.class);
|
||||||
|
|
||||||
|
public ItemizedTrack(String trackId, String shortName, String description, boolean hideIfUnowned)
|
||||||
|
{
|
||||||
|
super(trackId, shortName, description, hideIfUnowned);
|
||||||
|
special();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemizedTrack(String trackId, ChatColor color, String shortName, String longName, String description)
|
||||||
|
{
|
||||||
|
super(trackId, color, shortName, longName, description);
|
||||||
|
special();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemizedTrack(String trackId, ChatColor color, String shortName, String longName, String description, boolean hideIfUnowned)
|
||||||
|
{
|
||||||
|
super(trackId, color, shortName, longName, description, hideIfUnowned);
|
||||||
|
special();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean owns(Player player) {
|
||||||
|
return _inventoryManager.Get(player).getItemCount("track." + getId()) > 0;
|
||||||
|
}
|
||||||
|
}
|
@ -50,7 +50,7 @@ public class Track implements Listener
|
|||||||
{
|
{
|
||||||
// Book limits
|
// Book limits
|
||||||
Validate.isTrue(shortName.length() <= 16, "Short name cannot be longer than 16 characters");
|
Validate.isTrue(shortName.length() <= 16, "Short name cannot be longer than 16 characters");
|
||||||
Validate.isTrue(trackId.length() <= 16, "ID cannot be longer than 16 characters");
|
Validate.isTrue(trackId.length() <= 32, "ID cannot be longer than 32 characters");
|
||||||
|
|
||||||
this._id = trackId;
|
this._id = trackId;
|
||||||
this._shortName = shortName;
|
this._shortName = shortName;
|
||||||
|
@ -5,9 +5,41 @@ import java.util.HashMap;
|
|||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
|
import net.md_5.bungee.api.ChatColor;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import mineplex.core.MiniPlugin;
|
import mineplex.core.MiniPlugin;
|
||||||
import mineplex.core.ReflectivelyCreateMiniPlugin;
|
import mineplex.core.ReflectivelyCreateMiniPlugin;
|
||||||
|
import mineplex.core.account.CoreClientManager;
|
||||||
|
import mineplex.core.common.util.Callback;
|
||||||
|
import mineplex.core.inventory.InventoryManager;
|
||||||
|
import mineplex.core.titles.commands.GiveTrackCommand;
|
||||||
|
import mineplex.core.titles.tracks.award.Bridges2017Track;
|
||||||
|
import mineplex.core.titles.tracks.custom.DongerTrack;
|
||||||
|
import mineplex.core.titles.tracks.custom.EarlyBirdTrack;
|
||||||
|
import mineplex.core.titles.tracks.custom.HappyGaryTrack;
|
||||||
|
import mineplex.core.titles.tracks.custom.LeaderTrack;
|
||||||
|
import mineplex.core.titles.tracks.custom.SnekTrack;
|
||||||
|
import mineplex.core.titles.tracks.custom.TableFlipTrack;
|
||||||
|
import mineplex.core.titles.tracks.custom.TrackBuilder;
|
||||||
|
import mineplex.core.titles.tracks.custom.WizardTrack;
|
||||||
|
import mineplex.core.titles.tracks.standard.GemCollectorTrack;
|
||||||
|
import mineplex.core.titles.tracks.standard.HolidayCheerTrack;
|
||||||
|
import mineplex.core.titles.tracks.standard.LevelerTrack;
|
||||||
|
import mineplex.core.titles.tracks.standard.LuckyTrack;
|
||||||
|
import mineplex.core.titles.tracks.standard.MineplexMasteryTrack;
|
||||||
|
import mineplex.core.titles.tracks.standard.PartyAnimalTrack;
|
||||||
|
import mineplex.core.titles.tracks.standard.PeacefulTrack;
|
||||||
|
import mineplex.core.titles.tracks.standard.PerfectionistTrack;
|
||||||
|
import mineplex.core.titles.tracks.standard.PowerPlayTrack;
|
||||||
|
import mineplex.core.titles.tracks.standard.SweetToothTrack;
|
||||||
|
import mineplex.core.titles.tracks.standard.TreasureHunterTrack;
|
||||||
|
import mineplex.core.titles.tracks.standard.UnluckyTrack;
|
||||||
|
import mineplex.core.titles.tracks.standard.WarriorTrack;
|
||||||
|
|
||||||
@ReflectivelyCreateMiniPlugin
|
@ReflectivelyCreateMiniPlugin
|
||||||
public class TrackManager extends MiniPlugin
|
public class TrackManager extends MiniPlugin
|
||||||
@ -15,6 +47,9 @@ public class TrackManager extends MiniPlugin
|
|||||||
private final Map<Class<? extends Track>, Track> _registeredTracks = new LinkedHashMap<>();
|
private final Map<Class<? extends Track>, Track> _registeredTracks = new LinkedHashMap<>();
|
||||||
private final Map<String, Track> _trackById = new HashMap<>();
|
private final Map<String, Track> _trackById = new HashMap<>();
|
||||||
|
|
||||||
|
private final InventoryManager _inventoryManager = require(InventoryManager.class);
|
||||||
|
private final CoreClientManager _coreClientManager = require(CoreClientManager.class);
|
||||||
|
|
||||||
private TrackManager()
|
private TrackManager()
|
||||||
{
|
{
|
||||||
super("Track Manager");
|
super("Track Manager");
|
||||||
@ -42,10 +77,72 @@ public class TrackManager extends MiniPlugin
|
|||||||
// registerTrack(new SurvivorTrack());
|
// registerTrack(new SurvivorTrack());
|
||||||
registerTrack(new LevelerTrack());
|
registerTrack(new LevelerTrack());
|
||||||
registerTrack(new PerfectionistTrack());
|
registerTrack(new PerfectionistTrack());
|
||||||
|
|
||||||
|
// Awarded tracks
|
||||||
|
registerTrack(new Bridges2017Track());
|
||||||
|
|
||||||
|
// Custom tracks
|
||||||
|
// registerTrack(track("lenny", "Lenny", "( ͡° ͜ʖ ͡°)"));
|
||||||
|
// registerTrack(track("lenny-disgusted", "Disgusted Lenny", "( ͡ಠ ʖ̯ ͡ಠ)"));
|
||||||
|
// registerTrack(track("lenny-winking", "Winking Lenny", "( ͡~ ͜ʖ ͡°)"));
|
||||||
|
registerTrack(track("ayyye", "Ayyye", "(づ ̄ ³ ̄)づ"));
|
||||||
|
registerTrack(track("ameno", "Ameno", "༼ つ ◕_◕ ༽つ Gib me gems"));
|
||||||
|
// registerTrack(track("unknown", "Unknown", "(☞゚ヮ゚)☞"));
|
||||||
|
registerTrack(track("shrug", "Shrug", "¯\\_(ツ)_/¯"));
|
||||||
|
registerTrack(track("tableflip", "Tableflip", "(╯°□°)╯︵ ┻━┻"));
|
||||||
|
registerTrack(track("tablerespecter", "Table Respecter", "┬─┬ノ(ಠ_ಠノ)"));
|
||||||
|
registerTrack(track("tableflip-disgusted", "Disgusted Flip", "Disgusted Tableflip", "(╯ಠ_ಠ)╯︵ ┳━┳"));
|
||||||
|
// registerTrack(track("tableflip-donger", "Donger Flip", "ヽ༼ຈل͜ຈ༽ノ︵┻━┻"));
|
||||||
|
registerTrack(track("tableflip-enraged", "Enraged Flip", "(ノಠдಠ)ノ︵┻━┻"));
|
||||||
|
registerTrack(track("tableflip-riot", "Rioting Flip", "(┛◉Д◉)┛彡┻━┻"));
|
||||||
|
registerTrack(track("magician", "Magician", "(ノ◕ヮ◕)ノ*:・゚✧"));
|
||||||
|
registerTrack(track("teddy-bear", "Teddy Bear", "ʕ•ᴥ•ʔ"));
|
||||||
|
registerTrack(track("disgust", "Disgust", "ಠ_ಠ"));
|
||||||
|
registerTrack(track("old-man", "Old Man", "໒( •̀ ╭ ͟ʖ╮ •́ )७"));
|
||||||
|
registerTrack(track("jake", "Jake", "(❍ᴥ❍ʋ)"));
|
||||||
|
registerTrack(track("finn", "Finn", "| (• ◡•)|"));
|
||||||
|
registerTrack(track("finn-and-jake", "Finn 'n Jake", "| (• ◡•)| (❍ᴥ❍ʋ)"));
|
||||||
|
registerTrack(track("boxer", "Boxer", "(ง'̀-'́)ง"));
|
||||||
|
registerTrack(track0("zoidberg", "Zoidberg", "Why not?", "(\\/) (°,,°) (\\/)"));
|
||||||
|
registerTrack(track("crying", "Crying", "(ಥ﹏ಥ)"));
|
||||||
|
// registerTrack(track("unknown", "Unknown", "(◕‿◕✿)"));
|
||||||
|
registerTrack(track("fireball", "Fireball", "༼つಠ益ಠ༽つ ─=≡ΣO))"));
|
||||||
|
registerTrack(track("stardust", "Stardust", "(つ◕౪◕)つ━☆゚.*・。゚"));
|
||||||
|
registerTrack(track("magic-missile", "Magic Missile", "( °-°)シ ミ★ ミ☆"));
|
||||||
|
registerTrack(track("blow-a-kiss", "Blowing a Kiss", "♡(´ε` )"));
|
||||||
|
registerTrack(track("pewpewpew", "PEWPEWPEW", "(☞^o^)☞"));
|
||||||
|
// registerTrack(track("pewpew", "pew pew", "(☞゚ヮ゚)☞"));
|
||||||
|
registerTrack(track("cool-guy", "Cool Guy", "(⌐■_■)"));
|
||||||
|
// registerTrack(track("unknown", "Unknown", "(ง •̀ω•́)ง✧"));
|
||||||
|
// registerTrack(track("unknown", "Unknown", "(╯⊙ ⊱ ⊙╰ )"));
|
||||||
|
registerTrack(track("party-time", "Party Time", "♪~ ᕕ(ᐛ)ᕗ"));
|
||||||
|
registerTrack(track1("whats-a-liter", "What's a Liter?", "also wats a leader"));
|
||||||
|
|
||||||
|
registerTrack(animatedTrack("deal-with-it", "Deal With It", "(⌐■_■)", "( •_•);( •_•)>⌐■-■;(⌐■_■);( •_•)>⌐■-■", 5));
|
||||||
|
registerTrack(animatedTrack("this-guy", "This Guy", "(☞゚ヮ゚)☞", "(☞゚ヮ゚)☞;☜(゚ヮ゚☜)", 5));
|
||||||
|
registerTrack(animatedTrack("lalala", "La La La", "♪┏(・o・) ┛", "♪┏(・o・) ┛;♪┗ ( ・o・) ┓♪;┏ ( ・o・) ┛♪;┗ (・o・ ) ┓♪;┏(・o・)┛♪", 1));
|
||||||
|
registerTrack(animatedTrack("gotta-go", "Gotta Go", "┬┴┬┴┤(・_├┬┴┬┴", "┬┴┬┴┤(・_├┬┴┬┴;┬┴┬┴┤ (・├┬┴┬┴;┬┴┬┴┤ (├┬┴┬┴;┬┴┬┴┤ (・├┬┴┬┴", 5));
|
||||||
|
// registerTrack(animatedTrack("unknown", "Unknown", "(o°▽°)o", "(o°▽°)o;(o_△_)o;(o°▽°)o", 5));
|
||||||
|
registerTrack(animatedTrack("rolling-around", "Rolling Around", "(゚‐゚)", "(.-.);(:I );(゚‐゚);( I:)", 4));
|
||||||
|
// registerTrack(animatedTrack("unknown", "Unknown", "('ω')", "('ω');( ε: );(.ω.);( :3 );('ω');( ε: );(.ω.);( :3 )", 5));
|
||||||
|
// registerTrack(animatedTrack("whee", "Whee", "(゚ー゚)", "(゚ー゚);( ゚ー);( ゚);( );(゚ );(ー゚ );(゚ー゚)", 1));
|
||||||
|
// registerTrack(animatedTrack("lets-spin", "Let's Spin", "I Say, Let's Spin", "(・ω・)", "( ・ω);( ・);( );(・ );(ω・ );(・ω・)", 1));
|
||||||
|
// registerTrack(animatedTrack("unknown", "Unknown", "(^∀^)", "(^∀^);( ^∀);( ^);( );(^ );(∀^ );(^∀^)", 5));
|
||||||
|
registerTrack(animatedTrack("whaaat", "Whaaaaaat?", "(°o°)", "(°o°);(°o。);(。o。);(。o°);(°o°);(°o。);(。o。);(。o°)", 5));
|
||||||
|
// registerTrack(animatedTrack("spinning", "Spinning", "(゚◇゚)", "(゚◇゚);( ゚◇);( ゚);( );(゚ );(◇゚ );(゚◇", 5));
|
||||||
|
// registerTrack(animatedTrack("unknown", "Unknown", "(・∇・)", "(・∇・);( ・∇);( ・);( );(・ );(∇・ );(・∇・)", 5));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addCommands()
|
||||||
|
{
|
||||||
|
addCommand(new GiveTrackCommand(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void registerTrack(Track track)
|
private void registerTrack(Track track)
|
||||||
{
|
{
|
||||||
|
if (_trackById.containsKey(track.getId()))
|
||||||
|
throw new IllegalArgumentException("Duplicate id: " + track.getId());
|
||||||
_registeredTracks.put(track.getClass(), track);
|
_registeredTracks.put(track.getClass(), track);
|
||||||
_trackById.put(track.getId(), track);
|
_trackById.put(track.getId(), track);
|
||||||
}
|
}
|
||||||
@ -62,6 +159,144 @@ public class TrackManager extends MiniPlugin
|
|||||||
|
|
||||||
public final List<Track> getAllTracks()
|
public final List<Track> getAllTracks()
|
||||||
{
|
{
|
||||||
return new ArrayList<>(_registeredTracks.values());
|
return new ArrayList<>(_trackById.values());
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean hasTrack(Player player, Track track)
|
||||||
|
{
|
||||||
|
return _inventoryManager.Get(player).getItemCount("track." + track.getId()) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unlockTrack(Player player, Track track)
|
||||||
|
{
|
||||||
|
unlockTrack(player, track, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unlockTrack(Player player, Track track, Consumer<TrackGiveResult> consumer)
|
||||||
|
{
|
||||||
|
unlockTrack(player.getName(), track.getId(), consumer);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unlockTrack(String player, String track, Consumer<TrackGiveResult> consumer)
|
||||||
|
{
|
||||||
|
_coreClientManager.getOrLoadClient(player, client ->
|
||||||
|
{
|
||||||
|
if (client == null)
|
||||||
|
{
|
||||||
|
if (consumer != null)
|
||||||
|
consumer.accept(TrackGiveResult.PLAYER_NOT_FOUND);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
runAsync(() ->
|
||||||
|
{
|
||||||
|
Callback<Boolean> successCallback = success ->
|
||||||
|
{
|
||||||
|
if (success)
|
||||||
|
{
|
||||||
|
if (consumer != null)
|
||||||
|
consumer.accept(TrackGiveResult.SUCCESS);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (consumer != null)
|
||||||
|
consumer.accept(TrackGiveResult.UNKNOWN_ERROR);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
Player playerObj = Bukkit.getPlayer(client.getUniqueId());
|
||||||
|
|
||||||
|
if (playerObj != null)
|
||||||
|
{
|
||||||
|
_inventoryManager.addItemToInventory(successCallback, playerObj, "track." + track, 1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_inventoryManager.addItemToInventoryForOffline(successCallback, client.getAccountId(), "track." + track, 1);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum TrackGiveResult
|
||||||
|
{
|
||||||
|
PLAYER_NOT_FOUND,
|
||||||
|
UNKNOWN_ERROR,
|
||||||
|
SUCCESS
|
||||||
|
}
|
||||||
|
|
||||||
|
// Begin helper methods
|
||||||
|
private ItemizedTrack animatedTrack(String id, String name, String desc, String frames, int ticks)
|
||||||
|
{
|
||||||
|
return TrackBuilder.builder(id)
|
||||||
|
.withShortName(name)
|
||||||
|
.withDescription(desc)
|
||||||
|
.setFrames(frames.split(";"))
|
||||||
|
.setTicks(ticks)
|
||||||
|
.withColor(ChatColor.GOLD)
|
||||||
|
.setHideIfUnowned(true)
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
private ItemizedTrack animatedTrack(String id, String name, String longName, String desc, String frames, int ticks)
|
||||||
|
{
|
||||||
|
return TrackBuilder.builder(id)
|
||||||
|
.withShortName(name)
|
||||||
|
.withLongName(longName)
|
||||||
|
.withDescription(desc)
|
||||||
|
.setFrames(frames.split(";"))
|
||||||
|
.setTicks(ticks)
|
||||||
|
.withColor(ChatColor.GOLD)
|
||||||
|
.setHideIfUnowned(true)
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
private ItemizedTrack track(String id, String name, String tierName)
|
||||||
|
{
|
||||||
|
return TrackBuilder.builder(id)
|
||||||
|
.withShortName(name)
|
||||||
|
.withDescription(tierName)
|
||||||
|
.setTierName(tierName)
|
||||||
|
.withColor(ChatColor.GOLD)
|
||||||
|
.setTierColor(ChatColor.GOLD)
|
||||||
|
.setHideIfUnowned(true)
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
private ItemizedTrack track0(String id, String shortName, String desc, String tierName)
|
||||||
|
{
|
||||||
|
return TrackBuilder.builder(id)
|
||||||
|
.withShortName(shortName)
|
||||||
|
.withDescription(desc)
|
||||||
|
.setTierName(tierName)
|
||||||
|
.withColor(ChatColor.GOLD)
|
||||||
|
.setTierColor(ChatColor.GOLD)
|
||||||
|
.setHideIfUnowned(true)
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
private ItemizedTrack track1(String id, String name, String desc)
|
||||||
|
{
|
||||||
|
return TrackBuilder.builder(id)
|
||||||
|
.withShortName(name)
|
||||||
|
.withDescription(desc)
|
||||||
|
.setTierName(name)
|
||||||
|
.withColor(ChatColor.GOLD)
|
||||||
|
.setTierColor(ChatColor.GOLD)
|
||||||
|
.setHideIfUnowned(true)
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
private ItemizedTrack track(String id, String shortName, String longName, String tierName)
|
||||||
|
{
|
||||||
|
return TrackBuilder.builder(id)
|
||||||
|
.withShortName(shortName)
|
||||||
|
.withLongName(longName)
|
||||||
|
.withDescription(tierName)
|
||||||
|
.setTierName(tierName)
|
||||||
|
.withColor(ChatColor.GOLD)
|
||||||
|
.setTierColor(ChatColor.GOLD)
|
||||||
|
.setHideIfUnowned(true)
|
||||||
|
.build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,31 @@
|
|||||||
|
package mineplex.core.titles.tracks.award;
|
||||||
|
|
||||||
|
import net.md_5.bungee.api.ChatColor;
|
||||||
|
|
||||||
|
import mineplex.core.titles.tracks.TrackFormat;
|
||||||
|
import mineplex.core.titles.tracks.TrackTier;
|
||||||
|
import mineplex.core.titles.tracks.ItemizedTrack;
|
||||||
|
|
||||||
|
public class Bridges2017Track extends ItemizedTrack
|
||||||
|
{
|
||||||
|
public Bridges2017Track()
|
||||||
|
{
|
||||||
|
super(
|
||||||
|
"tournament-br-2017",
|
||||||
|
ChatColor.GOLD,
|
||||||
|
"BotB 2017",
|
||||||
|
"2017 Bridges Champion",
|
||||||
|
"This track is awarded to the winners of the 2017 BotB Tournament",
|
||||||
|
true);
|
||||||
|
|
||||||
|
special();
|
||||||
|
|
||||||
|
getRequirements()
|
||||||
|
.addTier(new TrackTier(
|
||||||
|
"2017 Bridges Champion",
|
||||||
|
null,
|
||||||
|
this::owns,
|
||||||
|
new TrackFormat(ChatColor.GOLD, ChatColor.GOLD)
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package mineplex.core.titles.tracks;
|
package mineplex.core.titles.tracks.custom;
|
||||||
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
@ -6,6 +6,10 @@ import net.md_5.bungee.api.ChatColor;
|
|||||||
|
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
|
|
||||||
|
import mineplex.core.titles.tracks.Track;
|
||||||
|
import mineplex.core.titles.tracks.TrackFormat;
|
||||||
|
import mineplex.core.titles.tracks.TrackTier;
|
||||||
|
|
||||||
public class DongerTrack extends Track
|
public class DongerTrack extends Track
|
||||||
{
|
{
|
||||||
private static final Set<String> OWNERS = Sets.newHashSet(
|
private static final Set<String> OWNERS = Sets.newHashSet(
|
||||||
@ -13,7 +17,7 @@ public class DongerTrack extends Track
|
|||||||
"a20d59d1-cfd8-4116-ac27-45d9c7eb4a97"
|
"a20d59d1-cfd8-4116-ac27-45d9c7eb4a97"
|
||||||
);
|
);
|
||||||
|
|
||||||
protected DongerTrack()
|
public DongerTrack()
|
||||||
{
|
{
|
||||||
super("donger", ChatColor.AQUA, "Donger", "Donger", "ヽ༼ຈل͜ຈ༽ノ", true);
|
super("donger", ChatColor.AQUA, "Donger", "Donger", "ヽ༼ຈل͜ຈ༽ノ", true);
|
||||||
special();
|
special();
|
@ -1,4 +1,4 @@
|
|||||||
package mineplex.core.titles.tracks;
|
package mineplex.core.titles.tracks.custom;
|
||||||
|
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
@ -15,12 +15,15 @@ import com.google.common.collect.Sets;
|
|||||||
import mineplex.core.Managers;
|
import mineplex.core.Managers;
|
||||||
import mineplex.core.account.CoreClientManager;
|
import mineplex.core.account.CoreClientManager;
|
||||||
import mineplex.core.account.ILoginProcessor;
|
import mineplex.core.account.ILoginProcessor;
|
||||||
|
import mineplex.core.titles.tracks.Track;
|
||||||
|
import mineplex.core.titles.tracks.TrackFormat;
|
||||||
|
import mineplex.core.titles.tracks.TrackTier;
|
||||||
|
|
||||||
public class EarlyBirdTrack extends Track
|
public class EarlyBirdTrack extends Track
|
||||||
{
|
{
|
||||||
private final Set<UUID> _wonEternal = Sets.newConcurrentHashSet();
|
private final Set<UUID> _wonEternal = Sets.newConcurrentHashSet();
|
||||||
|
|
||||||
protected EarlyBirdTrack()
|
public EarlyBirdTrack()
|
||||||
{
|
{
|
||||||
super("early-bird", ChatColor.AQUA, "Early Bird", "Early Bird", "This track is unlocked by receiving the Eternal rank from chickens in the 2016 Thanksgiving Event", true);
|
super("early-bird", ChatColor.AQUA, "Early Bird", "Early Bird", "This track is unlocked by receiving the Eternal rank from chickens in the 2016 Thanksgiving Event", true);
|
||||||
special();
|
special();
|
@ -1,4 +1,4 @@
|
|||||||
package mineplex.core.titles.tracks;
|
package mineplex.core.titles.tracks.custom;
|
||||||
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
@ -9,12 +9,15 @@ import com.google.common.collect.Sets;
|
|||||||
import mineplex.core.Managers;
|
import mineplex.core.Managers;
|
||||||
import mineplex.core.account.CoreClientManager;
|
import mineplex.core.account.CoreClientManager;
|
||||||
import mineplex.core.common.Rank;
|
import mineplex.core.common.Rank;
|
||||||
|
import mineplex.core.titles.tracks.Track;
|
||||||
|
import mineplex.core.titles.tracks.TrackFormat;
|
||||||
|
import mineplex.core.titles.tracks.TrackTier;
|
||||||
|
|
||||||
public class HappyGaryTrack extends Track
|
public class HappyGaryTrack extends Track
|
||||||
{
|
{
|
||||||
private final CoreClientManager _coreClientManager = Managers.require(CoreClientManager.class);
|
private final CoreClientManager _coreClientManager = Managers.require(CoreClientManager.class);
|
||||||
|
|
||||||
protected HappyGaryTrack()
|
public HappyGaryTrack()
|
||||||
{
|
{
|
||||||
super("happygary", ChatColor.GOLD, "Happy Gary", "Happy Gary", "ᐛ", true);
|
super("happygary", ChatColor.GOLD, "Happy Gary", "Happy Gary", "ᐛ", true);
|
||||||
special();
|
special();
|
@ -1,16 +1,19 @@
|
|||||||
package mineplex.core.titles.tracks;
|
package mineplex.core.titles.tracks.custom;
|
||||||
|
|
||||||
import net.md_5.bungee.api.ChatColor;
|
import net.md_5.bungee.api.ChatColor;
|
||||||
|
|
||||||
import mineplex.core.Managers;
|
import mineplex.core.Managers;
|
||||||
import mineplex.core.account.CoreClientManager;
|
import mineplex.core.account.CoreClientManager;
|
||||||
import mineplex.core.common.Rank;
|
import mineplex.core.common.Rank;
|
||||||
|
import mineplex.core.titles.tracks.Track;
|
||||||
|
import mineplex.core.titles.tracks.TrackFormat;
|
||||||
|
import mineplex.core.titles.tracks.TrackTier;
|
||||||
|
|
||||||
public class LeaderTrack extends Track
|
public class LeaderTrack extends Track
|
||||||
{
|
{
|
||||||
private final CoreClientManager _coreClientManager = Managers.require(CoreClientManager.class);
|
private final CoreClientManager _coreClientManager = Managers.require(CoreClientManager.class);
|
||||||
|
|
||||||
protected LeaderTrack()
|
public LeaderTrack()
|
||||||
{
|
{
|
||||||
super("leader", ChatColor.DARK_RED, "Leader", "What's a Leader?", "also wat does dev mean", true);
|
super("leader", ChatColor.DARK_RED, "Leader", "What's a Leader?", "also wat does dev mean", true);
|
||||||
special();
|
special();
|
@ -1,4 +1,4 @@
|
|||||||
package mineplex.core.titles.tracks;
|
package mineplex.core.titles.tracks.custom;
|
||||||
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
@ -6,13 +6,17 @@ import net.md_5.bungee.api.ChatColor;
|
|||||||
|
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
|
|
||||||
|
import mineplex.core.titles.tracks.Track;
|
||||||
|
import mineplex.core.titles.tracks.TrackFormat;
|
||||||
|
import mineplex.core.titles.tracks.TrackTier;
|
||||||
|
|
||||||
public class SnekTrack extends Track
|
public class SnekTrack extends Track
|
||||||
{
|
{
|
||||||
private static final Set<String> OWNERS = Sets.newHashSet(
|
private static final Set<String> OWNERS = Sets.newHashSet(
|
||||||
"b86b54da-93dd-46f9-be33-27bd92aa36d7"
|
"b86b54da-93dd-46f9-be33-27bd92aa36d7"
|
||||||
);
|
);
|
||||||
|
|
||||||
protected SnekTrack()
|
public SnekTrack()
|
||||||
{
|
{
|
||||||
super("snek", ChatColor.DARK_GREEN, "Snek", "Snek", "oh you have do me a frighten", true);
|
super("snek", ChatColor.DARK_GREEN, "Snek", "Snek", "oh you have do me a frighten", true);
|
||||||
special();
|
special();
|
@ -1,18 +1,21 @@
|
|||||||
package mineplex.core.titles.tracks;
|
package mineplex.core.titles.tracks.custom;
|
||||||
|
|
||||||
import net.md_5.bungee.api.ChatColor;
|
import net.md_5.bungee.api.ChatColor;
|
||||||
|
|
||||||
import mineplex.core.Managers;
|
import mineplex.core.Managers;
|
||||||
import mineplex.core.account.CoreClientManager;
|
import mineplex.core.account.CoreClientManager;
|
||||||
import mineplex.core.common.Rank;
|
import mineplex.core.common.Rank;
|
||||||
|
import mineplex.core.titles.tracks.Track;
|
||||||
|
import mineplex.core.titles.tracks.TrackFormat;
|
||||||
|
import mineplex.core.titles.tracks.TrackTier;
|
||||||
|
|
||||||
public class TableFlipTrack extends Track
|
public class TableFlipTrack extends Track
|
||||||
{
|
{
|
||||||
private final CoreClientManager _coreClientManager = Managers.require(CoreClientManager.class);
|
private final CoreClientManager _coreClientManager = Managers.require(CoreClientManager.class);
|
||||||
|
|
||||||
protected TableFlipTrack()
|
public TableFlipTrack()
|
||||||
{
|
{
|
||||||
super("tableflip", ChatColor.AQUA, "Tableflip", "Tableflip", "(╯°□°)╯ ︵ ┻━┻", true);
|
super("tableflipanim", ChatColor.AQUA, "Tableflip", "Tableflip", "(╯°□°)╯ ︵ ┻━┻", true);
|
||||||
special();
|
special();
|
||||||
getRequirements()
|
getRequirements()
|
||||||
.addTier(new TrackTier(
|
.addTier(new TrackTier(
|
@ -0,0 +1,173 @@
|
|||||||
|
package mineplex.core.titles.tracks.custom;
|
||||||
|
|
||||||
|
import net.md_5.bungee.api.ChatColor;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.Validate;
|
||||||
|
|
||||||
|
import mineplex.core.titles.tracks.ItemizedTrack;
|
||||||
|
import mineplex.core.titles.tracks.Track;
|
||||||
|
import mineplex.core.titles.tracks.TrackFormat;
|
||||||
|
import mineplex.core.titles.tracks.TrackTier;
|
||||||
|
|
||||||
|
public class TrackBuilder
|
||||||
|
{
|
||||||
|
private String _id;
|
||||||
|
private String _shortName;
|
||||||
|
private String _longName;
|
||||||
|
private ChatColor _color;
|
||||||
|
private String _desc;
|
||||||
|
private boolean _hideIfUnowned;
|
||||||
|
|
||||||
|
private String _tierName;
|
||||||
|
private String _tierDesc;
|
||||||
|
private ChatColor _tierColor;
|
||||||
|
private ChatColor _magicColor;
|
||||||
|
|
||||||
|
private int _ticks;
|
||||||
|
private String[] _frames;
|
||||||
|
|
||||||
|
private TrackBuilder(String id)
|
||||||
|
{
|
||||||
|
this._id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TrackBuilder withShortName(String shortName)
|
||||||
|
{
|
||||||
|
Validate.notNull(shortName, "Short name cannot be null");
|
||||||
|
this._shortName = shortName.length() > 16 ? shortName.substring(0, 16) : shortName;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TrackBuilder withLongName(String longName)
|
||||||
|
{
|
||||||
|
Validate.notNull(longName, "Long name cannot be null");
|
||||||
|
this._longName = longName;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TrackBuilder withColor(ChatColor color)
|
||||||
|
{
|
||||||
|
Validate.notNull(color, "Color cannot be null");
|
||||||
|
this._color = color;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TrackBuilder withDescription(String desc)
|
||||||
|
{
|
||||||
|
Validate.notNull(desc, "Description cannot be null");
|
||||||
|
this._desc = desc;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TrackBuilder setHideIfUnowned(boolean hide)
|
||||||
|
{
|
||||||
|
this._hideIfUnowned = hide;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TrackBuilder setTierName(String tierName)
|
||||||
|
{
|
||||||
|
Validate.notNull(tierName, "Tier name cannot be null");
|
||||||
|
this._tierName = tierName;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TrackBuilder setTierDesc(String tierDesc)
|
||||||
|
{
|
||||||
|
Validate.notNull(tierDesc, "Tier desc cannot be null");
|
||||||
|
this._tierDesc = tierDesc;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TrackBuilder setTierColor(ChatColor tierColor)
|
||||||
|
{
|
||||||
|
Validate.notNull(tierColor, "Tier color cannot be null");
|
||||||
|
this._tierColor = tierColor;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TrackBuilder setTierMagicColor(ChatColor magicColor)
|
||||||
|
{
|
||||||
|
Validate.notNull(magicColor, "Magic color cannot be null");
|
||||||
|
this._magicColor = magicColor;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TrackBuilder setFrames(String... frames)
|
||||||
|
{
|
||||||
|
Validate.notNull(frames, "Frames cannot be null");
|
||||||
|
if (frames.length == 0)
|
||||||
|
return this;
|
||||||
|
this._frames = frames;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TrackBuilder setTicks(int ticks)
|
||||||
|
{
|
||||||
|
this._ticks = ticks;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public <T extends Track> T build()
|
||||||
|
{
|
||||||
|
Validate.notNull(_id, "ID cannot be null");
|
||||||
|
Validate.notNull(_color, "Color cannot be null");
|
||||||
|
Validate.notNull(_shortName, "Short name cannot be null");
|
||||||
|
|
||||||
|
if (_desc == null)
|
||||||
|
_desc = _shortName;
|
||||||
|
if (_longName == null)
|
||||||
|
_longName = _shortName;
|
||||||
|
if (_tierColor == null)
|
||||||
|
_tierColor = _color;
|
||||||
|
if (_tierName == null)
|
||||||
|
_tierName = _shortName;
|
||||||
|
if (_tierDesc == null)
|
||||||
|
_tierDesc = _desc;
|
||||||
|
|
||||||
|
if (_frames == null)
|
||||||
|
{
|
||||||
|
return (T) new ItemizedTrack(_id, _color, _shortName, _longName, _desc, _hideIfUnowned)
|
||||||
|
{
|
||||||
|
ItemizedTrack init()
|
||||||
|
{
|
||||||
|
getRequirements()
|
||||||
|
.addTier(new TrackTier(
|
||||||
|
_tierName,
|
||||||
|
_tierDesc,
|
||||||
|
this::owns,
|
||||||
|
new TrackFormat(_tierColor, _magicColor)
|
||||||
|
));
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}.init();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Validate.isTrue(_ticks >= 1, "Ticks must be >= 1");
|
||||||
|
|
||||||
|
return (T) new ItemizedTrack(_id, _color, _shortName, _longName, _desc, _hideIfUnowned)
|
||||||
|
{
|
||||||
|
ItemizedTrack init()
|
||||||
|
{
|
||||||
|
getRequirements()
|
||||||
|
.addTier(new TrackTier(
|
||||||
|
_tierName,
|
||||||
|
_tierDesc,
|
||||||
|
this::owns,
|
||||||
|
new TrackFormat(_tierColor, _magicColor)
|
||||||
|
.animated(_ticks, _frames)
|
||||||
|
));
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}.init();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static TrackBuilder builder(String id)
|
||||||
|
{
|
||||||
|
Validate.notNull(id, "ID cannot be null");
|
||||||
|
Validate.isTrue(id.length() <= 32, "ID must not be longer than 32 characters");
|
||||||
|
return new TrackBuilder(id);
|
||||||
|
}
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package mineplex.core.titles.tracks;
|
package mineplex.core.titles.tracks.custom;
|
||||||
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
@ -6,6 +6,10 @@ import net.md_5.bungee.api.ChatColor;
|
|||||||
|
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
|
|
||||||
|
import mineplex.core.titles.tracks.Track;
|
||||||
|
import mineplex.core.titles.tracks.TrackFormat;
|
||||||
|
import mineplex.core.titles.tracks.TrackTier;
|
||||||
|
|
||||||
// hmu t3
|
// hmu t3
|
||||||
public class WizardTrack extends Track
|
public class WizardTrack extends Track
|
||||||
{
|
{
|
||||||
@ -14,7 +18,7 @@ public class WizardTrack extends Track
|
|||||||
"2016b565-0a63-4a2d-800b-b786ac256288"
|
"2016b565-0a63-4a2d-800b-b786ac256288"
|
||||||
);
|
);
|
||||||
|
|
||||||
protected WizardTrack()
|
public WizardTrack()
|
||||||
{
|
{
|
||||||
super("wizard", ChatColor.DARK_PURPLE, "Wizard", "Wizard", "(ノ◕ヮ◕)ノ*:・゚✧", true);
|
super("wizard", ChatColor.DARK_PURPLE, "Wizard", "Wizard", "(ノ◕ヮ◕)ノ*:・゚✧", true);
|
||||||
special();
|
special();
|
@ -1,10 +1,13 @@
|
|||||||
package mineplex.core.titles.tracks;
|
package mineplex.core.titles.tracks.standard;
|
||||||
|
|
||||||
import net.md_5.bungee.api.ChatColor;
|
import net.md_5.bungee.api.ChatColor;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import mineplex.core.gadget.set.SetEmerald;
|
import mineplex.core.gadget.set.SetEmerald;
|
||||||
|
import mineplex.core.titles.tracks.Track;
|
||||||
|
import mineplex.core.titles.tracks.TrackFormat;
|
||||||
|
import mineplex.core.titles.tracks.TrackTier;
|
||||||
|
|
||||||
public class GemCollectorTrack extends Track
|
public class GemCollectorTrack extends Track
|
||||||
{
|
{
|
@ -1,4 +1,4 @@
|
|||||||
package mineplex.core.titles.tracks;
|
package mineplex.core.titles.tracks.standard;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
@ -24,6 +24,9 @@ import mineplex.core.gadget.set.SetFreedom;
|
|||||||
import mineplex.core.gadget.set.SetFrostLord;
|
import mineplex.core.gadget.set.SetFrostLord;
|
||||||
import mineplex.core.gadget.types.Gadget;
|
import mineplex.core.gadget.types.Gadget;
|
||||||
import mineplex.core.gadget.types.GadgetSet;
|
import mineplex.core.gadget.types.GadgetSet;
|
||||||
|
import mineplex.core.titles.tracks.Track;
|
||||||
|
import mineplex.core.titles.tracks.TrackFormat;
|
||||||
|
import mineplex.core.titles.tracks.TrackTier;
|
||||||
import mineplex.core.treasure.TreasureType;
|
import mineplex.core.treasure.TreasureType;
|
||||||
import mineplex.core.treasure.event.TreasureStartEvent;
|
import mineplex.core.treasure.event.TreasureStartEvent;
|
||||||
|
|
||||||
@ -111,7 +114,7 @@ public class HolidayCheerTrack extends Track
|
|||||||
@EventHandler
|
@EventHandler
|
||||||
public void onUseCosmetic(TreasureStartEvent event)
|
public void onUseCosmetic(TreasureStartEvent event)
|
||||||
{
|
{
|
||||||
if (!HOLIDAY_CHESTS.contains(event.getTreasureType()))
|
if (!HOLIDAY_CHESTS.contains(event.getTreasure().getTreasureType()))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
int points = 100;
|
int points = 100;
|
@ -1,4 +1,4 @@
|
|||||||
package mineplex.core.titles.tracks;
|
package mineplex.core.titles.tracks.standard;
|
||||||
|
|
||||||
import net.md_5.bungee.api.ChatColor;
|
import net.md_5.bungee.api.ChatColor;
|
||||||
|
|
||||||
@ -8,6 +8,9 @@ import mineplex.core.Managers;
|
|||||||
import mineplex.core.achievement.AchievementCategory;
|
import mineplex.core.achievement.AchievementCategory;
|
||||||
import mineplex.core.donation.DonationManager;
|
import mineplex.core.donation.DonationManager;
|
||||||
import mineplex.core.game.GameDisplay;
|
import mineplex.core.game.GameDisplay;
|
||||||
|
import mineplex.core.titles.tracks.Track;
|
||||||
|
import mineplex.core.titles.tracks.TrackFormat;
|
||||||
|
import mineplex.core.titles.tracks.TrackTier;
|
||||||
|
|
||||||
public class KitCollectorTrack extends Track
|
public class KitCollectorTrack extends Track
|
||||||
{
|
{
|
@ -1,10 +1,13 @@
|
|||||||
package mineplex.core.titles.tracks;
|
package mineplex.core.titles.tracks.standard;
|
||||||
|
|
||||||
import net.md_5.bungee.api.ChatColor;
|
import net.md_5.bungee.api.ChatColor;
|
||||||
|
|
||||||
import mineplex.core.Managers;
|
import mineplex.core.Managers;
|
||||||
import mineplex.core.achievement.Achievement;
|
import mineplex.core.achievement.Achievement;
|
||||||
import mineplex.core.achievement.AchievementManager;
|
import mineplex.core.achievement.AchievementManager;
|
||||||
|
import mineplex.core.titles.tracks.Track;
|
||||||
|
import mineplex.core.titles.tracks.TrackFormat;
|
||||||
|
import mineplex.core.titles.tracks.TrackTier;
|
||||||
|
|
||||||
public class LevelerTrack extends Track
|
public class LevelerTrack extends Track
|
||||||
{
|
{
|
@ -1,4 +1,4 @@
|
|||||||
package mineplex.core.titles.tracks;
|
package mineplex.core.titles.tracks.standard;
|
||||||
|
|
||||||
import java.util.EnumMap;
|
import java.util.EnumMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
@ -14,6 +14,9 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
|
|
||||||
import mineplex.core.reward.Reward;
|
import mineplex.core.reward.Reward;
|
||||||
import mineplex.core.reward.RewardRarity;
|
import mineplex.core.reward.RewardRarity;
|
||||||
|
import mineplex.core.titles.tracks.Track;
|
||||||
|
import mineplex.core.titles.tracks.TrackFormat;
|
||||||
|
import mineplex.core.titles.tracks.TrackTier;
|
||||||
import mineplex.core.treasure.TreasureType;
|
import mineplex.core.treasure.TreasureType;
|
||||||
import mineplex.core.treasure.event.TreasureStartEvent;
|
import mineplex.core.treasure.event.TreasureStartEvent;
|
||||||
|
|
||||||
@ -119,8 +122,8 @@ public class LuckyTrack extends Track
|
|||||||
|
|
||||||
int basePoints = POINTS.get(reward.getRarity());
|
int basePoints = POINTS.get(reward.getRarity());
|
||||||
|
|
||||||
if (MULTIPLIER.get(event.getTreasureType()) != null)
|
if (MULTIPLIER.get(event.getTreasure().getTreasureType()) != null)
|
||||||
basePoints *= MULTIPLIER.get(event.getTreasureType());
|
basePoints *= MULTIPLIER.get(event.getTreasure().getTreasureType());
|
||||||
|
|
||||||
incrementFor(event.getPlayer(), basePoints);
|
incrementFor(event.getPlayer(), basePoints);
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package mineplex.core.titles.tracks;
|
package mineplex.core.titles.tracks.standard;
|
||||||
|
|
||||||
import net.md_5.bungee.api.ChatColor;
|
import net.md_5.bungee.api.ChatColor;
|
||||||
|
|
||||||
@ -7,12 +7,15 @@ import org.bukkit.entity.Player;
|
|||||||
import mineplex.core.Managers;
|
import mineplex.core.Managers;
|
||||||
import mineplex.core.game.GameDisplay;
|
import mineplex.core.game.GameDisplay;
|
||||||
import mineplex.core.stats.StatsManager;
|
import mineplex.core.stats.StatsManager;
|
||||||
|
import mineplex.core.titles.tracks.Track;
|
||||||
|
import mineplex.core.titles.tracks.TrackFormat;
|
||||||
|
import mineplex.core.titles.tracks.TrackTier;
|
||||||
|
|
||||||
public class MineplexMasteryTrack extends Track
|
public class MineplexMasteryTrack extends Track
|
||||||
{
|
{
|
||||||
private final StatsManager _statsManager;
|
private final StatsManager _statsManager;
|
||||||
|
|
||||||
protected MineplexMasteryTrack()
|
public MineplexMasteryTrack()
|
||||||
{
|
{
|
||||||
super("mineplex-mastery", "Mineplex Mastery", "This track is unlocked by winning different games on Mineplex");
|
super("mineplex-mastery", "Mineplex Mastery", "This track is unlocked by winning different games on Mineplex");
|
||||||
getRequirements()
|
getRequirements()
|
@ -1,4 +1,4 @@
|
|||||||
package mineplex.core.titles.tracks;
|
package mineplex.core.titles.tracks.standard;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -13,6 +13,9 @@ import mineplex.core.gadget.gadgets.item.ItemFirework;
|
|||||||
import mineplex.core.gadget.gadgets.item.ItemPartyPopper;
|
import mineplex.core.gadget.gadgets.item.ItemPartyPopper;
|
||||||
import mineplex.core.gadget.set.SetParty;
|
import mineplex.core.gadget.set.SetParty;
|
||||||
import mineplex.core.gadget.types.Gadget;
|
import mineplex.core.gadget.types.Gadget;
|
||||||
|
import mineplex.core.titles.tracks.Track;
|
||||||
|
import mineplex.core.titles.tracks.TrackFormat;
|
||||||
|
import mineplex.core.titles.tracks.TrackTier;
|
||||||
|
|
||||||
public class PartyAnimalTrack extends Track
|
public class PartyAnimalTrack extends Track
|
||||||
{
|
{
|
@ -1,4 +1,4 @@
|
|||||||
package mineplex.core.titles.tracks;
|
package mineplex.core.titles.tracks.standard;
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@ -9,6 +9,9 @@ import org.bukkit.entity.Player;
|
|||||||
|
|
||||||
import mineplex.core.gadget.set.SetMusic;
|
import mineplex.core.gadget.set.SetMusic;
|
||||||
import mineplex.core.game.GameDisplay;
|
import mineplex.core.game.GameDisplay;
|
||||||
|
import mineplex.core.titles.tracks.Track;
|
||||||
|
import mineplex.core.titles.tracks.TrackFormat;
|
||||||
|
import mineplex.core.titles.tracks.TrackTier;
|
||||||
|
|
||||||
public class PeacefulTrack extends Track
|
public class PeacefulTrack extends Track
|
||||||
{
|
{
|
@ -1,10 +1,14 @@
|
|||||||
package mineplex.core.titles.tracks;
|
package mineplex.core.titles.tracks.standard;
|
||||||
|
|
||||||
import net.md_5.bungee.api.ChatColor;
|
import net.md_5.bungee.api.ChatColor;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import mineplex.core.Managers;
|
import mineplex.core.Managers;
|
||||||
|
import mineplex.core.titles.tracks.Track;
|
||||||
|
import mineplex.core.titles.tracks.TrackFormat;
|
||||||
|
import mineplex.core.titles.tracks.TrackManager;
|
||||||
|
import mineplex.core.titles.tracks.TrackTier;
|
||||||
|
|
||||||
public class PerfectionistTrack extends Track
|
public class PerfectionistTrack extends Track
|
||||||
{
|
{
|
@ -1,23 +1,25 @@
|
|||||||
package mineplex.core.titles.tracks;
|
package mineplex.core.titles.tracks.standard;
|
||||||
|
|
||||||
import net.md_5.bungee.api.ChatColor;
|
import net.md_5.bungee.api.ChatColor;
|
||||||
|
|
||||||
import mineplex.core.Managers;
|
import mineplex.core.Managers;
|
||||||
import mineplex.core.bonuses.BonusManager;
|
import mineplex.core.bonuses.BonusManager;
|
||||||
import mineplex.core.powerplayclub.PowerPlayClubRepository;
|
import mineplex.core.titles.tracks.Track;
|
||||||
|
import mineplex.core.titles.tracks.TrackFormat;
|
||||||
|
import mineplex.core.titles.tracks.TrackTier;
|
||||||
|
|
||||||
public class PowerPlayTrack extends Track
|
public class PowerPlayTrack extends Track
|
||||||
{
|
{
|
||||||
private final PowerPlayClubRepository _powerPlayClubRepository = Managers.require(BonusManager.class).getPowerPlayClubRepository();
|
private final BonusManager _bonusManager = Managers.require(BonusManager.class);
|
||||||
|
|
||||||
protected PowerPlayTrack()
|
public PowerPlayTrack()
|
||||||
{
|
{
|
||||||
super("power-play", ChatColor.AQUA, "Power Play", "Power Play VIP", "This track is unlocked by subscribing to the Power Play Club");
|
super("power-play", ChatColor.AQUA, "Power Play", "Power Play VIP", "This track is unlocked by subscribing to the Power Play Club");
|
||||||
getRequirements()
|
getRequirements()
|
||||||
.addTier(new TrackTier(
|
.addTier(new TrackTier(
|
||||||
"Power Play Club",
|
"Power Play Club",
|
||||||
null,
|
null,
|
||||||
player -> _powerPlayClubRepository.getCachedData(player).isSubscribed() ? 1L : 0L,
|
player -> _bonusManager.getPowerPlayClubRepository().getCachedData(player).isSubscribed() ? 1L : 0L,
|
||||||
1,
|
1,
|
||||||
new TrackFormat(ChatColor.AQUA, ChatColor.AQUA)
|
new TrackFormat(ChatColor.AQUA, ChatColor.AQUA)
|
||||||
));
|
));
|
@ -1,7 +1,11 @@
|
|||||||
package mineplex.core.titles.tracks;
|
package mineplex.core.titles.tracks.standard;
|
||||||
|
|
||||||
import net.md_5.bungee.api.ChatColor;
|
import net.md_5.bungee.api.ChatColor;
|
||||||
|
|
||||||
|
import mineplex.core.titles.tracks.Track;
|
||||||
|
import mineplex.core.titles.tracks.TrackFormat;
|
||||||
|
import mineplex.core.titles.tracks.TrackTier;
|
||||||
|
|
||||||
public class SurvivorTrack extends Track
|
public class SurvivorTrack extends Track
|
||||||
{
|
{
|
||||||
public SurvivorTrack()
|
public SurvivorTrack()
|
@ -1,4 +1,4 @@
|
|||||||
package mineplex.core.titles.tracks;
|
package mineplex.core.titles.tracks.standard;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -12,6 +12,9 @@ import mineplex.core.gadget.event.PlayerConsumeMelonEvent;
|
|||||||
import mineplex.core.gadget.gadgets.item.ItemLovePotion;
|
import mineplex.core.gadget.gadgets.item.ItemLovePotion;
|
||||||
import mineplex.core.gadget.set.SetCandyCane;
|
import mineplex.core.gadget.set.SetCandyCane;
|
||||||
import mineplex.core.gadget.types.Gadget;
|
import mineplex.core.gadget.types.Gadget;
|
||||||
|
import mineplex.core.titles.tracks.Track;
|
||||||
|
import mineplex.core.titles.tracks.TrackFormat;
|
||||||
|
import mineplex.core.titles.tracks.TrackTier;
|
||||||
|
|
||||||
public class SweetToothTrack extends Track
|
public class SweetToothTrack extends Track
|
||||||
{
|
{
|
@ -1,4 +1,4 @@
|
|||||||
package mineplex.core.titles.tracks;
|
package mineplex.core.titles.tracks.standard;
|
||||||
|
|
||||||
import java.util.EnumMap;
|
import java.util.EnumMap;
|
||||||
|
|
||||||
@ -7,6 +7,9 @@ import net.md_5.bungee.api.ChatColor;
|
|||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
|
|
||||||
import mineplex.core.gadget.set.SetWisdom;
|
import mineplex.core.gadget.set.SetWisdom;
|
||||||
|
import mineplex.core.titles.tracks.Track;
|
||||||
|
import mineplex.core.titles.tracks.TrackFormat;
|
||||||
|
import mineplex.core.titles.tracks.TrackTier;
|
||||||
import mineplex.core.treasure.TreasureType;
|
import mineplex.core.treasure.TreasureType;
|
||||||
import mineplex.core.treasure.event.TreasureStartEvent;
|
import mineplex.core.treasure.event.TreasureStartEvent;
|
||||||
|
|
||||||
@ -79,9 +82,9 @@ public class TreasureHunterTrack extends Track
|
|||||||
@EventHandler
|
@EventHandler
|
||||||
public void onUseCosmetic(TreasureStartEvent event)
|
public void onUseCosmetic(TreasureStartEvent event)
|
||||||
{
|
{
|
||||||
if (POINTS.containsKey(event.getTreasureType()))
|
if (POINTS.containsKey(event.getTreasure().getTreasureType()))
|
||||||
{
|
{
|
||||||
int basePoints = POINTS.get(event.getTreasureType());
|
int basePoints = POINTS.get(event.getTreasure().getTreasureType());
|
||||||
|
|
||||||
if (isSetActive(event.getPlayer(), SetWisdom.class))
|
if (isSetActive(event.getPlayer(), SetWisdom.class))
|
||||||
{
|
{
|
@ -1,4 +1,4 @@
|
|||||||
package mineplex.core.titles.tracks;
|
package mineplex.core.titles.tracks.standard;
|
||||||
|
|
||||||
import java.util.EnumMap;
|
import java.util.EnumMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
@ -14,6 +14,9 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
|
|
||||||
import mineplex.core.reward.Reward;
|
import mineplex.core.reward.Reward;
|
||||||
import mineplex.core.reward.RewardRarity;
|
import mineplex.core.reward.RewardRarity;
|
||||||
|
import mineplex.core.titles.tracks.Track;
|
||||||
|
import mineplex.core.titles.tracks.TrackFormat;
|
||||||
|
import mineplex.core.titles.tracks.TrackTier;
|
||||||
import mineplex.core.treasure.event.TreasureStartEvent;
|
import mineplex.core.treasure.event.TreasureStartEvent;
|
||||||
|
|
||||||
public class UnluckyTrack extends Track
|
public class UnluckyTrack extends Track
|
@ -1,10 +1,13 @@
|
|||||||
package mineplex.core.titles.tracks;
|
package mineplex.core.titles.tracks.standard;
|
||||||
|
|
||||||
import net.md_5.bungee.api.ChatColor;
|
import net.md_5.bungee.api.ChatColor;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import mineplex.core.gadget.set.SetVampire;
|
import mineplex.core.gadget.set.SetVampire;
|
||||||
|
import mineplex.core.titles.tracks.Track;
|
||||||
|
import mineplex.core.titles.tracks.TrackFormat;
|
||||||
|
import mineplex.core.titles.tracks.TrackTier;
|
||||||
|
|
||||||
public class WarriorTrack extends Track
|
public class WarriorTrack extends Track
|
||||||
{
|
{
|
@ -49,9 +49,6 @@ import mineplex.core.treasure.animation.LootRareAnimation;
|
|||||||
import mineplex.core.treasure.animation.LootUncommonAnimation;
|
import mineplex.core.treasure.animation.LootUncommonAnimation;
|
||||||
import mineplex.core.treasure.animation.TreasureRemoveAnimation;
|
import mineplex.core.treasure.animation.TreasureRemoveAnimation;
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by Shaun on 8/27/2014.
|
|
||||||
*/
|
|
||||||
public class Treasure
|
public class Treasure
|
||||||
{
|
{
|
||||||
private BlockRestore _blockRestore;
|
private BlockRestore _blockRestore;
|
||||||
@ -82,15 +79,18 @@ public class Treasure
|
|||||||
private HologramManager _hologramManager;
|
private HologramManager _hologramManager;
|
||||||
private ServerStatusManager _statusManager;
|
private ServerStatusManager _statusManager;
|
||||||
|
|
||||||
public Treasure(Player player, Reward[] rewards, RewardType rewardType, Block centerBlock, Block[] chestBlocks, TreasureType treasureType, BlockRestore blockRestore, HologramManager hologramManager, ServerStatusManager statusManager)
|
private TreasureManager _treasureManager;
|
||||||
|
|
||||||
|
public Treasure(TreasureManager treasureManager, Player player, Reward[] rewards, RewardType rewardType, Block centerBlock, Block[] chestBlocks, TreasureType treasureType, BlockRestore blockRestore, HologramManager hologramManager, ServerStatusManager statusManager)
|
||||||
{
|
{
|
||||||
this(player, new Random(), rewards, rewardType, centerBlock, chestBlocks, treasureType, hologramManager, statusManager);
|
this(treasureManager, player, new Random(), rewards, rewardType, centerBlock, chestBlocks, treasureType, hologramManager, statusManager);
|
||||||
|
|
||||||
_blockRestore = blockRestore;
|
_blockRestore = blockRestore;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Treasure(Player player, Random seed, Reward[] rewards, RewardType rewardType, Block centerBlock, Block[] chestBlocks, TreasureType treasureType, HologramManager hologramManager, ServerStatusManager statusManager)
|
public Treasure(TreasureManager treasureManager, Player player, Random seed, Reward[] rewards, RewardType rewardType, Block centerBlock, Block[] chestBlocks, TreasureType treasureType, HologramManager hologramManager, ServerStatusManager statusManager)
|
||||||
{
|
{
|
||||||
|
_treasureManager = treasureManager;
|
||||||
_player = player;
|
_player = player;
|
||||||
_random = seed;
|
_random = seed;
|
||||||
|
|
||||||
@ -215,6 +215,15 @@ public class Treasure
|
|||||||
double rX = Math.random() * 2 - 1, rZ = Math.random() * 2 - 1;
|
double rX = Math.random() * 2 - 1, rZ = Math.random() * 2 - 1;
|
||||||
UtilParticle.PlayParticle(type, block.getLocation().add(.5 + rX, .7, .5 + rZ), .5f, .5f, .5f, .25f, 1, ViewDist.NORMAL);
|
UtilParticle.PlayParticle(type, block.getLocation().add(.5 + rX, .7, .5 + rZ), .5f, .5f, .5f, .25f, 1, ViewDist.NORMAL);
|
||||||
}
|
}
|
||||||
|
else if (_treasureType == TreasureType.ST_PATRICKS)
|
||||||
|
{
|
||||||
|
int r = (int) (Math.random() * 2);
|
||||||
|
double rX = Math.random() * 2 - 1, rZ = Math.random() * 2 - 1;
|
||||||
|
ColoredParticle coloredParticle = new ColoredParticle(UtilParticle.ParticleType.RED_DUST,
|
||||||
|
new DustSpellColor((r == 0) ? Color.GREEN : new Color(0, 100, 0)),
|
||||||
|
block.getLocation().add(.5 + rX, .7, .5 + rZ));
|
||||||
|
coloredParticle.display();
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
UtilParticle.PlayParticle(type, block.getLocation().add(0.5, 0.5, 0.5), 0.5F, 0.5F, 0.5F, 0.2F, 0,
|
UtilParticle.PlayParticle(type, block.getLocation().add(0.5, 0.5, 0.5), 0.5F, 0.5F, 0.5F, 0.2F, 0,
|
||||||
@ -320,7 +329,7 @@ public class Treasure
|
|||||||
|
|
||||||
if (isFinished())
|
if (isFinished())
|
||||||
{
|
{
|
||||||
TreasureRemoveAnimation animation = new TreasureRemoveAnimation(Treasure.this, _openedChestBlockInfo, _chestBlockInfo);
|
TreasureRemoveAnimation animation = new TreasureRemoveAnimation(Treasure.this, _chestBlockInfo);
|
||||||
_animations.add(animation);
|
_animations.add(animation);
|
||||||
_finished = true;
|
_finished = true;
|
||||||
}
|
}
|
||||||
@ -452,4 +461,14 @@ public class Treasure
|
|||||||
{
|
{
|
||||||
return _treasureType;
|
return _treasureType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void addAnimation(Animation animation)
|
||||||
|
{
|
||||||
|
_animations.add(animation);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TreasureManager getTreasureManager()
|
||||||
|
{
|
||||||
|
return _treasureManager;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -115,6 +115,7 @@ public class TreasureLocation implements Listener
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
chargeAccount(player, treasureType, new Callback<Boolean>()
|
chargeAccount(player, treasureType, new Callback<Boolean>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
@ -172,12 +173,12 @@ public class TreasureLocation implements Listener
|
|||||||
Bukkit.broadcastMessage(F.main("Treasure", F.name(player.getName()) + " is opening " + pron + name));
|
Bukkit.broadcastMessage(F.main("Treasure", F.name(player.getName()) + " is opening " + pron + name));
|
||||||
}
|
}
|
||||||
|
|
||||||
TreasureStartEvent startEvent = new TreasureStartEvent(player, treasureType, Arrays.asList(rewards));
|
Treasure treasure = new Treasure(_treasureManager, player, rewards, treasureType.getRewardType(), _chestBlock, _chestSpawns, treasureType, _treasureManager.getBlockRestore(), _hologramManager, _statusManager);
|
||||||
UtilServer.CallEvent(startEvent);
|
|
||||||
|
|
||||||
Treasure treasure = new Treasure(player, rewards, treasureType.getRewardType(), _chestBlock, _chestSpawns, treasureType, _treasureManager.getBlockRestore(), _hologramManager, _statusManager);
|
|
||||||
_currentTreasure = treasure;
|
_currentTreasure = treasure;
|
||||||
|
|
||||||
|
TreasureStartEvent startEvent = new TreasureStartEvent(player, treasure, Arrays.asList(rewards));
|
||||||
|
UtilServer.CallEvent(startEvent);
|
||||||
|
|
||||||
UtilTextMiddle.display(treasureType.getName(), "Choose " + rewards.length + " " + UtilText.plural("Chest", rewards.length) + " To Open", 20, 180, 20, player);
|
UtilTextMiddle.display(treasureType.getName(), "Choose " + rewards.length + " " + UtilText.plural("Chest", rewards.length) + " To Open", 20, 180, 20, player);
|
||||||
UtilPlayer.message(player, F.main("Treasure", "Choose " + rewards.length + " " + UtilText.plural("Chest", rewards.length) + " To Open"));
|
UtilPlayer.message(player, F.main("Treasure", "Choose " + rewards.length + " " + UtilText.plural("Chest", rewards.length) + " To Open"));
|
||||||
|
|
||||||
|
@ -1,11 +1,17 @@
|
|||||||
package mineplex.core.treasure;
|
package mineplex.core.treasure;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
|
import org.bukkit.entity.Item;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.HandlerList;
|
import org.bukkit.event.HandlerList;
|
||||||
|
import org.bukkit.event.player.PlayerPickupItemEvent;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
@ -25,10 +31,12 @@ import mineplex.core.reward.RewardPool;
|
|||||||
import mineplex.core.reward.RewardType;
|
import mineplex.core.reward.RewardType;
|
||||||
import mineplex.core.stats.StatsManager;
|
import mineplex.core.stats.StatsManager;
|
||||||
import mineplex.core.status.ServerStatusManager;
|
import mineplex.core.status.ServerStatusManager;
|
||||||
|
import mineplex.core.treasure.animation.Animation;
|
||||||
|
import mineplex.core.treasure.event.TreasureFinishEvent;
|
||||||
|
import mineplex.core.treasure.event.TreasureStartEvent;
|
||||||
|
import mineplex.core.updater.UpdateType;
|
||||||
|
import mineplex.core.updater.event.UpdateEvent;
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by Shaun on 8/27/2014.
|
|
||||||
*/
|
|
||||||
public class TreasureManager extends MiniPlugin
|
public class TreasureManager extends MiniPlugin
|
||||||
{
|
{
|
||||||
private CoreClientManager _clientManager;
|
private CoreClientManager _clientManager;
|
||||||
@ -39,6 +47,9 @@ public class TreasureManager extends MiniPlugin
|
|||||||
private StatsManager _statsManager;
|
private StatsManager _statsManager;
|
||||||
private List<TreasureLocation> _treasureLocations;
|
private List<TreasureLocation> _treasureLocations;
|
||||||
private List<Location> _blockLocations;
|
private List<Location> _blockLocations;
|
||||||
|
private List<Item> _items;
|
||||||
|
|
||||||
|
private Map<Treasure, Animation> _treasureAnimations = new HashMap<>();
|
||||||
|
|
||||||
public TreasureManager(JavaPlugin plugin, CoreClientManager clientManager, ServerStatusManager statusManager, DonationManager donationManager, InventoryManager inventoryManager, PetManager petManager, GadgetManager gadgetManager, BlockRestore blockRestore, HologramManager hologramManager, StatsManager statsManager, RewardManager rewardManager)
|
public TreasureManager(JavaPlugin plugin, CoreClientManager clientManager, ServerStatusManager statusManager, DonationManager donationManager, InventoryManager inventoryManager, PetManager petManager, GadgetManager gadgetManager, BlockRestore blockRestore, HologramManager hologramManager, StatsManager statsManager, RewardManager rewardManager)
|
||||||
{
|
{
|
||||||
@ -53,6 +64,7 @@ public class TreasureManager extends MiniPlugin
|
|||||||
|
|
||||||
_treasureLocations = Lists.newArrayList();
|
_treasureLocations = Lists.newArrayList();
|
||||||
_blockLocations = Lists.newArrayList();
|
_blockLocations = Lists.newArrayList();
|
||||||
|
_items = Lists.newArrayList();
|
||||||
|
|
||||||
for(Location location : LocationConstants.CHEST_LOCATIONS)
|
for(Location location : LocationConstants.CHEST_LOCATIONS)
|
||||||
{
|
{
|
||||||
@ -161,4 +173,58 @@ public class TreasureManager extends MiniPlugin
|
|||||||
{
|
{
|
||||||
return _blockLocations;
|
return _blockLocations;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void playCustomAnimation(TreasureStartEvent event)
|
||||||
|
{
|
||||||
|
TreasureType treasureType = event.getTreasure().getTreasureType();
|
||||||
|
/*if (treasureType == TreasureType.ST_PATRICKS)
|
||||||
|
{
|
||||||
|
StPatricksChestAnimation stPatricksChestAnimation = new StPatricksChestAnimation(event.getTreasure(), event.getTreasure().getCenterBlock());
|
||||||
|
event.getTreasure().addAnimation(stPatricksChestAnimation);
|
||||||
|
_treasureAnimations.put(event.getTreasure(), stPatricksChestAnimation);
|
||||||
|
}*/
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void stopCustomAnimation(TreasureFinishEvent event)
|
||||||
|
{
|
||||||
|
if (_treasureAnimations.containsKey(event.getTreasure()))
|
||||||
|
{
|
||||||
|
Animation animation = _treasureAnimations.get(event.getTreasure());
|
||||||
|
animation.setRunning(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addItem(Item item)
|
||||||
|
{
|
||||||
|
_items.add(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void pickupItem(PlayerPickupItemEvent event)
|
||||||
|
{
|
||||||
|
if (_items.contains(event.getItem()))
|
||||||
|
{
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void removeItems(UpdateEvent event)
|
||||||
|
{
|
||||||
|
if (event.getType() == UpdateType.TICK)
|
||||||
|
{
|
||||||
|
Iterator<Item> it = _items.iterator();
|
||||||
|
while (it.hasNext())
|
||||||
|
{
|
||||||
|
Item item = it.next();
|
||||||
|
if (item.getTicksLived() >= 20)
|
||||||
|
{
|
||||||
|
item.remove();
|
||||||
|
it.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -90,6 +90,13 @@ public enum TreasureStyle
|
|||||||
ParticleType.HEART,
|
ParticleType.HEART,
|
||||||
Sound.VILLAGER_YES,
|
Sound.VILLAGER_YES,
|
||||||
Sound.VILLAGER_YES
|
Sound.VILLAGER_YES
|
||||||
|
),
|
||||||
|
STPATRICKS(
|
||||||
|
ParticleType.HAPPY_VILLAGER,
|
||||||
|
ParticleType.HAPPY_VILLAGER,
|
||||||
|
ParticleType.HAPPY_VILLAGER,
|
||||||
|
Sound.VILLAGER_YES,
|
||||||
|
Sound.VILLAGER_YES
|
||||||
);
|
);
|
||||||
|
|
||||||
private ParticleType _secondaryParticle;
|
private ParticleType _secondaryParticle;
|
||||||
|
@ -32,7 +32,9 @@ public enum TreasureType
|
|||||||
|
|
||||||
MINESTRIKE(C.cGold + "Minestrike Treasure", "Minestrike Chest", "MinestrikeChest", RewardType.MINESTRIKE_CHEST, Material.CHEST, TreasureStyle.MINESTRIKE, RewardPool.Type.MINESTRIKE, true, 10000),
|
MINESTRIKE(C.cGold + "Minestrike Treasure", "Minestrike Chest", "MinestrikeChest", RewardType.MINESTRIKE_CHEST, Material.CHEST, TreasureStyle.MINESTRIKE, RewardPool.Type.MINESTRIKE, true, 10000),
|
||||||
|
|
||||||
LOVE_CHEST(C.cRed + "Love Treasure", "Love Chest", "LoveChest", RewardType.LOVE_CHEST, Material.CHEST, TreasureStyle.LOVECHEST, RewardPool.Type.LOVECHEST, true, 20000);
|
LOVE_CHEST(C.cRed + "Love Treasure", "Love Chest", "LoveChest", RewardType.LOVE_CHEST, Material.CHEST, TreasureStyle.LOVECHEST, RewardPool.Type.LOVECHEST, true, 20000),
|
||||||
|
|
||||||
|
ST_PATRICKS(C.cGreen + "St Patrick's Treasure", "St Patricks Chest", "StPatricksChest", RewardType.ST_PATRICKS, Material.CHEST, TreasureStyle.STPATRICKS,RewardPool.Type.STPATRICKS, true, 20000);
|
||||||
|
|
||||||
private final String _name;
|
private final String _name;
|
||||||
private final RewardType _rewardType;
|
private final RewardType _rewardType;
|
||||||
|
@ -94,6 +94,11 @@ public class BlockChangeAnimation extends Animation
|
|||||||
mat = Material.WOOL;
|
mat = Material.WOOL;
|
||||||
data = 6;
|
data = 6;
|
||||||
}
|
}
|
||||||
|
else if (getTreasure().getTreasureType() == TreasureType.ST_PATRICKS)
|
||||||
|
{
|
||||||
|
mat = Material.WOOL;
|
||||||
|
data = 13;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@ -141,6 +146,11 @@ public class BlockChangeAnimation extends Animation
|
|||||||
mat = Material.WOOL;
|
mat = Material.WOOL;
|
||||||
data = 14;
|
data = 14;
|
||||||
}
|
}
|
||||||
|
else if (getTreasure().getTreasureType() == TreasureType.ST_PATRICKS)
|
||||||
|
{
|
||||||
|
mat = Material.GOLD_BLOCK;
|
||||||
|
data = 0;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -36,9 +36,6 @@ import mineplex.core.treasure.BlockInfo;
|
|||||||
import mineplex.core.treasure.Treasure;
|
import mineplex.core.treasure.Treasure;
|
||||||
import mineplex.core.treasure.TreasureType;
|
import mineplex.core.treasure.TreasureType;
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by Shaun on 8/29/2014.
|
|
||||||
*/
|
|
||||||
public class ChestSpawnAnimation extends Animation
|
public class ChestSpawnAnimation extends Animation
|
||||||
{
|
{
|
||||||
private static final int ANIMATION_DURATION = 80;
|
private static final int ANIMATION_DURATION = 80;
|
||||||
@ -134,7 +131,8 @@ public class ChestSpawnAnimation extends Animation
|
|||||||
UtilParticle.PlayParticle(getTreasure().getTreasureType().getStyle().getSecondaryParticle(), newLoc, 0f, 0f, 0f, 0, 1,
|
UtilParticle.PlayParticle(getTreasure().getTreasureType().getStyle().getSecondaryParticle(), newLoc, 0f, 0f, 0f, 0, 1,
|
||||||
ViewDist.NORMAL, UtilServer.getPlayers());
|
ViewDist.NORMAL, UtilServer.getPlayers());
|
||||||
}
|
}
|
||||||
else if (getTreasure().getTreasureType() == TreasureType.MYTHICAL || getTreasure().getTreasureType() == TreasureType.MINESTRIKE)
|
else if (getTreasure().getTreasureType() == TreasureType.MYTHICAL || getTreasure().getTreasureType() == TreasureType.MINESTRIKE ||
|
||||||
|
getTreasure().getTreasureType() == TreasureType.ST_PATRICKS)
|
||||||
{
|
{
|
||||||
float y = 5 * scale;
|
float y = 5 * scale;
|
||||||
double width = 0.7 * ((double) getTicks() / (double) ANIMATION_DURATION);
|
double width = 0.7 * ((double) getTicks() / (double) ANIMATION_DURATION);
|
||||||
@ -153,7 +151,10 @@ public class ChestSpawnAnimation extends Animation
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ColoredParticle coloredParticle = new ColoredParticle(ParticleType.RED_DUST, new DustSpellColor(Color.YELLOW), _centerLocation.clone().add(x * width, y, z * width));
|
DustSpellColor minestrikeColor = new DustSpellColor(Color.YELLOW);
|
||||||
|
DustSpellColor stpatricksColor = new DustSpellColor(Color.GREEN);
|
||||||
|
ColoredParticle coloredParticle = new ColoredParticle(ParticleType.RED_DUST,
|
||||||
|
(getTreasure().getTreasureType() == TreasureType.MINESTRIKE) ? minestrikeColor : stpatricksColor, _centerLocation.clone().add(x * width, y, z * width));
|
||||||
coloredParticle.display();
|
coloredParticle.display();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -245,6 +246,11 @@ public class ChestSpawnAnimation extends Animation
|
|||||||
doBats(true, _centerLocation.clone().add(0, 6, 0), _bats);
|
doBats(true, _centerLocation.clone().add(0, 6, 0), _bats);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (getTreasure().getTreasureType() == TreasureType.ST_PATRICKS)
|
||||||
|
{
|
||||||
|
Location location = _centerLocation.clone().add(0, 5, 0);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
//Spawn Chest
|
//Spawn Chest
|
||||||
if (getTicks() >= ANIMATION_DURATION)
|
if (getTicks() >= ANIMATION_DURATION)
|
||||||
|
@ -0,0 +1,46 @@
|
|||||||
|
package mineplex.core.treasure.animation;
|
||||||
|
|
||||||
|
import java.awt.Color;
|
||||||
|
|
||||||
|
import org.bukkit.block.Block;
|
||||||
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
|
import mineplex.core.common.shape.ShapeWings;
|
||||||
|
import mineplex.core.common.util.UtilParticle;
|
||||||
|
import mineplex.core.treasure.Treasure;
|
||||||
|
|
||||||
|
public class StPatricksChestAnimation extends Animation
|
||||||
|
{
|
||||||
|
|
||||||
|
private Block _center;
|
||||||
|
private int _tick = 0;
|
||||||
|
|
||||||
|
private ShapeWings _cloverBlack = new ShapeWings(UtilParticle.ParticleType.RED_DUST.particleName, new Vector(1, 1, 1), 1, 0, '#', ShapeWings.DEFAULT_ROTATION, ShapeWings.FOUR_LEAF_CLOVER);
|
||||||
|
private ShapeWings _cloverDarkGreen = new ShapeWings(UtilParticle.ParticleType.RED_DUST.particleName, new Vector(1, 1, 1), 1, 0, '%', ShapeWings.DEFAULT_ROTATION, ShapeWings.FOUR_LEAF_CLOVER);
|
||||||
|
private ShapeWings _cloverGreen = new ShapeWings(UtilParticle.ParticleType.RED_DUST.particleName, new Vector(1, 1, 1), 1, 0, '*', ShapeWings.DEFAULT_ROTATION, ShapeWings.FOUR_LEAF_CLOVER);
|
||||||
|
|
||||||
|
public StPatricksChestAnimation(Treasure treasure, Block center)
|
||||||
|
{
|
||||||
|
super(treasure);
|
||||||
|
_center = center;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void tick()
|
||||||
|
{
|
||||||
|
_tick++;
|
||||||
|
if (_tick % 5 == 0)
|
||||||
|
{
|
||||||
|
_cloverBlack.displayColored(_center.getLocation().add(0, 5, 0), Color.BLACK);
|
||||||
|
_cloverDarkGreen.displayColored(_center.getLocation().add(0, 5, 0), new Color(0, 100, 0));
|
||||||
|
_cloverGreen.displayColored(_center.getLocation().add(0, 5, 0), Color.GREEN);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onFinish()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -3,22 +3,27 @@ package mineplex.core.treasure.animation;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.entity.Item;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
|
import mineplex.core.common.util.UtilAction;
|
||||||
|
import mineplex.core.itemstack.ItemStackFactory;
|
||||||
import mineplex.core.treasure.BlockInfo;
|
import mineplex.core.treasure.BlockInfo;
|
||||||
import mineplex.core.treasure.Treasure;
|
import mineplex.core.treasure.Treasure;
|
||||||
|
import mineplex.core.treasure.TreasureType;
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by shaun on 14-09-15.
|
|
||||||
*/
|
|
||||||
public class TreasureRemoveAnimation extends Animation
|
public class TreasureRemoveAnimation extends Animation
|
||||||
{
|
{
|
||||||
private Random _random = new Random();
|
private Random _random = new Random();
|
||||||
private List<BlockInfo> _openedChests;
|
|
||||||
private List<BlockInfo> _otherChests;
|
private List<BlockInfo> _otherChests;
|
||||||
|
private int _count = 0;
|
||||||
|
|
||||||
public TreasureRemoveAnimation(Treasure treasure, List<BlockInfo> openedChests, List<BlockInfo> otherChests)
|
public TreasureRemoveAnimation(Treasure treasure, List<BlockInfo> otherChests)
|
||||||
{
|
{
|
||||||
super(treasure);
|
super(treasure);
|
||||||
_openedChests = openedChests;
|
|
||||||
_otherChests = otherChests;
|
_otherChests = otherChests;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -31,14 +36,13 @@ public class TreasureRemoveAnimation extends Animation
|
|||||||
{
|
{
|
||||||
BlockInfo info = _otherChests.remove(_random.nextInt(_otherChests.size()));
|
BlockInfo info = _otherChests.remove(_random.nextInt(_otherChests.size()));
|
||||||
getTreasure().resetBlockInfo(info);
|
getTreasure().resetBlockInfo(info);
|
||||||
// System.out.println("otherchests");
|
if (getTreasure().getTreasureType() == TreasureType.ST_PATRICKS)
|
||||||
|
{
|
||||||
|
// Drops gold nugget
|
||||||
|
dropItem(ItemStackFactory.Instance.CreateStack(Material.GOLD_NUGGET, (byte) 0, 1, "DroppedNugget" + _count), info);
|
||||||
|
_count++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// else if (!_openedChests.isEmpty())
|
|
||||||
// {
|
|
||||||
// System.out.println("openchests");
|
|
||||||
// BlockInfo info = _openedChests.remove(_random.nextInt(_openedChests.size()));
|
|
||||||
// getTreasure().resetBlockInfo(info);
|
|
||||||
// }
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
finish();
|
finish();
|
||||||
@ -46,6 +50,16 @@ public class TreasureRemoveAnimation extends Animation
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void dropItem(ItemStack itemStack, BlockInfo blockInfo)
|
||||||
|
{
|
||||||
|
Location location = blockInfo.getBlock().getLocation();
|
||||||
|
Item item = location.getWorld().dropItem(location.add(0, .5, 0), itemStack);
|
||||||
|
Vector vel = new Vector(Math.sin(_count * 9/5d), 0, Math.cos(_count * 9/5d));
|
||||||
|
UtilAction.velocity(item, vel, Math.abs(Math.sin(_count * 12/3000d)), false, 0, 0.2 +
|
||||||
|
Math.abs(Math.cos(_count * 12/3000d))*0.6, 1, false);
|
||||||
|
getTreasure().getTreasureManager().addItem(item);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onFinish()
|
protected void onFinish()
|
||||||
{
|
{
|
||||||
|
@ -8,20 +8,20 @@ import org.bukkit.event.Event;
|
|||||||
import org.bukkit.event.HandlerList;
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
import mineplex.core.reward.Reward;
|
import mineplex.core.reward.Reward;
|
||||||
import mineplex.core.treasure.TreasureType;
|
import mineplex.core.treasure.Treasure;
|
||||||
|
|
||||||
public class TreasureStartEvent extends Event
|
public class TreasureStartEvent extends Event
|
||||||
{
|
{
|
||||||
private static final HandlerList handlers = new HandlerList();
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
|
||||||
private Player _player;
|
private Player _player;
|
||||||
private TreasureType _treasureType;
|
private Treasure _treasure;
|
||||||
private List<Reward> _rewards;
|
private List<Reward> _rewards;
|
||||||
|
|
||||||
public TreasureStartEvent(Player player, TreasureType treasureType, List<Reward> rewards)
|
public TreasureStartEvent(Player player, Treasure treasure, List<Reward> rewards)
|
||||||
{
|
{
|
||||||
_player = player;
|
_player = player;
|
||||||
_treasureType = treasureType;
|
_treasure = treasure;
|
||||||
_rewards = rewards;
|
_rewards = rewards;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -30,9 +30,9 @@ public class TreasureStartEvent extends Event
|
|||||||
return _player;
|
return _player;
|
||||||
}
|
}
|
||||||
|
|
||||||
public TreasureType getTreasureType()
|
public Treasure getTreasure()
|
||||||
{
|
{
|
||||||
return _treasureType;
|
return _treasure;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Reward> getRewards()
|
public List<Reward> getRewards()
|
||||||
|
@ -98,7 +98,8 @@ public class BuyChestButton implements IButton
|
|||||||
}
|
}
|
||||||
if (!_page.getPlugin().hasItemsToGivePlayer(_chestType.getRewardPool(), player)
|
if (!_page.getPlugin().hasItemsToGivePlayer(_chestType.getRewardPool(), player)
|
||||||
&& (_chestType == TreasureType.ILLUMINATED || _chestType == TreasureType.OMEGA
|
&& (_chestType == TreasureType.ILLUMINATED || _chestType == TreasureType.OMEGA
|
||||||
|| _chestType == TreasureType.HAUNTED || _chestType == TreasureType.GINGERBREAD))
|
|| _chestType == TreasureType.HAUNTED || _chestType == TreasureType.GINGERBREAD
|
||||||
|
|| _chestType == TreasureType.ST_PATRICKS))
|
||||||
{
|
{
|
||||||
player.sendMessage(F.main("Treasure", "You seem to have all treasures for this chest unlocked already!"));
|
player.sendMessage(F.main("Treasure", "You seem to have all treasures for this chest unlocked already!"));
|
||||||
return;
|
return;
|
||||||
|
@ -137,6 +137,7 @@ public class TreasurePage extends ShopPageBase<TreasureManager, TreasureShop>
|
|||||||
int gingerbreadCount = _inventoryManager.Get(getPlayer()).getItemCount(TreasureType.GINGERBREAD.getItemName());
|
int gingerbreadCount = _inventoryManager.Get(getPlayer()).getItemCount(TreasureType.GINGERBREAD.getItemName());
|
||||||
int minestrikeCount = _inventoryManager.Get(getPlayer()).getItemCount(TreasureType.MINESTRIKE.getItemName());
|
int minestrikeCount = _inventoryManager.Get(getPlayer()).getItemCount(TreasureType.MINESTRIKE.getItemName());
|
||||||
int loveCount = _inventoryManager.Get(getPlayer()).getItemCount(TreasureType.LOVE_CHEST.getItemName());
|
int loveCount = _inventoryManager.Get(getPlayer()).getItemCount(TreasureType.LOVE_CHEST.getItemName());
|
||||||
|
int stpatricksCount = _inventoryManager.Get(getPlayer()).getItemCount(TreasureType.ST_PATRICKS.getItemName());
|
||||||
|
|
||||||
boolean availableChristmas = false;
|
boolean availableChristmas = false;
|
||||||
boolean availableFreedom = false;
|
boolean availableFreedom = false;
|
||||||
@ -144,7 +145,8 @@ public class TreasurePage extends ShopPageBase<TreasureManager, TreasureShop>
|
|||||||
boolean availableTrick = false;
|
boolean availableTrick = false;
|
||||||
boolean availableThank = false;
|
boolean availableThank = false;
|
||||||
boolean availableGingerbread = false;
|
boolean availableGingerbread = false;
|
||||||
boolean availableLove = new File("../../update/files/EnableLoveChest.dat").exists();
|
boolean availableLove = false;
|
||||||
|
boolean availableStPatricks = new File("../../update/files/EnableStPatricksChest.dat").exists();
|
||||||
|
|
||||||
List<String> shardLore = new ArrayList<>();
|
List<String> shardLore = new ArrayList<>();
|
||||||
shardLore.add(" ");
|
shardLore.add(" ");
|
||||||
@ -407,6 +409,30 @@ public class TreasurePage extends ShopPageBase<TreasureManager, TreasureShop>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<String> stpatricksLore = Lists.newArrayList();
|
||||||
|
stpatricksLore.add(" ");
|
||||||
|
stpatricksLore.add(F.value("St Patrick's Chests Owned", "" + stpatricksCount));
|
||||||
|
stpatricksLore.add(" ");
|
||||||
|
stpatricksLore.addAll(UtilText.splitLines(new String[]{C.cGray + "Placeholder"}, LineFormat.LORE));
|
||||||
|
stpatricksLore.add(" ");
|
||||||
|
if (stpatricksCount > 0)
|
||||||
|
{
|
||||||
|
stpatricksLore.add(C.cGreen + "Click to Open!");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!availableStPatricks)
|
||||||
|
{
|
||||||
|
stpatricksLore.add(C.cRed + "This item is no longer available");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
stpatricksLore.add(ChatColor.RESET + "Click to craft for " + C.cAqua + TreasureType.LOVE_CHEST.getPurchasePrice() + " Treasure Shards");
|
||||||
|
stpatricksLore.add(" ");
|
||||||
|
stpatricksLore.add(ChatColor.RESET + "or Purchase at: " + C.cYellow + "www.mineplex.com/shop");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ShopItem shards = new ShopItem(Material.PRISMARINE_SHARD, C.cAqua + C.Bold + treasureShards + " Treasure Shards", shardLore.toArray(new String[0]), 0, false);
|
ShopItem shards = new ShopItem(Material.PRISMARINE_SHARD, C.cAqua + C.Bold + treasureShards + " Treasure Shards", shardLore.toArray(new String[0]), 0, false);
|
||||||
|
|
||||||
// Normal chests
|
// Normal chests
|
||||||
@ -425,6 +451,7 @@ public class TreasurePage extends ShopPageBase<TreasureManager, TreasureShop>
|
|||||||
ItemStack thank = new ShopItem(Material.COOKED_CHICKEN, C.cGoldB + "Thankful Treasure", thankLore.toArray(new String[0]), 0, false, false);
|
ItemStack thank = new ShopItem(Material.COOKED_CHICKEN, C.cGoldB + "Thankful Treasure", thankLore.toArray(new String[0]), 0, false, false);
|
||||||
ItemStack gingerbread = SkinData.GINGERBREAD.getSkull(C.cRedB + "Gingerbread" + C.cGreenB + " Treasure", gingerbreadLore);
|
ItemStack gingerbread = SkinData.GINGERBREAD.getSkull(C.cRedB + "Gingerbread" + C.cGreenB + " Treasure", gingerbreadLore);
|
||||||
ItemStack lovechest = new ShopItem(Material.WOOL, (byte) 6, C.cRedB + "Love Chest", lovechestLore.toArray(new String[0]), 0, false, false);
|
ItemStack lovechest = new ShopItem(Material.WOOL, (byte) 6, C.cRedB + "Love Chest", lovechestLore.toArray(new String[0]), 0, false, false);
|
||||||
|
ItemStack stpatricks = SkinData.LEPRECHAUN.getSkull(C.cGreenB + "St Patrick's Treasure", stpatricksLore);
|
||||||
|
|
||||||
// Adds shard item
|
// Adds shard item
|
||||||
addItem(49, shards);
|
addItem(49, shards);
|
||||||
@ -447,6 +474,7 @@ public class TreasurePage extends ShopPageBase<TreasureManager, TreasureShop>
|
|||||||
TreasurePageItem thankTreasureItem = new TreasurePageItem(thank, thankCount, TreasureType.THANKFUL);
|
TreasurePageItem thankTreasureItem = new TreasurePageItem(thank, thankCount, TreasureType.THANKFUL);
|
||||||
TreasurePageItem gingerbreadTreasureItem = new TreasurePageItem(gingerbread, gingerbreadCount, TreasureType.GINGERBREAD);
|
TreasurePageItem gingerbreadTreasureItem = new TreasurePageItem(gingerbread, gingerbreadCount, TreasureType.GINGERBREAD);
|
||||||
TreasurePageItem loveChestItem = new TreasurePageItem(lovechest, loveCount, TreasureType.LOVE_CHEST);
|
TreasurePageItem loveChestItem = new TreasurePageItem(lovechest, loveCount, TreasureType.LOVE_CHEST);
|
||||||
|
TreasurePageItem stPatricksItem = new TreasurePageItem(stpatricks, stpatricksCount, TreasureType.ST_PATRICKS);
|
||||||
|
|
||||||
_normalTreasures.add(oldTreasureItem);
|
_normalTreasures.add(oldTreasureItem);
|
||||||
_normalTreasures.add(ancientTreasureItem);
|
_normalTreasures.add(ancientTreasureItem);
|
||||||
@ -455,6 +483,11 @@ public class TreasurePage extends ShopPageBase<TreasureManager, TreasureShop>
|
|||||||
_normalTreasures.add(omegaTreasureItem);
|
_normalTreasures.add(omegaTreasureItem);
|
||||||
_normalTreasures.add(minestrikeTreasureItem);
|
_normalTreasures.add(minestrikeTreasureItem);
|
||||||
|
|
||||||
|
if (availableStPatricks)
|
||||||
|
_specialTreasures.add(stPatricksItem);
|
||||||
|
else
|
||||||
|
_seasonalTreasures.add(stPatricksItem);
|
||||||
|
|
||||||
if (availableLove)
|
if (availableLove)
|
||||||
_specialTreasures.add(loveChestItem);
|
_specialTreasures.add(loveChestItem);
|
||||||
else
|
else
|
||||||
|
@ -166,6 +166,7 @@ public class CustomerSupport extends MiniPlugin implements ResultSetCallable
|
|||||||
int gingerbreadChestsReceived = 0;
|
int gingerbreadChestsReceived = 0;
|
||||||
int minestrikeChestsReceived = 0;
|
int minestrikeChestsReceived = 0;
|
||||||
int loveChestsReceived = 0;
|
int loveChestsReceived = 0;
|
||||||
|
int stPatricksChestReceived = 0;
|
||||||
|
|
||||||
for (CoinTransactionToken transaction : donor.getCoinTransactions())
|
for (CoinTransactionToken transaction : donor.getCoinTransactions())
|
||||||
{
|
{
|
||||||
@ -319,6 +320,16 @@ public class CustomerSupport extends MiniPlugin implements ResultSetCallable
|
|||||||
loveChestsReceived += 1;
|
loveChestsReceived += 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (transaction.SalesPackageName.startsWith("St Patricks Chest"))
|
||||||
|
{
|
||||||
|
if (transaction.Coins == 0 && transaction.Gems == 0)
|
||||||
|
{
|
||||||
|
if (transaction.SalesPackageName.split(" ").length == 3)
|
||||||
|
stPatricksChestReceived += Integer.parseInt(transaction.SalesPackageName.split(" ")[2]);
|
||||||
|
else if (transaction.SalesPackageName.split(" ").length == 2)
|
||||||
|
stPatricksChestReceived += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
if (transaction.SalesPackageName.startsWith("Valentines Gift"))
|
if (transaction.SalesPackageName.startsWith("Valentines Gift"))
|
||||||
{
|
{
|
||||||
if (transaction.Coins == 0 && transaction.Gems == 0)
|
if (transaction.Coins == 0 && transaction.Gems == 0)
|
||||||
@ -391,6 +402,7 @@ public class CustomerSupport extends MiniPlugin implements ResultSetCallable
|
|||||||
caller.sendMessage(C.cBlue + "Trick or Treat Chests Received: " + C.cYellow + trickOrTreatChestsReceived + " " + C.cBlue + "Thankful Chests Received: " + C.cYellow + thankfulChestsReceived);
|
caller.sendMessage(C.cBlue + "Trick or Treat Chests Received: " + C.cYellow + trickOrTreatChestsReceived + " " + C.cBlue + "Thankful Chests Received: " + C.cYellow + thankfulChestsReceived);
|
||||||
caller.sendMessage(C.cBlue + "Gingerbread Chests Received: " + C.cYellow + gingerbreadChestsReceived + " " + C.cBlue + "Minestrike Chests Received: " + C.cYellow + minestrikeChestsReceived);
|
caller.sendMessage(C.cBlue + "Gingerbread Chests Received: " + C.cYellow + gingerbreadChestsReceived + " " + C.cBlue + "Minestrike Chests Received: " + C.cYellow + minestrikeChestsReceived);
|
||||||
caller.sendMessage(C.cBlue + "Love Chests Received: " + C.cYellow + loveChestsReceived);
|
caller.sendMessage(C.cBlue + "Love Chests Received: " + C.cYellow + loveChestsReceived);
|
||||||
|
caller.sendMessage(C.cBlue + "St Patrick's Chests Received: " + C.cYellow + stPatricksChestReceived);
|
||||||
caller.sendMessage(C.cBlue + "Game Amplifiers Received: " + C.cYellow + boostersReceived);
|
caller.sendMessage(C.cBlue + "Game Amplifiers Received: " + C.cYellow + boostersReceived);
|
||||||
caller.sendMessage(C.cBlue + "Rune Amplifiers (20 min/60 min) Received: " + C.cYellow + runeAmplifier20 + "/" + runeAmplifier60);
|
caller.sendMessage(C.cBlue + "Rune Amplifiers (20 min/60 min) Received: " + C.cYellow + runeAmplifier20 + "/" + runeAmplifier60);
|
||||||
caller.sendMessage(C.cBlue + "Clan Banner Usage: " + getLockedFreedomStr(client.getUniqueId(), "Clan Banner Usage") + " " + C.cBlue + "Clan Banner Editor: " + getLockedFreedomStr(client.getUniqueId(), "Clan Banner Editor"));
|
caller.sendMessage(C.cBlue + "Clan Banner Usage: " + getLockedFreedomStr(client.getUniqueId(), "Clan Banner Usage") + " " + C.cBlue + "Clan Banner Editor: " + getLockedFreedomStr(client.getUniqueId(), "Clan Banner Editor"));
|
||||||
|
@ -39,6 +39,7 @@ import mineplex.staffServer.salespackage.salespackages.Pet;
|
|||||||
import mineplex.staffServer.salespackage.salespackages.PowerPlayClub;
|
import mineplex.staffServer.salespackage.salespackages.PowerPlayClub;
|
||||||
import mineplex.staffServer.salespackage.salespackages.RuneAmplifier;
|
import mineplex.staffServer.salespackage.salespackages.RuneAmplifier;
|
||||||
import mineplex.staffServer.salespackage.salespackages.SalesPackageBase;
|
import mineplex.staffServer.salespackage.salespackages.SalesPackageBase;
|
||||||
|
import mineplex.staffServer.salespackage.salespackages.StPatricksChest;
|
||||||
import mineplex.staffServer.salespackage.salespackages.ThankfulChest;
|
import mineplex.staffServer.salespackage.salespackages.ThankfulChest;
|
||||||
import mineplex.staffServer.salespackage.salespackages.TrickOrTreatChest;
|
import mineplex.staffServer.salespackage.salespackages.TrickOrTreatChest;
|
||||||
|
|
||||||
@ -100,6 +101,7 @@ public class SalesPackageManager extends MiniPlugin
|
|||||||
AddSalesPackage(new HauntedChest(this));
|
AddSalesPackage(new HauntedChest(this));
|
||||||
AddSalesPackage(new MinestrikeChest(this));
|
AddSalesPackage(new MinestrikeChest(this));
|
||||||
AddSalesPackage(new LoveChest(this));
|
AddSalesPackage(new LoveChest(this));
|
||||||
|
AddSalesPackage(new StPatricksChest(this));
|
||||||
AddSalesPackage(new TrickOrTreatChest(this));
|
AddSalesPackage(new TrickOrTreatChest(this));
|
||||||
AddSalesPackage(new ThankfulChest(this));
|
AddSalesPackage(new ThankfulChest(this));
|
||||||
|
|
||||||
@ -171,7 +173,7 @@ public class SalesPackageManager extends MiniPlugin
|
|||||||
coinBuilder = coinBuilder.extra("[").color("gray").extra(salesPackage.getName()).color("green").click("run_command", "/display " + playerName + " " + salesPackage.getName()).extra("] ").color("gray");
|
coinBuilder = coinBuilder.extra("[").color("gray").extra(salesPackage.getName()).color("green").click("run_command", "/display " + playerName + " " + salesPackage.getName()).extra("] ").color("gray");
|
||||||
}
|
}
|
||||||
else if (salesPackage instanceof MythicalChest || salesPackage instanceof AncientChest || salesPackage instanceof OldChest || salesPackage instanceof IlluminatedChest || salesPackage instanceof FreedomChest || salesPackage instanceof HauntedChest || salesPackage instanceof TrickOrTreatChest
|
else if (salesPackage instanceof MythicalChest || salesPackage instanceof AncientChest || salesPackage instanceof OldChest || salesPackage instanceof IlluminatedChest || salesPackage instanceof FreedomChest || salesPackage instanceof HauntedChest || salesPackage instanceof TrickOrTreatChest
|
||||||
|| salesPackage instanceof ThankfulChest || salesPackage instanceof GingerbreadChest || salesPackage instanceof MinestrikeChest || salesPackage instanceof LoveChest)
|
|| salesPackage instanceof ThankfulChest || salesPackage instanceof GingerbreadChest || salesPackage instanceof MinestrikeChest || salesPackage instanceof LoveChest || salesPackage instanceof StPatricksChest)
|
||||||
{
|
{
|
||||||
chestBuilder = chestBuilder.extra("[").color("gray").extra(salesPackage.getName()).color("green").click("run_command", "/display " + playerName + " " + salesPackage.getName()).extra("] ").color("gray");
|
chestBuilder = chestBuilder.extra("[").color("gray").extra(salesPackage.getName()).color("green").click("run_command", "/display " + playerName + " " + salesPackage.getName()).extra("] ").color("gray");
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,20 @@
|
|||||||
|
package mineplex.staffServer.salespackage.salespackages;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import mineplex.staffServer.salespackage.SalesPackageManager;
|
||||||
|
|
||||||
|
public class StPatricksChest extends SalesPackageBase
|
||||||
|
{
|
||||||
|
public StPatricksChest(SalesPackageManager manager)
|
||||||
|
{
|
||||||
|
super(manager, "1 St Patricks Chest");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void displayToAgent(Player agent, String playerName)
|
||||||
|
{
|
||||||
|
addButton(agent, "/sales item " + playerName + " 1 Item St Patricks Chest", "Give 1 St Patricks Chest.");
|
||||||
|
agent.sendMessage(" ");
|
||||||
|
addBackButton(agent, playerName);
|
||||||
|
}
|
||||||
|
}
|
@ -118,9 +118,8 @@ public class VotifierManager extends MiniPlugin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
String lowerPlayerName = playerName.toLowerCase();
|
final PlayerStatus usStatus = _usPlayerRepo.getElement(uuid.toString());
|
||||||
final PlayerStatus usStatus = _usPlayerRepo.getElement(lowerPlayerName);
|
final PlayerStatus euStatus = _euPlayerRepo.getElement(uuid.toString());
|
||||||
final PlayerStatus euStatus = _euPlayerRepo.getElement(lowerPlayerName);
|
|
||||||
|
|
||||||
System.out.println("Loaded " + playerName + " with uuid " + uuid);
|
System.out.println("Loaded " + playerName + " with uuid " + uuid);
|
||||||
System.out.println("Attempting to award bonus");
|
System.out.println("Attempting to award bonus");
|
||||||
|
@ -34,7 +34,7 @@ import mineplex.core.common.util.UtilTime;
|
|||||||
import mineplex.core.packethandler.IPacketHandler;
|
import mineplex.core.packethandler.IPacketHandler;
|
||||||
import mineplex.core.packethandler.PacketInfo;
|
import mineplex.core.packethandler.PacketInfo;
|
||||||
import mineplex.core.recharge.Recharge;
|
import mineplex.core.recharge.Recharge;
|
||||||
import mineplex.core.titles.tracks.HolidayCheerTrack;
|
import mineplex.core.titles.tracks.standard.HolidayCheerTrack;
|
||||||
import mineplex.core.updater.UpdateType;
|
import mineplex.core.updater.UpdateType;
|
||||||
import mineplex.core.updater.event.UpdateEvent;
|
import mineplex.core.updater.event.UpdateEvent;
|
||||||
import mineplex.minecraft.game.core.damage.CustomDamageEvent;
|
import mineplex.minecraft.game.core.damage.CustomDamageEvent;
|
||||||
|
@ -5,6 +5,7 @@ import nautilus.game.arcade.GameType;
|
|||||||
import nautilus.game.arcade.game.games.AbsorptionFix;
|
import nautilus.game.arcade.game.games.AbsorptionFix;
|
||||||
import nautilus.game.arcade.game.games.micro.Micro;
|
import nautilus.game.arcade.game.games.micro.Micro;
|
||||||
import nautilus.game.arcade.game.games.micro.modes.kits.KitOverlord;
|
import nautilus.game.arcade.game.games.micro.modes.kits.KitOverlord;
|
||||||
|
import nautilus.game.arcade.game.modules.TeamArmorModule;
|
||||||
import nautilus.game.arcade.kit.Kit;
|
import nautilus.game.arcade.kit.Kit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -24,6 +25,9 @@ public class OverpoweredMicroBattles extends Micro
|
|||||||
},
|
},
|
||||||
GameType.Brawl);
|
GameType.Brawl);
|
||||||
|
|
||||||
|
getModule(TeamArmorModule.class)
|
||||||
|
.dontGiveTeamArmor();
|
||||||
|
|
||||||
new AbsorptionFix(this);
|
new AbsorptionFix(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,6 +14,7 @@ import nautilus.game.arcade.game.games.champions.kits.KitKnight;
|
|||||||
import nautilus.game.arcade.game.games.champions.kits.KitMage;
|
import nautilus.game.arcade.game.games.champions.kits.KitMage;
|
||||||
import nautilus.game.arcade.game.games.champions.kits.KitRanger;
|
import nautilus.game.arcade.game.games.champions.kits.KitRanger;
|
||||||
import nautilus.game.arcade.game.games.micro.Micro;
|
import nautilus.game.arcade.game.games.micro.Micro;
|
||||||
|
import nautilus.game.arcade.game.modules.TeamArmorModule;
|
||||||
import nautilus.game.arcade.kit.Kit;
|
import nautilus.game.arcade.kit.Kit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -41,6 +42,8 @@ public class TinyWinners extends Micro
|
|||||||
Manager.getClassManager().GetItemFactory().getProximityManager().setProxyLimit(6);
|
Manager.getClassManager().GetItemFactory().getProximityManager().setProxyLimit(6);
|
||||||
|
|
||||||
StrictAntiHack = true;
|
StrictAntiHack = true;
|
||||||
|
getModule(TeamArmorModule.class)
|
||||||
|
.dontGiveTeamArmor();
|
||||||
|
|
||||||
manager.enableChampionsModules();
|
manager.enableChampionsModules();
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,7 @@ import nautilus.game.arcade.game.games.champions.kits.KitKnight;
|
|||||||
import nautilus.game.arcade.game.games.champions.kits.KitMage;
|
import nautilus.game.arcade.game.games.champions.kits.KitMage;
|
||||||
import nautilus.game.arcade.game.games.champions.kits.KitRanger;
|
import nautilus.game.arcade.game.games.champions.kits.KitRanger;
|
||||||
import nautilus.game.arcade.game.games.sheep.SheepGame;
|
import nautilus.game.arcade.game.games.sheep.SheepGame;
|
||||||
|
import nautilus.game.arcade.game.modules.TeamArmorModule;
|
||||||
import nautilus.game.arcade.kit.Kit;
|
import nautilus.game.arcade.kit.Kit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -47,6 +48,8 @@ public class EweHeroes extends SheepGame
|
|||||||
Manager.getClassManager().GetItemFactory().getProximityManager().setProxyLimit(6);
|
Manager.getClassManager().GetItemFactory().getProximityManager().setProxyLimit(6);
|
||||||
|
|
||||||
StrictAntiHack = true;
|
StrictAntiHack = true;
|
||||||
|
getModule(TeamArmorModule.class)
|
||||||
|
.dontGiveTeamArmor();
|
||||||
|
|
||||||
new ChampionsFixes(this);
|
new ChampionsFixes(this);
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@ import nautilus.game.arcade.GameType;
|
|||||||
import nautilus.game.arcade.game.games.AbsorptionFix;
|
import nautilus.game.arcade.game.games.AbsorptionFix;
|
||||||
import nautilus.game.arcade.game.games.sheep.SheepGame;
|
import nautilus.game.arcade.game.games.sheep.SheepGame;
|
||||||
import nautilus.game.arcade.game.games.sheep.modes.kits.KitShepherd;
|
import nautilus.game.arcade.game.games.sheep.modes.kits.KitShepherd;
|
||||||
|
import nautilus.game.arcade.game.modules.TeamArmorModule;
|
||||||
import nautilus.game.arcade.kit.Kit;
|
import nautilus.game.arcade.kit.Kit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -22,6 +23,9 @@ public class OverpoweredSheepQuest extends SheepGame
|
|||||||
new KitShepherd(manager)
|
new KitShepherd(manager)
|
||||||
}, GameType.Brawl);
|
}, GameType.Brawl);
|
||||||
|
|
||||||
|
getModule(TeamArmorModule.class)
|
||||||
|
.dontGiveTeamArmor();
|
||||||
|
|
||||||
new AbsorptionFix(this);
|
new AbsorptionFix(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,12 +9,11 @@ import org.bukkit.block.Chest;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.Inventory;
|
import org.bukkit.inventory.Inventory;
|
||||||
|
|
||||||
import mineplex.core.Managers;
|
|
||||||
import mineplex.core.common.util.UtilBlock;
|
import mineplex.core.common.util.UtilBlock;
|
||||||
import mineplex.core.common.util.UtilMath;
|
import mineplex.core.common.util.UtilMath;
|
||||||
import mineplex.core.loot.ChestLoot;
|
import mineplex.core.loot.ChestLoot;
|
||||||
import mineplex.core.titles.tracks.LuckyTrack;
|
import mineplex.core.titles.tracks.standard.LuckyTrack;
|
||||||
import mineplex.core.titles.tracks.UnluckyTrack;
|
import mineplex.core.titles.tracks.standard.UnluckyTrack;
|
||||||
|
|
||||||
import nautilus.game.arcade.ArcadeManager;
|
import nautilus.game.arcade.ArcadeManager;
|
||||||
|
|
||||||
|
@ -10,7 +10,6 @@ import java.util.UUID;
|
|||||||
|
|
||||||
import net.md_5.bungee.api.ChatColor;
|
import net.md_5.bungee.api.ChatColor;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.Color;
|
import org.bukkit.Color;
|
||||||
import org.bukkit.FireworkEffect;
|
import org.bukkit.FireworkEffect;
|
||||||
import org.bukkit.FireworkEffect.Type;
|
import org.bukkit.FireworkEffect.Type;
|
||||||
@ -60,8 +59,6 @@ import mineplex.core.common.util.UtilPlayer;
|
|||||||
import mineplex.core.common.util.UtilServer;
|
import mineplex.core.common.util.UtilServer;
|
||||||
import mineplex.core.common.util.UtilTime;
|
import mineplex.core.common.util.UtilTime;
|
||||||
import mineplex.core.recharge.Recharge;
|
import mineplex.core.recharge.Recharge;
|
||||||
import mineplex.core.titles.tracks.LuckyTrack;
|
|
||||||
import mineplex.core.titles.tracks.UnluckyTrack;
|
|
||||||
import mineplex.core.updater.UpdateType;
|
import mineplex.core.updater.UpdateType;
|
||||||
import mineplex.core.updater.event.UpdateEvent;
|
import mineplex.core.updater.event.UpdateEvent;
|
||||||
import mineplex.minecraft.game.core.damage.CustomDamageEvent;
|
import mineplex.minecraft.game.core.damage.CustomDamageEvent;
|
||||||
|
@ -68,8 +68,8 @@ import mineplex.core.explosion.ExplosionEvent;
|
|||||||
import mineplex.core.loot.ChestLoot;
|
import mineplex.core.loot.ChestLoot;
|
||||||
import mineplex.core.loot.RandomItem;
|
import mineplex.core.loot.RandomItem;
|
||||||
import mineplex.core.recharge.Recharge;
|
import mineplex.core.recharge.Recharge;
|
||||||
import mineplex.core.titles.tracks.LuckyTrack;
|
import mineplex.core.titles.tracks.standard.LuckyTrack;
|
||||||
import mineplex.core.titles.tracks.UnluckyTrack;
|
import mineplex.core.titles.tracks.standard.UnluckyTrack;
|
||||||
import mineplex.core.updater.UpdateType;
|
import mineplex.core.updater.UpdateType;
|
||||||
import mineplex.core.updater.event.UpdateEvent;
|
import mineplex.core.updater.event.UpdateEvent;
|
||||||
import mineplex.minecraft.game.core.combat.CombatComponent;
|
import mineplex.minecraft.game.core.combat.CombatComponent;
|
||||||
|
@ -101,8 +101,8 @@ import mineplex.core.itemstack.ItemStackFactory;
|
|||||||
import mineplex.core.loot.ChestLoot;
|
import mineplex.core.loot.ChestLoot;
|
||||||
import mineplex.core.loot.RandomItem;
|
import mineplex.core.loot.RandomItem;
|
||||||
import mineplex.core.recharge.Recharge;
|
import mineplex.core.recharge.Recharge;
|
||||||
import mineplex.core.titles.tracks.LuckyTrack;
|
import mineplex.core.titles.tracks.standard.LuckyTrack;
|
||||||
import mineplex.core.titles.tracks.UnluckyTrack;
|
import mineplex.core.titles.tracks.standard.UnluckyTrack;
|
||||||
import mineplex.core.updater.UpdateType;
|
import mineplex.core.updater.UpdateType;
|
||||||
import mineplex.core.updater.event.UpdateEvent;
|
import mineplex.core.updater.event.UpdateEvent;
|
||||||
import mineplex.core.visibility.VisibilityManager;
|
import mineplex.core.visibility.VisibilityManager;
|
||||||
|
@ -37,13 +37,25 @@ public class TeamArmorModule extends Module
|
|||||||
|
|
||||||
public TeamArmorModule giveTeamArmor()
|
public TeamArmorModule giveTeamArmor()
|
||||||
{
|
{
|
||||||
this._giveTeamArmor = true;
|
_giveTeamArmor = true;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public TeamArmorModule giveHotbarItem()
|
public TeamArmorModule giveHotbarItem()
|
||||||
{
|
{
|
||||||
this._giveHotbarItem = true;
|
_giveHotbarItem = true;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TeamArmorModule dontGiveTeamArmor()
|
||||||
|
{
|
||||||
|
_giveTeamArmor = false;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TeamArmorModule dontGiveHotbarItem()
|
||||||
|
{
|
||||||
|
_giveHotbarItem = false;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
package nautilus.game.arcade.managers;
|
package nautilus.game.arcade.managers;
|
||||||
|
|
||||||
import mineplex.core.Managers;
|
import java.util.ArrayList;
|
||||||
import mineplex.core.PlayerSelector;
|
import java.util.Iterator;
|
||||||
import mineplex.core.common.util.UtilLambda;
|
import java.util.List;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Color;
|
import org.bukkit.Color;
|
||||||
import org.bukkit.FireworkEffect.Type;
|
import org.bukkit.FireworkEffect.Type;
|
||||||
@ -14,11 +15,13 @@ import org.bukkit.event.EventHandler;
|
|||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
|
|
||||||
|
import mineplex.core.PlayerSelector;
|
||||||
import mineplex.core.bonuses.event.CarlSpinnerEvent;
|
import mineplex.core.bonuses.event.CarlSpinnerEvent;
|
||||||
import mineplex.core.common.util.C;
|
import mineplex.core.common.util.C;
|
||||||
import mineplex.core.common.util.F;
|
import mineplex.core.common.util.F;
|
||||||
import mineplex.core.common.util.UtilFirework;
|
import mineplex.core.common.util.UtilFirework;
|
||||||
import mineplex.core.common.util.UtilInv;
|
import mineplex.core.common.util.UtilInv;
|
||||||
|
import mineplex.core.common.util.UtilLambda;
|
||||||
import mineplex.core.common.util.UtilPlayer;
|
import mineplex.core.common.util.UtilPlayer;
|
||||||
import mineplex.core.common.util.UtilServer;
|
import mineplex.core.common.util.UtilServer;
|
||||||
import mineplex.core.common.util.UtilTextBottom;
|
import mineplex.core.common.util.UtilTextBottom;
|
||||||
@ -32,13 +35,13 @@ import mineplex.core.gadget.types.Gadget;
|
|||||||
import mineplex.core.gadget.types.GadgetType;
|
import mineplex.core.gadget.types.GadgetType;
|
||||||
import mineplex.core.mount.Mount;
|
import mineplex.core.mount.Mount;
|
||||||
import mineplex.core.mount.types.MountDragon;
|
import mineplex.core.mount.types.MountDragon;
|
||||||
import mineplex.core.titles.Titles;
|
|
||||||
import mineplex.core.portal.GenericServer;
|
import mineplex.core.portal.GenericServer;
|
||||||
import mineplex.core.portal.Intent;
|
import mineplex.core.portal.Intent;
|
||||||
import mineplex.core.updater.UpdateType;
|
import mineplex.core.updater.UpdateType;
|
||||||
import mineplex.core.updater.event.RestartServerEvent;
|
import mineplex.core.updater.event.RestartServerEvent;
|
||||||
import mineplex.core.updater.event.UpdateEvent;
|
import mineplex.core.updater.event.UpdateEvent;
|
||||||
import mineplex.minecraft.game.core.condition.Condition.ConditionType;
|
import mineplex.minecraft.game.core.condition.Condition.ConditionType;
|
||||||
|
|
||||||
import nautilus.game.arcade.ArcadeManager;
|
import nautilus.game.arcade.ArcadeManager;
|
||||||
import nautilus.game.arcade.events.GamePrepareCountdownCommence;
|
import nautilus.game.arcade.events.GamePrepareCountdownCommence;
|
||||||
import nautilus.game.arcade.events.GameStateChangeEvent;
|
import nautilus.game.arcade.events.GameStateChangeEvent;
|
||||||
@ -50,20 +53,6 @@ import nautilus.game.arcade.game.GameTeam;
|
|||||||
import nautilus.game.arcade.game.games.uhc.UHC;
|
import nautilus.game.arcade.game.games.uhc.UHC;
|
||||||
import nautilus.game.arcade.gametutorial.TutorialPhase;
|
import nautilus.game.arcade.gametutorial.TutorialPhase;
|
||||||
import nautilus.game.arcade.gametutorial.TutorialText;
|
import nautilus.game.arcade.gametutorial.TutorialText;
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.Color;
|
|
||||||
import org.bukkit.FireworkEffect.Type;
|
|
||||||
import org.bukkit.Location;
|
|
||||||
import org.bukkit.Sound;
|
|
||||||
import org.bukkit.entity.Creature;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.event.EventHandler;
|
|
||||||
import org.bukkit.event.EventPriority;
|
|
||||||
import org.bukkit.event.Listener;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class GameManager implements Listener
|
public class GameManager implements Listener
|
||||||
{
|
{
|
||||||
|
@ -7,7 +7,7 @@ import mineplex.core.boosters.Booster;
|
|||||||
import mineplex.core.common.Rank;
|
import mineplex.core.common.Rank;
|
||||||
import mineplex.core.common.currency.GlobalCurrency;
|
import mineplex.core.common.currency.GlobalCurrency;
|
||||||
import mineplex.core.common.util.*;
|
import mineplex.core.common.util.*;
|
||||||
import mineplex.core.titles.tracks.GemCollectorTrack;
|
import mineplex.core.titles.tracks.standard.GemCollectorTrack;
|
||||||
import mineplex.minecraft.game.core.combat.CombatComponent;
|
import mineplex.minecraft.game.core.combat.CombatComponent;
|
||||||
import mineplex.minecraft.game.core.combat.event.CombatDeathEvent;
|
import mineplex.minecraft.game.core.combat.event.CombatDeathEvent;
|
||||||
import mineplex.serverdata.Utility;
|
import mineplex.serverdata.Utility;
|
||||||
|
@ -5,7 +5,7 @@ import org.bukkit.event.EventHandler;
|
|||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
|
|
||||||
import mineplex.core.common.util.UtilPlayer;
|
import mineplex.core.common.util.UtilPlayer;
|
||||||
import mineplex.core.titles.tracks.WarriorTrack;
|
import mineplex.core.titles.tracks.standard.WarriorTrack;
|
||||||
import mineplex.minecraft.game.core.combat.event.CombatDeathEvent;
|
import mineplex.minecraft.game.core.combat.event.CombatDeathEvent;
|
||||||
import nautilus.game.arcade.game.Game;
|
import nautilus.game.arcade.game.Game;
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
|
|
||||||
import mineplex.core.titles.tracks.PeacefulTrack;
|
import mineplex.core.titles.tracks.standard.PeacefulTrack;
|
||||||
|
|
||||||
import nautilus.game.arcade.events.GameStateChangeEvent;
|
import nautilus.game.arcade.events.GameStateChangeEvent;
|
||||||
import nautilus.game.arcade.game.Game;
|
import nautilus.game.arcade.game.Game;
|
||||||
|
Loading…
Reference in New Issue
Block a user