Made duping usage for class shop impossible
This commit is contained in:
parent
97d5d21a55
commit
16804a860c
@ -4,6 +4,7 @@ import java.sql.Timestamp;
|
|||||||
|
|
||||||
import mineplex.core.MiniPlugin;
|
import mineplex.core.MiniPlugin;
|
||||||
import mineplex.core.blockrestore.BlockRestoreData;
|
import mineplex.core.blockrestore.BlockRestoreData;
|
||||||
|
import mineplex.core.common.Rank;
|
||||||
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.UtilBlock;
|
import mineplex.core.common.util.UtilBlock;
|
||||||
@ -23,6 +24,7 @@ import mineplex.game.clans.core.repository.ClanTerritory;
|
|||||||
import mineplex.minecraft.game.core.damage.CustomDamageEvent;
|
import mineplex.minecraft.game.core.damage.CustomDamageEvent;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Effect;
|
import org.bukkit.Effect;
|
||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
@ -62,6 +64,25 @@ public class ClansGame extends MiniPlugin
|
|||||||
_clans = clans;
|
_clans = clans;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isDupedFromClassShop(ItemStack item)
|
||||||
|
{
|
||||||
|
if (item == null || item.getType() == Material.AIR)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!item.hasItemMeta() || !item.getItemMeta().hasDisplayName())
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
String name = ChatColor.stripColor(item.getItemMeta().getDisplayName()).toUpperCase();
|
||||||
|
if (name.contains("APPLY DEFAULT BUILD") || name.contains("APPLY BUILD") || name.contains("EDIT BUILD") || name.contains("DELETE BUILD"))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@EventHandler(ignoreCancelled = true)
|
@EventHandler(ignoreCancelled = true)
|
||||||
public void openClanShop(PlayerInteractEvent event)
|
public void openClanShop(PlayerInteractEvent event)
|
||||||
{
|
{
|
||||||
@ -102,6 +123,26 @@ public class ClansGame extends MiniPlugin
|
|||||||
|
|
||||||
if (event.getBlock().getType() != Material.LADDER) return;
|
if (event.getBlock().getType() != Material.LADDER) return;
|
||||||
|
|
||||||
|
if (isDupedFromClassShop(event.getItemInHand()))
|
||||||
|
{
|
||||||
|
event.setCancelled(true);
|
||||||
|
for (Player p : Bukkit.getOnlinePlayers())
|
||||||
|
{
|
||||||
|
if (ClansManager.getInstance().getClientManager().hasRank(p, Rank.HELPER))
|
||||||
|
{
|
||||||
|
UtilPlayer.message(p, F.elem("[" + C.cRedB + "!" + C.cGray + "] ") + event.getPlayer().getName() + " just tried to use a duped item/block!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
final int slot = event.getPlayer().getInventory().getHeldItemSlot();
|
||||||
|
ClansManager.getInstance().runSyncLater(() ->
|
||||||
|
{
|
||||||
|
event.getPlayer().getInventory().setItem(slot, new ItemStack(Material.AIR));
|
||||||
|
event.getPlayer().updateInventory();
|
||||||
|
}, 1L);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (_clans.getClanUtility().getAccess(event.getPlayer(), event.getBlock().getLocation()) == ClanRelation.SELF) return;
|
if (_clans.getClanUtility().getAccess(event.getPlayer(), event.getBlock().getLocation()) == ClanRelation.SELF) return;
|
||||||
|
|
||||||
final Block block = event.getBlock();
|
final Block block = event.getBlock();
|
||||||
|
@ -4,6 +4,7 @@ import java.util.List;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.Sound;
|
import org.bukkit.Sound;
|
||||||
@ -22,6 +23,7 @@ import org.bukkit.util.Vector;
|
|||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
|
|
||||||
|
import mineplex.core.common.Rank;
|
||||||
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.UtilAlg;
|
import mineplex.core.common.util.UtilAlg;
|
||||||
@ -36,6 +38,8 @@ import mineplex.core.common.util.UtilServer;
|
|||||||
import mineplex.core.common.util.UtilTime;
|
import mineplex.core.common.util.UtilTime;
|
||||||
import mineplex.core.itemstack.ItemBuilder;
|
import mineplex.core.itemstack.ItemBuilder;
|
||||||
import mineplex.game.clans.clans.ClanInfo;
|
import mineplex.game.clans.clans.ClanInfo;
|
||||||
|
import mineplex.game.clans.clans.ClansGame;
|
||||||
|
import mineplex.game.clans.clans.ClansManager;
|
||||||
import mineplex.game.clans.clans.siege.SiegeManager;
|
import mineplex.game.clans.clans.siege.SiegeManager;
|
||||||
import mineplex.game.clans.clans.siege.events.SiegeWeaponExplodeEvent;
|
import mineplex.game.clans.clans.siege.events.SiegeWeaponExplodeEvent;
|
||||||
import mineplex.game.clans.clans.siege.repository.tokens.SiegeWeaponToken;
|
import mineplex.game.clans.clans.siege.repository.tokens.SiegeWeaponToken;
|
||||||
@ -216,6 +220,7 @@ public class Cannon extends SiegeWeapon
|
|||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
@EventHandler
|
@EventHandler
|
||||||
protected void InventoryClick(InventoryClickEvent event)
|
protected void InventoryClick(InventoryClickEvent event)
|
||||||
{
|
{
|
||||||
@ -224,7 +229,7 @@ public class Cannon extends SiegeWeapon
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (event.getClick() == ClickType.SHIFT_RIGHT || event.getClick() == ClickType.SHIFT_RIGHT)
|
if (event.getClick() == ClickType.SHIFT_RIGHT || event.getClick() == ClickType.SHIFT_LEFT)
|
||||||
{
|
{
|
||||||
if(_inventory.getViewers().contains(event.getWhoClicked()))
|
if(_inventory.getViewers().contains(event.getWhoClicked()))
|
||||||
{
|
{
|
||||||
@ -282,6 +287,19 @@ public class Cannon extends SiegeWeapon
|
|||||||
{
|
{
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
else if (event.getSlot() == _ammunitionSlot && ClansGame.isDupedFromClassShop(event.getCursor()))
|
||||||
|
{
|
||||||
|
event.setCancelled(true);
|
||||||
|
for (Player p : Bukkit.getOnlinePlayers())
|
||||||
|
{
|
||||||
|
if (ClansManager.getInstance().getClientManager().hasRank(p, Rank.HELPER))
|
||||||
|
{
|
||||||
|
UtilPlayer.message(p, F.elem("[" + C.cRedB + "!" + C.cGray + "] ") + event.getWhoClicked().getName() + " just tried to use a duped item/block!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
event.setCursor(new ItemStack(Material.AIR));
|
||||||
|
((Player)event.getWhoClicked()).updateInventory();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateInventory()
|
private void updateInventory()
|
||||||
|
Loading…
Reference in New Issue
Block a user