diff --git a/src/main/java/org/ultramine/server/UMEventHandler.java b/src/main/java/org/ultramine/server/UMEventHandler.java index 373a5f7..350cc97 100644 --- a/src/main/java/org/ultramine/server/UMEventHandler.java +++ b/src/main/java/org/ultramine/server/UMEventHandler.java @@ -27,6 +27,7 @@ import net.minecraft.world.WorldServer; import static net.minecraft.util.EnumChatFormatting.*; import net.minecraftforge.event.ServerChatEvent; +import net.minecraftforge.event.entity.living.LivingAttackEvent; import net.minecraftforge.event.entity.living.LivingDeathEvent; import net.minecraftforge.event.entity.player.PlayerEvent; import net.minecraftforge.event.entity.player.PlayerInteractEvent; @@ -184,7 +185,7 @@ if(!PermissionHandler.getInstance().has(e.getPlayer(), "ability.player.blockbreak")) { e.setCanceled(true); - e.getPlayer().addChatMessage(new ChatComponentTranslation("ultramine.abilityblockbreak").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))); + e.getPlayer().addChatMessage(new ChatComponentTranslation("ultramine.ability.blockbreak").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))); } } @@ -218,4 +219,20 @@ if(e.useItem == Event.Result.DENY && e.useBlock == Event.Result.DENY) e.setCanceled(true); } + + @SideOnly(Side.SERVER) + @SubscribeEvent(priority = EventPriority.HIGHEST) + public void onLivingAttackEvent(LivingAttackEvent e) + { + Entity attacker = e.source.getEntity(); + if(attacker != null && attacker.isEntityPlayerMP()) + { + EntityPlayerMP player = (EntityPlayerMP)attacker; + if(!PermissionHandler.getInstance().has(player, "ability.player.attack")) + { + e.setCanceled(true); + player.addChatMessage(new ChatComponentTranslation("ultramine.ability.attack").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))); + } + } + } } diff --git a/src/main/resources/assets/ultramine/lang/en_US.lang b/src/main/resources/assets/ultramine/lang/en_US.lang index ac14058..2324c15 100644 --- a/src/main/resources/assets/ultramine/lang/en_US.lang +++ b/src/main/resources/assets/ultramine/lang/en_US.lang @@ -10,6 +10,7 @@ ultramine.ability.blockplace=You don't have permissions to place blocks ultramine.ability.useitem=You don't have permissions to use items ultramine.ability.useblock=You don't have permissions to use blocks +ultramine.ability.attack=You don't have permissions to damage entities #Command generic commands.generic.world.invalid=Can't find world '%s' diff --git a/src/main/resources/assets/ultramine/lang/ru_RU.lang b/src/main/resources/assets/ultramine/lang/ru_RU.lang index 8de3e26..3fbbd8b 100644 --- a/src/main/resources/assets/ultramine/lang/ru_RU.lang +++ b/src/main/resources/assets/ultramine/lang/ru_RU.lang @@ -10,6 +10,7 @@ ultramine.ability.blockplace=У вас нет прав на установку блоков ultramine.ability.useitem=У вас нет прав на использование предметов ultramine.ability.useblock=У вас нет прав на использование блоков +ultramine.ability.attack=У вас нет права наносить урон #Command generic commands.generic.world.invalid=Указанный мир не существует или неинициализирован '%s'