Package me.toalec.RankUp

Source Code of me.toalec.RankUp.SignTrigger

package me.toalec.RankUp;

import me.toalec.RankUp.Permissions.PermissionsManager;
import me.toalec.RankUp.util.Utility;

import org.bukkit.Material;
import org.bukkit.block.Sign;
import org.bukkit.entity.Player;
import org.bukkit.event.block.Action;
import org.bukkit.event.block.BlockListener;
import org.bukkit.event.block.SignChangeEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerListener;

public class SignTrigger extends PlayerListener{

  SignTrigger(RankUp instance, ConfigManager config, PermissionsManager pm){
    this.pm = pm;
    this.config = config;
  }
 
  public void onPlayerInteract(PlayerInteractEvent event){
    if(event.getAction().equals(Action.RIGHT_CLICK_BLOCK)){
      if(event.getClickedBlock().getType().equals(Material.SIGN_POST) || event.getClickedBlock().getType().equals(Material.WALL_SIGN)){
        Sign sign = (Sign)event.getClickedBlock().getState();
        if(sign.getLine(0).equalsIgnoreCase("[RankUp]")){
         
          String packageName = sign.getLine(2);
          if(packageName.equals("")){packageName = "default";}
         
          if(config.getAllPackageNames().contains(packageName) && config.getBoolean(packageName + ".rankup_sign_enabled")){
           
            String startingGroup = config.getString(packageName + ".startingGroup");
            String endingGroup = config.getString(packageName + ".endingGroup");
            Player player = event.getPlayer();
           
            if( pm.isValidGroup(startingGroup, player) && pm.isValidGroup(endingGroup, player) ){
              if( pm.isValidPlayer(player.getName(), event.getPlayer()) && pm.getGroupName(player.getName(), player).contains(startingGroup)
                  && !(pm.getGroupName(player.getName(), player).contains(endingGroup))){
               
                pm.removeGroup(player.getName(), player, startingGroup);
                pm.addGroup(player.getName(), player, endingGroup);
               
                Utility.messagePlayer(player, "Your rank has successfully been changed to " + endingGroup + ".");
              }else
                Utility.messagePlayer(player, "You are not in the correct Rank to use this sign.");
            }else{
              Utility.messagePlayer(player, "There is an issue with config.yml. Ask those who can, to check it.");
            }
          }else
            Utility.messagePlayer(event.getPlayer(), "Signs are not enabled for this package.");
        }
      }
    }
  }
 
  class SignPlace extends BlockListener{
   
    public void onSignChange(SignChangeEvent event){
      if(!event.isCancelled() && event.getLine(0).equalsIgnoreCase("[RankUp]")){
        if(!pm.hasPermission(event.getPlayer(), "rankup.signplace")){
          event.setCancelled(true);
          Utility.messagePlayer(event.getPlayer(), "You do not have permission to place [RankUp] signs.");
        }
      }
    }
  }
 
  private ConfigManager config;
  private PermissionsManager pm;
}
TOP

Related Classes of me.toalec.RankUp.SignTrigger

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.