ResExtras/src/main/java/cn/citycraft/ResExtras/flags/Time.java

69 lines
2.2 KiB
Java

package cn.citycraft.ResExtras.flags;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import com.bekvon.bukkit.residence.event.ResidenceChangedEvent;
import com.bekvon.bukkit.residence.event.ResidenceFlagChangeEvent;
import com.bekvon.bukkit.residence.protection.ClaimedResidence;
import com.bekvon.bukkit.residence.protection.FlagPermissions.FlagState;
public class Time implements Listener {
@EventHandler
public void onResidenceChange(final ResidenceChangedEvent e) {
final Player player = e.getPlayer();
final ClaimedResidence oldRes = e.getFrom();
final ClaimedResidence newRes = e.getTo();
if (oldRes != null) {
if (oldRes.getPermissions().has("night", false) || oldRes.getPermissions().has("day", false)) {
player.resetPlayerTime();
}
}
if (newRes != null) {
if (newRes.getPermissions().has("day", false)) {
player.setPlayerTime(6000, false);
return;
}
if (newRes.getPermissions().has("night", false)) {
player.setPlayerTime(14000, false);
return;
}
}
}
@EventHandler
public void onResidenceFlag(final ResidenceFlagChangeEvent event) {
final ClaimedResidence res = event.getResidence();
if (event.getFlag().equalsIgnoreCase("day")) {
if (event.getNewState() == FlagState.TRUE) {
for (final Player player : res.getPlayersInResidence()) {
player.setPlayerTime(6000, false);
}
}
if (event.getNewState() == FlagState.FALSE) {
for (final Player player : res.getPlayersInResidence()) {
player.resetPlayerTime();
}
}
if (event.getNewState() == FlagState.NEITHER) {
for (final Player player : res.getPlayersInResidence()) {
player.resetPlayerTime();
}
}
}
if (event.getFlag().equalsIgnoreCase("night")) {
if (event.getNewState() == FlagState.TRUE) {
for (final Player player : res.getPlayersInResidence()) {
player.setPlayerTime(14000, false);
}
}
if (event.getNewState() == FlagState.FALSE || event.getNewState() == FlagState.NEITHER) {
for (final Player player : res.getPlayersInResidence()) {
player.resetPlayerTime();
}
}
}
}
}