Solved Sign Coding > Help Making Buy Signs with vault

Discussion in 'Plugin Development' started by VinexAx789, Jun 20, 2015.

Thread Status:
Not open for further replies.
  1. Offline

    VinexAx789

    @xTrollxDudex

    Here you go xD a ton of them.

    Code:
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.net.URL;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Random;
    
    import me.libraryaddict.disguise.DisguiseAPI;
    import me.libraryaddict.disguise.disguisetypes.DisguiseType;
    import me.libraryaddict.disguise.disguisetypes.MobDisguise;
    import net.milkbowl.vault.economy.Economy;
    import net.milkbowl.vault.economy.EconomyResponse;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Color;
    import org.bukkit.FireworkEffect;
    import org.bukkit.FireworkEffect.Type;
    import org.bukkit.GameMode;
    import org.bukkit.Location;
    import org.bukkit.Material;
    import org.bukkit.Sound;
    import org.bukkit.World;
    import org.bukkit.WorldCreator;
    import org.bukkit.block.Block;
    import org.bukkit.block.BlockFace;
    import org.bukkit.block.Chest;
    import org.bukkit.block.Sign;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.configuration.file.FileConfiguration;
    import org.bukkit.enchantments.Enchantment;
    import org.bukkit.entity.Arrow;
    import org.bukkit.entity.Entity;
    import org.bukkit.entity.EntityType;
    import org.bukkit.entity.FallingBlock;
    import org.bukkit.entity.Firework;
    import org.bukkit.entity.LivingEntity;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.EventPriority;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.Action;
    import org.bukkit.event.block.BlockBreakEvent;
    import org.bukkit.event.block.BlockPlaceEvent;
    import org.bukkit.event.block.SignChangeEvent;
    import org.bukkit.event.entity.EntityChangeBlockEvent;
    import org.bukkit.event.entity.EntityDamageByEntityEvent;
    import org.bukkit.event.entity.EntityDamageEvent;
    import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
    import org.bukkit.event.entity.EntityShootBowEvent;
    import org.bukkit.event.entity.FoodLevelChangeEvent;
    import org.bukkit.event.entity.PlayerDeathEvent;
    import org.bukkit.event.entity.ProjectileLaunchEvent;
    import org.bukkit.event.hanging.HangingBreakByEntityEvent;
    import org.bukkit.event.inventory.InventoryClickEvent;
    import org.bukkit.event.inventory.InventoryCreativeEvent;
    import org.bukkit.event.inventory.InventoryDragEvent;
    import org.bukkit.event.inventory.InventoryMoveItemEvent;
    import org.bukkit.event.inventory.InventoryOpenEvent;
    import org.bukkit.event.inventory.InventoryType;
    import org.bukkit.event.player.AsyncPlayerChatEvent;
    import org.bukkit.event.player.PlayerCommandPreprocessEvent;
    import org.bukkit.event.player.PlayerDropItemEvent;
    import org.bukkit.event.player.PlayerInteractEntityEvent;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.bukkit.event.player.PlayerItemBreakEvent;
    import org.bukkit.event.player.PlayerItemHeldEvent;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.event.player.PlayerLoginEvent;
    import org.bukkit.event.player.PlayerLoginEvent.Result;
    import org.bukkit.event.player.PlayerMoveEvent;
    import org.bukkit.event.player.PlayerQuitEvent;
    import org.bukkit.event.player.PlayerToggleSneakEvent;
    import org.bukkit.inventory.Inventory;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.PlayerInventory;
    import org.bukkit.inventory.meta.FireworkMeta;
    import org.bukkit.inventory.meta.ItemMeta;
    import org.bukkit.inventory.meta.LeatherArmorMeta;
    import org.bukkit.plugin.RegisteredServiceProvider;
    import org.bukkit.plugin.java.JavaPlugin;
    import org.bukkit.potion.PotionEffect;
    import org.bukkit.potion.PotionEffectType;
    import org.bukkit.scheduler.BukkitRunnable;
    import org.bukkit.scoreboard.DisplaySlot;
    import org.bukkit.scoreboard.Objective;
    import org.bukkit.scoreboard.Score;
    import org.bukkit.scoreboard.Scoreboard;
    import org.bukkit.scoreboard.Team;
    import org.bukkit.util.BlockIterator;
    import org.bukkit.util.Vector;
    
    import com.gmail.filoghost.holograms.api.Hologram;
    import com.gmail.filoghost.holograms.api.HolographicDisplaysAPI;
     
  2. Offline

    xTrollxDudex

    Interesting. Correct import. I will have to go with @Boomer and say it is this that is causing the problem:
    Code:
    e.getClickedBlock().equals(Material.SIGN)
    Yes, remove it. It serves absolutely no purpose after 2 checks of your block state.
     
  3. Offline

    VinexAx789

  4. Offline

    Zombie_Striker

    @VinexAx789
    BTW, why are you getting the Item version of the sign, instead of the block versions? (Material.WALL_SIGN or Material.SIGN_POST)
     
  5. Offline

    VinexAx789

  6. Offline

    Zombie_Striker

    @VinexAx789
    So you added the both checks as Or statements? Can you show me updated code.
     
  7. Offline

    Boomer

    Well, it does serve a purpose - to completely break everything :) Its not like it doesnt' do anything - if it was coded correctly, yes, it wouldn't do anything extra :) But testing equivalency between a block object to a material object, it does a good job of shooting the code in the foot.

    But hopefully he purged that already long ago - plus, instead of responding to that fix, he decided to start from scratch by digging back into his old existing working code (which is a good idea in general, use working code to build similar working code instead of reinventing..) so its probabably all moot.
     
  8. Offline

    VinexAx789

    @Zombie_Striker

    Code:
    //This Part Works
         @EventHandler
         public void onSignChange(SignChangeEvent e){
           if (!e.getPlayer().hasPermission("RektSnD.signcreate")) {
             e.getPlayer().sendMessage(
               "§cYou do not have permissions to create this sign");
             return;
           }
           if ((e.getLine(0).equalsIgnoreCase("[Enderpearls]")) &&
             (e.getPlayer().hasPermission("RektSnD.signcreate")))
           {
               e.setLine(0, "§4§l[Buy]");
               e.setLine(1, "§9§lEnderpearls");
               e.setLine(2, "§a§lAmount: 6");
               e.setLine(3, "§c§lCoins: 2");
           }
         }
     
        
         //This part isn't doing crap.
        @EventHandler
         public void onPlayerBuySign(PlayerInteractEvent e){
            if (e.getAction() != Action.RIGHT_CLICK_BLOCK) {
                 return;
               }
               if ((e.getClickedBlock().getState() instanceof Sign))
               {
                 Sign s = (Sign) e.getClickedBlock().getState();
                 Player p = e.getPlayer();
                 PlayerInventory myInv = p.getInventory();
                 if((e.getClickedBlock().getState() instanceof Sign))
                if(ChatColor.stripColor(s.getLine(1)).equalsIgnoreCase("Enderpearls")){
                     EconomyResponse r = econ1.withdrawPlayer(
                             p.getName(), 2);
                   if(r.transactionSuccess()) {
                         p.sendMessage(ChatColor.GREEN
                                 + "§a§lHey! Thanks for buying §4§l[- 2 Coins§4§l] ");
                 myInv.addItem(new ItemStack[] { new ItemStack(Material.ENDER_PEARL, 6) });
                   p.playSound(p.getLocation(), Sound.LEVEL_UP, 1.0F, 1.0F);
                   p.updateInventory();
                 }
               }
             }
            }
     
  9. Offline

    Boomer

    I fold...
     
  10. Offline

    Zombie_Striker

    Here are some things that is wrong with your code:

    line 10
    (e.getPlayer().hasPermission("RektSnD.signcreate")))
    line 26
    if ((e.getClickedBlock().getState() instanceof Sign))
    You're not checking if what the player is actually clicking is a block, and not air.

    Are you registering your listener?
     
  11. Offline

    VinexAx789

    @Zombie_Striker Yes I'm registering.

    Thread > Solved

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 12, 2016
Thread Status:
Not open for further replies.

Share This Page