mirror of
https://github.com/DRE2N/DungeonsXL.git
synced 2024-11-28 13:36:33 +01:00
Added Test plugin; resolves #66
This commit is contained in:
parent
4f43db7390
commit
62afb6bcf0
71
src/test/java/io/github/dre2n/dungeonsxl/DXLTest.java
Normal file
71
src/test/java/io/github/dre2n/dungeonsxl/DXLTest.java
Normal file
@ -0,0 +1,71 @@
|
||||
/*
|
||||
* Copyright (C) 2016 Daniel Saukel
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package io.github.dre2n.dungeonsxl;
|
||||
|
||||
import io.github.dre2n.dungeonsxl.command.CustomCommand;
|
||||
import io.github.dre2n.dungeonsxl.game.CustomGameType;
|
||||
import io.github.dre2n.dungeonsxl.global.ChestProtection;
|
||||
import io.github.dre2n.dungeonsxl.listener.*;
|
||||
import io.github.dre2n.dungeonsxl.requirement.RequirementTypeCustom;
|
||||
import io.github.dre2n.dungeonsxl.reward.RewardTypeCustom;
|
||||
import io.github.dre2n.dungeonsxl.sign.DSignTypeCustom;
|
||||
import io.github.dre2n.dungeonsxl.trigger.TriggerTypeCustom;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
/**
|
||||
* @author Daniel Saukel
|
||||
*/
|
||||
public class DXLTest extends JavaPlugin {
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
// This is how you register /dxl subcommands.
|
||||
DungeonsXL.getInstance().getCommands().addCommand(new CustomCommand());
|
||||
|
||||
// Register the DungeonsXL events just like any Bukkit event.
|
||||
getServer().getPluginManager().registerEvents(new DGroupListener(), this);
|
||||
getServer().getPluginManager().registerEvents(new DMobListener(), this);
|
||||
getServer().getPluginManager().registerEvents(new DPlayerListener(), this);
|
||||
getServer().getPluginManager().registerEvents(new DSignListener(), this);
|
||||
getServer().getPluginManager().registerEvents(new EditWorldListener(), this);
|
||||
getServer().getPluginManager().registerEvents(new GameWorldListener(), this);
|
||||
getServer().getPluginManager().registerEvents(new RequirementListener(), this);
|
||||
getServer().getPluginManager().registerEvents(new RewardListener(), this);
|
||||
getServer().getPluginManager().registerEvents(new TriggerListener(), this);
|
||||
|
||||
// Register the custom game type
|
||||
DungeonsXL.getInstance().getGameTypes().addGameType(CustomGameType.GHOST);
|
||||
|
||||
// There is currently no persistence API for loading the custom global protection :(
|
||||
// New instances get added to the protections, anyways.
|
||||
new ChestProtection(Bukkit.getWorlds().get(0).getBlockAt(0, 0, 0));
|
||||
|
||||
// Register the custom requirement type
|
||||
DungeonsXL.getInstance().getRequirementTypes().addRequirement(RequirementTypeCustom.AWESOMENESS);
|
||||
|
||||
// Register the custom reward type
|
||||
DungeonsXL.getInstance().getRewardTypes().addReward(RewardTypeCustom.HIGHWAY_TO_HELL);
|
||||
|
||||
// Register the custom edit Signs
|
||||
DungeonsXL.getInstance().getDSigns().addDSign(DSignTypeCustom.CUSTOM);
|
||||
|
||||
// Register the custom trigger
|
||||
DungeonsXL.getInstance().getTriggers().addTrigger(TriggerTypeCustom.CUSTOM);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
/*
|
||||
* Copyright (C) 2016 Daniel Saukel
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package io.github.dre2n.dungeonsxl.command;
|
||||
|
||||
import io.github.dre2n.commons.command.BRCommand;
|
||||
import io.github.dre2n.commons.util.messageutil.MessageUtil;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
/**
|
||||
* @author Daniel Saukel
|
||||
*/
|
||||
public class CustomCommand extends BRCommand {
|
||||
|
||||
public CustomCommand() {
|
||||
setCommand("custom");
|
||||
setMinArgs(0);
|
||||
setMaxArgs(0);
|
||||
setHelp("help pages message");
|
||||
setPermission("permission.node");
|
||||
setPlayerCommand(true);
|
||||
setConsoleCommand(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExecute(String[] args, CommandSender sender) {
|
||||
MessageUtil.sendMessage(sender, "This is a custom DXL command.");
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,153 @@
|
||||
/*
|
||||
* Copyright (C) 2016 Daniel Saukel
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package io.github.dre2n.dungeonsxl.game;
|
||||
|
||||
import io.github.dre2n.dungeonsxl.game.GameType;
|
||||
import org.bukkit.GameMode;
|
||||
|
||||
/**
|
||||
* @author Daniel Saukel
|
||||
*/
|
||||
public enum CustomGameType implements GameType {
|
||||
|
||||
GHOST("My awesome game type", "Identifier", false, false, false, false, false, false, GameMode.SPECTATOR, false);
|
||||
|
||||
private String displayName;
|
||||
private String signName;
|
||||
private boolean playerVersusPlayer;
|
||||
private boolean friendlyFire;
|
||||
private boolean mobWaves;
|
||||
private boolean rewards;
|
||||
private boolean showTime;
|
||||
private boolean build;
|
||||
private GameMode gameMode;
|
||||
private boolean lives;
|
||||
|
||||
CustomGameType(String displayName, String signName, boolean playerVersusPlayer, boolean friendlyFire, boolean mobWaves, boolean rewards, boolean showTime, boolean build, GameMode gameMode, boolean lives) {
|
||||
this.displayName = displayName;
|
||||
this.signName = signName;
|
||||
this.playerVersusPlayer = playerVersusPlayer;
|
||||
this.friendlyFire = friendlyFire;
|
||||
this.mobWaves = mobWaves;
|
||||
this.rewards = rewards;
|
||||
this.showTime = showTime;
|
||||
this.build = build;
|
||||
this.gameMode = gameMode;
|
||||
this.lives = lives;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDisplayName() {
|
||||
return displayName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDisplayName(String displayName) {
|
||||
this.displayName = displayName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSignName() {
|
||||
return signName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setSignName(String signName) {
|
||||
this.signName = signName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPlayerVersusPlayer() {
|
||||
return playerVersusPlayer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setPlayerVersusPlayer(boolean playerVersusPlayer) {
|
||||
this.playerVersusPlayer = playerVersusPlayer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isFriendlyFire() {
|
||||
return friendlyFire;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFriendlyFire(boolean friendlyFire) {
|
||||
this.friendlyFire = friendlyFire;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasMobWaves() {
|
||||
return mobWaves;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setMobWaves(boolean mobWaves) {
|
||||
this.mobWaves = mobWaves;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasRewards() {
|
||||
return rewards;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setRewards(boolean rewards) {
|
||||
this.rewards = rewards;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getShowTime() {
|
||||
return showTime;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setShowTime(boolean showTime) {
|
||||
this.showTime = showTime;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canBuild() {
|
||||
return build;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBuild(boolean build) {
|
||||
this.build = build;
|
||||
}
|
||||
|
||||
@Override
|
||||
public GameMode getGameMode() {
|
||||
return gameMode;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setGameMode(GameMode gameMode) {
|
||||
this.gameMode = gameMode;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasLives() {
|
||||
return lives;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setLives(boolean lives) {
|
||||
this.lives = lives;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,51 @@
|
||||
/*
|
||||
* Copyright (C) 2016 Daniel Saukel
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package io.github.dre2n.dungeonsxl.global;
|
||||
|
||||
import io.github.dre2n.dungeonsxl.global.GlobalProtection;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
|
||||
/**
|
||||
* @author Daniel Saukel
|
||||
*/
|
||||
public class ChestProtection extends GlobalProtection {
|
||||
|
||||
private Block chest;
|
||||
|
||||
public ChestProtection(Block chest) {
|
||||
super(chest.getWorld(), plugin.getGlobalProtections().generateId(ChestProtection.class, chest.getWorld()));
|
||||
this.chest = chest;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void save(FileConfiguration config) {
|
||||
String preString = "protections.chests." + getWorld().getName() + "." + getId();
|
||||
|
||||
config.set(preString + ".x", chest.getX());
|
||||
config.set(preString + ".y", chest.getY());
|
||||
config.set(preString + ".z", chest.getZ());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Block> getBlocks() {
|
||||
return Arrays.asList(chest);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,71 @@
|
||||
/*
|
||||
* Copyright (C) 2016 Daniel Saukel
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package io.github.dre2n.dungeonsxl.listener;
|
||||
|
||||
import io.github.dre2n.commons.util.messageutil.MessageUtil;
|
||||
import io.github.dre2n.dungeonsxl.DungeonsXL;
|
||||
import io.github.dre2n.dungeonsxl.event.dgroup.*;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
|
||||
/**
|
||||
* @author Daniel Saukel
|
||||
*/
|
||||
public class DGroupListener implements Listener {
|
||||
|
||||
DungeonsXL plugin = DungeonsXL.getInstance();
|
||||
|
||||
@EventHandler
|
||||
public void onCreate(DGroupCreateEvent event) {
|
||||
MessageUtil.log(plugin, "&b== " + event.getEventName() + "==");
|
||||
MessageUtil.log(plugin, "Cause: " + event.getCause());
|
||||
MessageUtil.log(plugin, "Creator: " + event.getCreator().getName());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onDisband(DGroupDisbandEvent event) {
|
||||
MessageUtil.log(plugin, "&b== " + event.getEventName() + "==");
|
||||
MessageUtil.log(plugin, "Cause: " + event.getCause());
|
||||
MessageUtil.log(plugin, "Creator: " + event.getDisbander().getName());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onFinishDungeon(DGroupFinishDungeonEvent event) {
|
||||
MessageUtil.log(plugin, "&b== " + event.getEventName() + "==");
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onStartFloor(DGroupStartFloorEvent event) {
|
||||
MessageUtil.log(plugin, "&b== " + event.getEventName() + "==");
|
||||
MessageUtil.log(plugin, "GameWorld: " + event.getGameWorld().getMapName());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onFinishFloor(DGroupFinishFloorEvent event) {
|
||||
MessageUtil.log(plugin, "&b== " + event.getEventName() + "==");
|
||||
MessageUtil.log(plugin, "Finished: " + event.getFinished().getMapName());
|
||||
MessageUtil.log(plugin, "Next: " + event.getNext());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onReward(DGroupRewardEvent event) {
|
||||
MessageUtil.log(plugin, "&b== " + event.getEventName() + "==");
|
||||
MessageUtil.log(plugin, "Rewards: " + event.getRewards());
|
||||
MessageUtil.log(plugin, "Excluded players: " + event.getExcludedPlayers());
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,44 @@
|
||||
/*
|
||||
* Copyright (C) 2016 Daniel Saukel
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package io.github.dre2n.dungeonsxl.listener;
|
||||
|
||||
import io.github.dre2n.commons.util.messageutil.MessageUtil;
|
||||
import io.github.dre2n.dungeonsxl.DungeonsXL;
|
||||
import io.github.dre2n.dungeonsxl.event.dmob.*;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
|
||||
/**
|
||||
* @author Daniel Saukel
|
||||
*/
|
||||
public class DMobListener implements Listener {
|
||||
|
||||
DungeonsXL plugin = DungeonsXL.getInstance();
|
||||
|
||||
@EventHandler
|
||||
public void onDeath(DMobDeathEvent event) {
|
||||
MessageUtil.log(plugin, "&b== " + event.getEventName() + "==");
|
||||
MessageUtil.log(plugin, "DMob: " + event.getDMob());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onSpawn(DMobSpawnEvent event) {
|
||||
MessageUtil.log(plugin, "&b== " + event.getEventName() + "==");
|
||||
MessageUtil.log(plugin, "DMob: " + event.getDMob());
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,78 @@
|
||||
/*
|
||||
* Copyright (C) 2016 Daniel Saukel
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package io.github.dre2n.dungeonsxl.listener;
|
||||
|
||||
import io.github.dre2n.commons.util.messageutil.MessageUtil;
|
||||
import io.github.dre2n.dungeonsxl.DungeonsXL;
|
||||
import io.github.dre2n.dungeonsxl.event.dplayer.*;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
|
||||
/**
|
||||
* @author Daniel Saukel
|
||||
*/
|
||||
public class DPlayerListener implements Listener {
|
||||
|
||||
DungeonsXL plugin = DungeonsXL.getInstance();
|
||||
|
||||
@EventHandler
|
||||
public void onDeath(DPlayerDeathEvent event) {
|
||||
MessageUtil.log(plugin, "&b== " + event.getEventName() + "==");
|
||||
MessageUtil.log(plugin, "DPlayer: " + event.getDPlayer().getPlayer().getName());
|
||||
MessageUtil.log(plugin, "Lost lives: " + event.getLostLives());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onEscape(DPlayerEscapeEvent event) {
|
||||
MessageUtil.log(plugin, "&b== " + event.getEventName() + "==");
|
||||
MessageUtil.log(plugin, "DPlayer: " + event.getDPlayer().getPlayer().getName());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onFinish(DPlayerFinishEvent event) {
|
||||
MessageUtil.log(plugin, "&b== " + event.getEventName() + "==");
|
||||
MessageUtil.log(plugin, "DPlayer: " + event.getDPlayer().getPlayer().getName());
|
||||
MessageUtil.log(plugin, "Player has to wait: " + event.getHasToWait());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onJoinDGroup(DPlayerJoinDGroupEvent event) {
|
||||
MessageUtil.log(plugin, "&b== " + event.getEventName() + "==");
|
||||
MessageUtil.log(plugin, "DPlayer: " + event.getDPlayer().getPlayer().getName());
|
||||
MessageUtil.log(plugin, "DGroup: " + event.getDGroup().getName());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onKick(DPlayerKickEvent event) {
|
||||
MessageUtil.log(plugin, "&b== " + event.getEventName() + "==");
|
||||
MessageUtil.log(plugin, "DPlayer: " + event.getDPlayer().getPlayer().getName());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onLeaveDGroup(DPlayerLeaveDGroupEvent event) {
|
||||
MessageUtil.log(plugin, "&b== " + event.getEventName() + "==");
|
||||
MessageUtil.log(plugin, "DPlayer: " + event.getDPlayer().getPlayer().getName());
|
||||
MessageUtil.log(plugin, "DGroup: " + event.getDGroup().getName());
|
||||
}
|
||||
|
||||
/*This would cause waaay too much console spam...
|
||||
@EventHandler
|
||||
public void onUpdate(DPlayerUpdateEvent event) {
|
||||
MessageUtil.log(plugin, "&b== " + event.getEventName() + "==");
|
||||
MessageUtil.log(plugin, "DPlayer: " + event.getDPlayer().getPlayer().getName());
|
||||
}*/
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
/*
|
||||
* Copyright (C) 2016 Daniel Saukel
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package io.github.dre2n.dungeonsxl.listener;
|
||||
|
||||
import io.github.dre2n.commons.util.messageutil.MessageUtil;
|
||||
import io.github.dre2n.dungeonsxl.DungeonsXL;
|
||||
import io.github.dre2n.dungeonsxl.event.dsign.DSignRegistrationEvent;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
|
||||
/**
|
||||
* @author Daniel Saukel
|
||||
*/
|
||||
public class DSignListener implements Listener {
|
||||
|
||||
DungeonsXL plugin = DungeonsXL.getInstance();
|
||||
|
||||
@EventHandler
|
||||
public void onRegistration(DSignRegistrationEvent event) {
|
||||
MessageUtil.log(plugin, "&b== " + event.getEventName() + "==");
|
||||
MessageUtil.log(plugin, "GameWorld (ID): " + event.getGameWorld().getId());
|
||||
MessageUtil.log(plugin, "DSign: " + event.getDSign().getType());
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
/*
|
||||
* Copyright (C) 2016 Daniel Saukel
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package io.github.dre2n.dungeonsxl.listener;
|
||||
|
||||
import io.github.dre2n.commons.util.messageutil.MessageUtil;
|
||||
import io.github.dre2n.dungeonsxl.DungeonsXL;
|
||||
import io.github.dre2n.dungeonsxl.event.editworld.*;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
|
||||
/**
|
||||
* @author Daniel Saukel
|
||||
*/
|
||||
public class EditWorldListener implements Listener {
|
||||
|
||||
DungeonsXL plugin = DungeonsXL.getInstance();
|
||||
|
||||
@EventHandler
|
||||
public void onGenerate(EditWorldGenerateEvent event) {
|
||||
MessageUtil.log(plugin, "&b== " + event.getEventName() + "==");
|
||||
MessageUtil.log(plugin, "EditWorld (ID): " + event.getEditWorld().getId());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onLoad(EditWorldLoadEvent event) {
|
||||
MessageUtil.log(plugin, "&b== " + event.getEventName() + "==");
|
||||
MessageUtil.log(plugin, "EditWorld (name): " + event.getName());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onSave(EditWorldGenerateEvent event) {
|
||||
MessageUtil.log(plugin, "&b== " + event.getEventName() + "==");
|
||||
MessageUtil.log(plugin, "EditWorld (ID): " + event.getEditWorld().getId());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onUnload(EditWorldUnloadEvent event) {
|
||||
MessageUtil.log(plugin, "&b== " + event.getEventName() + "==");
|
||||
MessageUtil.log(plugin, "EditWorld (ID): " + event.getEditWorld().getId());
|
||||
MessageUtil.log(plugin, "Save?: " + event.getSave());
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,51 @@
|
||||
/*
|
||||
* Copyright (C) 2016 Daniel Saukel
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package io.github.dre2n.dungeonsxl.listener;
|
||||
|
||||
import io.github.dre2n.commons.util.messageutil.MessageUtil;
|
||||
import io.github.dre2n.dungeonsxl.DungeonsXL;
|
||||
import io.github.dre2n.dungeonsxl.event.gameworld.*;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
|
||||
/**
|
||||
* @author Daniel Saukel
|
||||
*/
|
||||
public class GameWorldListener implements Listener {
|
||||
|
||||
DungeonsXL plugin = DungeonsXL.getInstance();
|
||||
|
||||
@EventHandler
|
||||
public void onLoad(GameWorldLoadEvent event) {
|
||||
MessageUtil.log(plugin, "&b== " + event.getEventName() + "==");
|
||||
MessageUtil.log(plugin, "GameWorld (name): " + event.getName());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onGenerate(GameWorldStartGameEvent event) {
|
||||
MessageUtil.log(plugin, "&b== " + event.getEventName() + "==");
|
||||
MessageUtil.log(plugin, "GameWorld (ID): " + event.getGameWorld().getId());
|
||||
MessageUtil.log(plugin, "Game: " + event.getGame());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onUnload(GameWorldUnloadEvent event) {
|
||||
MessageUtil.log(plugin, "&b== " + event.getEventName() + "==");
|
||||
MessageUtil.log(plugin, "GameWorld (ID): " + event.getGameWorld().getId());
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,50 @@
|
||||
/*
|
||||
* Copyright (C) 2016 Daniel Saukel
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package io.github.dre2n.dungeonsxl.listener;
|
||||
|
||||
import io.github.dre2n.commons.util.messageutil.MessageUtil;
|
||||
import io.github.dre2n.dungeonsxl.DungeonsXL;
|
||||
import io.github.dre2n.dungeonsxl.event.requirement.*;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
|
||||
/**
|
||||
* @author Daniel Saukel
|
||||
*/
|
||||
public class RequirementListener implements Listener {
|
||||
|
||||
DungeonsXL plugin = DungeonsXL.getInstance();
|
||||
|
||||
@EventHandler
|
||||
public void onCheck(RequirementCheckEvent event) {
|
||||
MessageUtil.log(plugin, "&b== " + event.getEventName() + "==");
|
||||
MessageUtil.log(plugin, "Requirement: " + event.getRequirement().getType());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onDemand(RequirementDemandEvent event) {
|
||||
MessageUtil.log(plugin, "&b== " + event.getEventName() + "==");
|
||||
MessageUtil.log(plugin, "Requirement: " + event.getRequirement().getType());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onRegistration(RequirementRegistrationEvent event) {
|
||||
MessageUtil.log(plugin, "&b== " + event.getEventName() + "==");
|
||||
MessageUtil.log(plugin, "Requirement: " + event.getRequirement().getType());
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
/*
|
||||
* Copyright (C) 2016 Daniel Saukel
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package io.github.dre2n.dungeonsxl.listener;
|
||||
|
||||
import io.github.dre2n.commons.util.messageutil.MessageUtil;
|
||||
import io.github.dre2n.dungeonsxl.DungeonsXL;
|
||||
import io.github.dre2n.dungeonsxl.event.reward.*;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
|
||||
/**
|
||||
* @author Daniel Saukel
|
||||
*/
|
||||
public class RewardListener implements Listener {
|
||||
|
||||
DungeonsXL plugin = DungeonsXL.getInstance();
|
||||
|
||||
@EventHandler
|
||||
public void onAddition(RewardAdditionEvent event) {
|
||||
MessageUtil.log(plugin, "&b== " + event.getEventName() + "==");
|
||||
MessageUtil.log(plugin, "Reward: " + event.getReward().getType());
|
||||
MessageUtil.log(plugin, "DGroup: " + event.getDGroup().getName());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onRegistration(RewardRegistrationEvent event) {
|
||||
MessageUtil.log(plugin, "&b== " + event.getEventName() + "==");
|
||||
MessageUtil.log(plugin, "Reward: " + event.getReward().getType());
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
/*
|
||||
* Copyright (C) 2016 Daniel Saukel
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package io.github.dre2n.dungeonsxl.listener;
|
||||
|
||||
import io.github.dre2n.commons.util.messageutil.MessageUtil;
|
||||
import io.github.dre2n.dungeonsxl.DungeonsXL;
|
||||
import io.github.dre2n.dungeonsxl.event.trigger.TriggerActionEvent;
|
||||
import io.github.dre2n.dungeonsxl.event.trigger.TriggerRegistrationEvent;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
|
||||
/**
|
||||
* @author Daniel Saukel
|
||||
*/
|
||||
public class TriggerListener implements Listener {
|
||||
|
||||
DungeonsXL plugin = DungeonsXL.getInstance();
|
||||
|
||||
@EventHandler
|
||||
public void onAction(TriggerActionEvent event) {
|
||||
MessageUtil.log(plugin, "&b== " + event.getEventName() + "==");
|
||||
MessageUtil.log(plugin, "Trigger: " + event.getTrigger().getType());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onRegisration(TriggerRegistrationEvent event) {
|
||||
MessageUtil.log(plugin, "&b== " + event.getEventName() + "==");
|
||||
MessageUtil.log(plugin, "Trigger: " + event.getTrigger().getType());
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,65 @@
|
||||
/*
|
||||
* Copyright (C) 2016 Daniel Saukel
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package io.github.dre2n.dungeonsxl.requirement;
|
||||
|
||||
import io.github.dre2n.commons.util.messageutil.MessageUtil;
|
||||
import io.github.dre2n.dungeonsxl.requirement.Requirement;
|
||||
import io.github.dre2n.dungeonsxl.requirement.RequirementType;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
/**
|
||||
* @author Daniel Saukel
|
||||
*/
|
||||
public class AwesomenessRequirement extends Requirement {
|
||||
|
||||
private RequirementType type = RequirementTypeCustom.AWESOMENESS;
|
||||
|
||||
private int level;
|
||||
|
||||
/**
|
||||
* @return the awesomeness level
|
||||
*/
|
||||
public int getAwesomenessLevel() {
|
||||
return level;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param level
|
||||
* the awesomeness level to set
|
||||
*/
|
||||
public void setAwesomenessLevel(int level) {
|
||||
this.level = level;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean check(Player player) {
|
||||
// Code that checks if the player has the requirement
|
||||
MessageUtil.sendTitleMessage(player, "&6Are you AWESOME?");
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void demand(Player player) {
|
||||
// Code that removes the requirement if it is a fee
|
||||
}
|
||||
|
||||
@Override
|
||||
public RequirementType getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,47 @@
|
||||
/*
|
||||
* Copyright (C) 2016 Daniel Saukel
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package io.github.dre2n.dungeonsxl.requirement;
|
||||
|
||||
import io.github.dre2n.dungeonsxl.requirement.Requirement;
|
||||
import io.github.dre2n.dungeonsxl.requirement.RequirementType;
|
||||
|
||||
/**
|
||||
* @author Daniel Saukel
|
||||
*/
|
||||
public enum RequirementTypeCustom implements RequirementType {
|
||||
|
||||
AWESOMENESS("awesomeness", AwesomenessRequirement.class);
|
||||
|
||||
private String identifier;
|
||||
private Class<? extends Requirement> handler;
|
||||
|
||||
RequirementTypeCustom(String identifier, Class<? extends Requirement> handler) {
|
||||
this.identifier = identifier;
|
||||
this.handler = handler;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getIdentifier() {
|
||||
return identifier;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends Requirement> getHandler() {
|
||||
return handler;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,71 @@
|
||||
/*
|
||||
* Copyright (C) 2016 Daniel Saukel
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package io.github.dre2n.dungeonsxl.reward;
|
||||
|
||||
import io.github.dre2n.commons.util.messageutil.MessageUtil;
|
||||
import io.github.dre2n.dungeonsxl.config.DMessages;
|
||||
import io.github.dre2n.dungeonsxl.reward.Reward;
|
||||
import io.github.dre2n.dungeonsxl.reward.RewardType;
|
||||
import java.util.Arrays;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
/**
|
||||
* @author Daniel Saukel
|
||||
*/
|
||||
public class HighwayToHellReward extends Reward {
|
||||
|
||||
private RewardType type = RewardTypeCustom.HIGHWAY_TO_HELL;
|
||||
|
||||
public static final ItemStack RECORD;
|
||||
|
||||
static {
|
||||
RECORD = new ItemStack(Material.GOLD_RECORD);
|
||||
ItemMeta meta = RECORD.getItemMeta();
|
||||
meta.setDisplayName(ChatColor.DARK_RED + "Highway To Hell");
|
||||
meta.setLore(Arrays.asList(
|
||||
ChatColor.GOLD + "1. Highway To Hell 3:28",
|
||||
ChatColor.GOLD + "2. Girls Got Rhythm 3:24",
|
||||
ChatColor.GOLD + "3. Walk All Over You 5:09",
|
||||
ChatColor.GOLD + "4. Touch Too Much 4:26",
|
||||
ChatColor.GOLD + "5. Beating Around The Bush 3:56",
|
||||
ChatColor.GOLD + "6. Shot Down In Flames 3:23",
|
||||
ChatColor.GOLD + "7. Get It Hot 2:34",
|
||||
ChatColor.GOLD + "8. If You Want Blood (You've Got It) 4:37",
|
||||
ChatColor.GOLD + "9. Love Hungry Man 4:17",
|
||||
ChatColor.GOLD + "10. Night Prowler 6:16",
|
||||
ChatColor.DARK_RED + "All titles A. Young - M. Young - B. Scott"
|
||||
));
|
||||
RECORD.setItemMeta(meta);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void giveTo(Player player) {
|
||||
// This is called when all rewards are given to the players. Each group member gets one item.
|
||||
player.getInventory().addItem(RECORD);
|
||||
MessageUtil.sendMessage(player, plugin.getMessageConfig().getMessage(DMessages.REWARD_GENERAL, "1 Highway To Hell album"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public RewardType getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,46 @@
|
||||
/*
|
||||
* Copyright (C) 2016 Daniel Saukel
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package io.github.dre2n.dungeonsxl.reward;
|
||||
|
||||
import io.github.dre2n.dungeonsxl.reward.Reward;
|
||||
import io.github.dre2n.dungeonsxl.reward.RewardType;
|
||||
|
||||
/**
|
||||
* @author Daniel Saukel
|
||||
*/
|
||||
public enum RewardTypeCustom implements RewardType {
|
||||
|
||||
HIGHWAY_TO_HELL("highwayToHell", HighwayToHellReward.class);
|
||||
|
||||
private String identifier;
|
||||
private Class<? extends Reward> handler;
|
||||
|
||||
RewardTypeCustom(String identifier, Class<? extends Reward> handler) {
|
||||
this.identifier = identifier;
|
||||
this.handler = handler;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getIdentifier() {
|
||||
return identifier;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends Reward> getHandler() {
|
||||
return handler;
|
||||
}
|
||||
}
|
@ -0,0 +1,69 @@
|
||||
/*
|
||||
* Copyright (C) 2016 Daniel Saukel
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package io.github.dre2n.dungeonsxl.sign;
|
||||
|
||||
import io.github.dre2n.dungeonsxl.sign.DSign;
|
||||
import io.github.dre2n.dungeonsxl.sign.DSignType;
|
||||
import io.github.dre2n.dungeonsxl.world.GameWorld;
|
||||
import org.bukkit.block.Sign;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
/**
|
||||
* @author Daniel Saukel
|
||||
*/
|
||||
public class CustomSign extends DSign {
|
||||
|
||||
private DSignType type = DSignTypeCustom.CUSTOM;
|
||||
|
||||
public CustomSign(Sign sign, GameWorld gameWorld) {
|
||||
super(sign, gameWorld);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean check() {
|
||||
// Check if the sign has the correct format
|
||||
if (getSign().getLine(1).isEmpty()) {
|
||||
return false;
|
||||
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInit() {
|
||||
// Stuff that happens when the sign is transformed
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPlayerTrigger(Player player) {
|
||||
// Stuff that happens when one player triggers the sign
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTrigger() {
|
||||
// Stuff that happens when the sign is triggered
|
||||
remove();
|
||||
}
|
||||
|
||||
@Override
|
||||
public DSignType getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,62 @@
|
||||
/*
|
||||
* Copyright (C) 2016 Daniel Saukel
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package io.github.dre2n.dungeonsxl.sign;
|
||||
|
||||
import io.github.dre2n.dungeonsxl.player.DPermissions;
|
||||
import io.github.dre2n.dungeonsxl.sign.DSign;
|
||||
import io.github.dre2n.dungeonsxl.sign.DSignType;
|
||||
|
||||
/**
|
||||
* @author Daniel Saukel
|
||||
*/
|
||||
public enum DSignTypeCustom implements DSignType {
|
||||
|
||||
CUSTOM("Custom", "custom", false, CustomSign.class);
|
||||
|
||||
private String name;
|
||||
private String buildPermission;
|
||||
private boolean onDungeonInit;
|
||||
private Class<? extends DSign> handler;
|
||||
|
||||
DSignTypeCustom(String name, String buildPermission, boolean onDungeonInit, Class<? extends DSign> handler) {
|
||||
this.name = name;
|
||||
this.buildPermission = buildPermission;
|
||||
this.onDungeonInit = onDungeonInit;
|
||||
this.handler = handler;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getBuildPermission() {
|
||||
return DPermissions.SIGN.getNode() + "." + buildPermission;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOnDungeonInit() {
|
||||
return onDungeonInit;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends DSign> getHandler() {
|
||||
return handler;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,99 @@
|
||||
/*
|
||||
* Copyright (C) 2016 Daniel Saukel
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package io.github.dre2n.dungeonsxl.trigger;
|
||||
|
||||
import io.github.dre2n.dungeonsxl.event.trigger.TriggerActionEvent;
|
||||
import io.github.dre2n.dungeonsxl.trigger.Trigger;
|
||||
import io.github.dre2n.dungeonsxl.trigger.TriggerType;
|
||||
import io.github.dre2n.dungeonsxl.world.GameWorld;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
/**
|
||||
* @author Daniel Saukel
|
||||
*/
|
||||
public class CustomTrigger extends Trigger {
|
||||
|
||||
private static Map<GameWorld, ArrayList<CustomTrigger>> triggers = new HashMap<>();
|
||||
|
||||
private TriggerType type = TriggerTypeCustom.CUSTOM;
|
||||
|
||||
private String value;
|
||||
|
||||
public CustomTrigger(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void onTrigger(Player player) {
|
||||
TriggerActionEvent event = new TriggerActionEvent(this);
|
||||
|
||||
if (event.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
setTriggered(true);
|
||||
this.setPlayer(player);
|
||||
updateDSigns();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void register(GameWorld gameWorld) {
|
||||
if (!hasTriggers(gameWorld)) {
|
||||
ArrayList<CustomTrigger> list = new ArrayList<>();
|
||||
list.add(this);
|
||||
triggers.put(gameWorld, list);
|
||||
|
||||
} else {
|
||||
triggers.get(gameWorld).add(this);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unregister(GameWorld gameWorld) {
|
||||
if (hasTriggers(gameWorld)) {
|
||||
triggers.get(gameWorld).remove(this);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TriggerType getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public static CustomTrigger getOrCreate(String value, GameWorld gameWorld) {
|
||||
if (triggers.containsKey(gameWorld)) {
|
||||
for (CustomTrigger trigger : triggers.get(gameWorld)) {
|
||||
if (trigger.value.equals(value)) {
|
||||
return trigger;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return new CustomTrigger(value);
|
||||
}
|
||||
|
||||
public static boolean hasTriggers(GameWorld gameWorld) {
|
||||
return !triggers.isEmpty() && triggers.containsKey(gameWorld);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,47 @@
|
||||
/*
|
||||
* Copyright (C) 2016 Daniel Saukel
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package io.github.dre2n.dungeonsxl.trigger;
|
||||
|
||||
import io.github.dre2n.dungeonsxl.trigger.Trigger;
|
||||
import io.github.dre2n.dungeonsxl.trigger.TriggerType;
|
||||
|
||||
/**
|
||||
* @author Daniel Saukel
|
||||
*/
|
||||
public enum TriggerTypeCustom implements TriggerType {
|
||||
|
||||
CUSTOM("C", CustomTrigger.class);
|
||||
|
||||
private String identifier;
|
||||
private Class<? extends Trigger> handler;
|
||||
|
||||
TriggerTypeCustom(String identifier, Class<? extends Trigger> handler) {
|
||||
this.identifier = identifier;
|
||||
this.handler = handler;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getIdentifier() {
|
||||
return identifier;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends Trigger> getHandler() {
|
||||
return handler;
|
||||
}
|
||||
|
||||
}
|
6
src/test/resources/plugin.yml
Normal file
6
src/test/resources/plugin.yml
Normal file
@ -0,0 +1,6 @@
|
||||
name: DXLTest
|
||||
main: io.github.dre2n.dungeonsxl.DXLTest
|
||||
version: TEST
|
||||
author: Daniel Saukel
|
||||
description: Test
|
||||
depend: [DungeonsXL]
|
Loading…
Reference in New Issue
Block a user