Skip to content

Commit

Permalink
add mob arena support, to prevent drop transfer in mob arenas
Browse files Browse the repository at this point in the history
  • Loading branch information
Hidendra committed Jun 13, 2012
1 parent 442a185 commit 17213af
Show file tree
Hide file tree
Showing 3 changed files with 73 additions and 0 deletions.
Binary file added lib/plugins/MobArena-v0.94.4.52.jar
Binary file not shown.
4 changes: 4 additions & 0 deletions src/main/java/com/griefcraft/lwc/LWC.java
Expand Up @@ -89,6 +89,7 @@
import com.griefcraft.modules.modes.PersistModule;
import com.griefcraft.modules.modify.ModifyModule;
import com.griefcraft.modules.owners.OwnersModule;
import com.griefcraft.modules.pluginsupport.MobArena;
import com.griefcraft.modules.redstone.RedstoneModule;
import com.griefcraft.modules.setup.BaseSetupModule;
import com.griefcraft.modules.setup.DatabaseSetupModule;
Expand Down Expand Up @@ -1441,6 +1442,9 @@ private void registerCoreModules() {
registerModule(new HistoryModule());
registerModule(new ConfirmModule());

// plugin support
registerModule(new MobArena());

// admin commands
registerModule(new BaseAdminModule());
registerModule(new AdminCache());
Expand Down
69 changes: 69 additions & 0 deletions src/main/java/com/griefcraft/modules/pluginsupport/MobArena.java
@@ -0,0 +1,69 @@
/*
* Copyright 2011 Tyler Blair. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation are those of the
* authors and contributors and should not be interpreted as representing official policies,
* either expressed or implied, of anybody else.
*/

package com.griefcraft.modules.pluginsupport;

import com.griefcraft.lwc.LWC;
import com.griefcraft.scripting.JavaModule;
import com.griefcraft.scripting.event.LWCDropItemEvent;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;

public class MobArena extends JavaModule {

/**
* Mobarena instance
*/
private com.garbagemule.MobArena.MobArena mobarena;

public void load(LWC lwc) {
Plugin plugin = Bukkit.getServer().getPluginManager().getPlugin("MobArena");

if (plugin != null) {
mobarena = (com.garbagemule.MobArena.MobArena) plugin;
lwc.log("Enabled plugin support for MobArena");
}
}

/**
* MobArena allows you to spawn items. This can be dangerous if using drop transfer which you can drop
* items into a chest. So we block LWC's drop item event if the player is inside of an arena
*
* @param event
*/
@Override
public void onDropItem(LWCDropItemEvent event) {
Player player = event.getPlayer();

if (mobarena != null && mobarena.getArenaMaster().getArenaAtLocation(player.getLocation()) != null) {
event.setCancelled(true);
}
}

}

0 comments on commit 17213af

Please sign in to comment.