Plugin Help Custom Inventory Error

Discussion in 'Plugin Help/Development/Requests' started by JollyPenguin, Jul 13, 2015.

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

    JollyPenguin

    Hai Guys, I keep getting a error when I try and access my custom inventory would you mind helping me out a little?

    When you right click on a beacon it will open a spawner shop but i keep getting an execption

    Code:
    [21:23:27 ERROR]: Could not pass event PlayerInteractEvent to AuroraSpawnerBuyer v1.8
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[craftbukkit.jar:git-Bukkit-2359f6f]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit.jar:git-Bukkit-2359f6f]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:501) [craftbukkit.jar:git-Bukkit-2359f6f]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:486) [craftbukkit.jar:git-Bukkit-2359f6f]
        at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:210) [craftbukkit.jar:git-Bukkit-2359f6f]
        at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:177) [craftbukkit.jar:git-Bukkit-2359f6f]
        at net.minecraft.server.v1_8_R3.PlayerInteractManager.a(PlayerInteractManager.java:107) [craftbukkit.jar:git-Bukkit-2359f6f]
        at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:585) [craftbukkit.jar:git-Bukkit-2359f6f]
        at net.minecraft.server.v1_8_R3.PacketPlayInBlockDig.a(SourceFile:40) [craftbukkit.jar:git-Bukkit-2359f6f]
        at net.minecraft.server.v1_8_R3.PacketPlayInBlockDig.a(SourceFile:10) [craftbukkit.jar:git-Bukkit-2359f6f]
        at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [craftbukkit.jar:git-Bukkit-2359f6f]
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_45]
        at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_45]
        at net.minecraft.server.v1_8_R3.SystemUtils.a(SystemUtils.java:19) [craftbukkit.jar:git-Bukkit-2359f6f]
        at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:672) [craftbukkit.jar:git-Bukkit-2359f6f]
        at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:335) [craftbukkit.jar:git-Bukkit-2359f6f]
        at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:628) [craftbukkit.jar:git-Bukkit-2359f6f]
        at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:536) [craftbukkit.jar:git-Bukkit-2359f6f]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_45]
    Caused by: java.lang.NullPointerException
        at org.bukkit.craftbukkit.v1_8_R3.entity.CraftHumanEntity.openInventory(CraftHumanEntity.java:176) ~[craftbukkit.jar:git-Bukkit-2359f6f]
        at bukkit.JollyPenguin.SpawnerBuyer.Core.onPlayerInteract(Core.java:313) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_45]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_45]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_45]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_45]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:300) ~[craftbukkit.jar:git-Bukkit-2359f6f]
        ... 18 more

    Code:
    package bukkit.JollyPenguin.SpawnerBuyer;
    
    import java.util.Arrays;
    
    import net.milkbowl.vault.economy.Economy;
    import net.milkbowl.vault.economy.EconomyResponse;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.DyeColor;
    import org.bukkit.Material;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.Action;
    import org.bukkit.event.inventory.InventoryClickEvent;
    import org.bukkit.event.inventory.InventoryType;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.bukkit.inventory.Inventory;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    import org.bukkit.material.Wool;
    import org.bukkit.plugin.Plugin;
    import org.bukkit.plugin.RegisteredServiceProvider;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class Core extends JavaPlugin implements Listener {
        public static Economy econ = null;
        private Inventory inv;
    
        public void menu(Plugin p) {
            inv = Bukkit.getServer().createInventory(null, InventoryType.CHEST, "Spawner Shop");
            inv.setItem(1, createItem(DyeColor.BROWN, ChatColor.GOLD + "Cow Spawner"));
            inv.setItem(2, createItem(DyeColor.PINK, ChatColor.GOLD + "Pig Spawner"));
            inv.setItem(3, createItem(DyeColor.SILVER, ChatColor.GOLD + "Sheep Spawner"));
            inv.setItem(4, createItem(DyeColor.CYAN, ChatColor.GOLD+ "Enderman Spawner"));
            inv.setItem(5, createItem(DyeColor.GREEN, ChatColor.GOLD + "Zombie Spawner"));
            inv.setItem(6, createItem(DyeColor.RED, ChatColor.GOLD + "Pigman Spawner"));
            inv.setItem(7, createItem(DyeColor.LIME, ChatColor.GOLD + "Creeper Spawner"));
            inv.setItem(8, createItem(DyeColor.PURPLE, ChatColor.GOLD + "Witch Spawner"));
            inv.setItem(9, createItem(DyeColor.WHITE, ChatColor.GOLD + "Chicken Spawner"));
            inv.setItem(11, createItem(DyeColor.GRAY, ChatColor.GOLD + "Skeleton Spawner"));
            inv.setItem(14, createItem(DyeColor.BLACK, ChatColor.GOLD + "Spider Spawner"));
            inv.setItem(17, createItem(DyeColor.BLACK, ChatColor.GOLD  + "Iron Golem Spawner"));
        }
        private ItemStack createItem(DyeColor dc, String name) {
            ItemStack i = new Wool(dc).toItemStack(1);
            ItemMeta im = i.getItemMeta();
            im.setDisplayName(name);
            if (name.equalsIgnoreCase("Cow Spawner")) {
                im.setLore(Arrays.asList("Costs:", " $15,000"));
            } else if (name.equalsIgnoreCase("Sheep Spawner")) {
                im.setLore(Arrays.asList("Costs:", " $7,000"));
            } else if (name.equalsIgnoreCase("Iron Golem Spawner")) {
                im.setLore(Arrays.asList("Costs:", " $100,000,000"));
            } else if (name.equalsIgnoreCase("Enderman Spawner")) {
                im.setLore(Arrays.asList("Costs:", " $300,000,000"));
            } else if (name.equalsIgnoreCase("Witch Spawner")) {
                im.setLore(Arrays.asList("Costs:", " $70,000,000"));
            } else if (name.equalsIgnoreCase("Creeper Spawner")) {
                im.setLore(Arrays.asList("Costs:", " $50,000,000"));
            } else if (name.equalsIgnoreCase("Chicken Spawner")) {
                im.setLore(Arrays.asList("Costs:", " $8,000"));
            } else if (name.equalsIgnoreCase("Pigman Spawner")) {
                im.setLore(Arrays.asList("Costs:", " $600,000"));
            } else if (name.equalsIgnoreCase("Zombie Spawner")) {
                im.setLore(Arrays.asList("Costs:", " $30,000"));
            } else if (name.equalsIgnoreCase("Skeleton Spawner")) {
                im.setLore(Arrays.asList("Costs:", " $35,000"));
            } else if (name.equalsIgnoreCase("Spider Spawner")) {
                im.setLore(Arrays.asList("Costs:", " $20,000"));
            } else if (name.equalsIgnoreCase("Pig Spawner")) {
                im.setLore(Arrays.asList("Costs:", " $9,000"));
            }
            i.setItemMeta(im);
            return i;
        }
    
        @SuppressWarnings("deprecation")
        @EventHandler
        public void onInventoryClick(InventoryClickEvent e) {
            if (e.getCurrentItem() == null) {
                e.getWhoClicked().closeInventory();
                return;
            }
            if (!e.getInventory().getName().equalsIgnoreCase(inv.getName()))
                return;
            if (e.getCurrentItem().getItemMeta() == null)
                return;
            if (e.getCurrentItem().getItemMeta().getDisplayName()
                    .contains("Cow Spawner")) {
                e.setCancelled(true);
                EconomyResponse r = econ.withdrawPlayer(
                        e.getWhoClicked().getName(), 15000);
                if (r.transactionSuccess()) {
                    e.getWhoClicked()
                            .getInventory()
                            .addItem(
                                    new ItemStack(Material.MOB_SPAWNER, 1,
                                            (short) 92));
                    e.getWhoClicked().sendMessage(
                            ChatColor.GREEN
                                    + "$15000 has been taken from your account.");
                } else if (!(r.transactionSuccess())) {
                    e.getWhoClicked().sendMessage(
                            ChatColor.RED + "Error: You can not afford this.");
                }
                e.getWhoClicked().closeInventory();
            }
            if (e.getCurrentItem().getItemMeta().getDisplayName()
                    .contains("Pig Spawner")) {
                e.setCancelled(true);
                EconomyResponse r = econ.withdrawPlayer(
                        e.getWhoClicked().getName(), 9000);
                if (r.transactionSuccess()) {
                    e.getWhoClicked().sendMessage(
                            ChatColor.GREEN
                                    + "$9,000 has been taken from your account.");
                } else if (!(r.transactionSuccess())) {
                    e.getWhoClicked().sendMessage(
                            ChatColor.RED + "Error: You can not afford this.");
                }
                e.getWhoClicked().closeInventory();
            }
            if (e.getCurrentItem().getItemMeta().getDisplayName()
                    .contains("Iron Golem Spawner")) {
                e.setCancelled(true);
                EconomyResponse r = econ.withdrawPlayer(
                        e.getWhoClicked().getName(), 100000000);
                if (r.transactionSuccess()) {
                    e.getWhoClicked()
                            .sendMessage(
                                    ChatColor.GREEN
                                            + "$100,000,000 has been taken from your account.");
                } else if (!(r.transactionSuccess())) {
                    e.getWhoClicked().sendMessage(
                            ChatColor.RED + "Error: You can not afford this.");
                }
                e.getWhoClicked().closeInventory();
            }
            if (e.getCurrentItem().getItemMeta().getDisplayName()
                    .contains("Spider Spawner")) {
                e.setCancelled(true);
                EconomyResponse r = econ.withdrawPlayer(
                        e.getWhoClicked().getName(), 20000);
                if (r.transactionSuccess()) {
                    e.getWhoClicked().sendMessage(
                            ChatColor.GREEN
                                    + "$20,000 has been taken from your account.");
                } else if (!(r.transactionSuccess())) {
                    e.getWhoClicked().sendMessage(
                            ChatColor.RED + "Error: You can not afford this.");
                }
                e.getWhoClicked().closeInventory();
            }
            if (e.getCurrentItem().getItemMeta().getDisplayName()
                    .contains("Pigman Spawner")) {
                e.setCancelled(true);
                EconomyResponse r = econ.withdrawPlayer(
                        e.getWhoClicked().getName(), 600000);
                if (r.transactionSuccess()) {
                    e.getWhoClicked().sendMessage(
                            ChatColor.GREEN
                                    + "$600,000 has been taken from your account.");
                } else if (!(r.transactionSuccess())) {
                    e.getWhoClicked().sendMessage(
                            ChatColor.RED + "Error: You can not afford this.");
                }
                e.getWhoClicked().closeInventory();
            }
            if (e.getCurrentItem().getItemMeta().getDisplayName()
                    .contains("Skeleton Spawner")) {
                e.setCancelled(true);
                EconomyResponse r = econ.withdrawPlayer(
                        e.getWhoClicked().getName(), 35000);
                if (r.transactionSuccess()) {
                    e.getWhoClicked().sendMessage(
                            ChatColor.GREEN
                                    + "$35,000 has been taken from your account.");
                } else if (!(r.transactionSuccess())) {
                    e.getWhoClicked().sendMessage(
                            ChatColor.RED + "Error: You can not afford this.");
                }
                e.getWhoClicked().closeInventory();
            }
            if (e.getCurrentItem().getItemMeta().getDisplayName()
                    .contains("Zombie Spawner")) {
                e.setCancelled(true);
                EconomyResponse r = econ.withdrawPlayer(
                        e.getWhoClicked().getName(), 30000);
                if (r.transactionSuccess()) {
                    e.getWhoClicked().sendMessage(
                            ChatColor.GREEN
                                    + "$30,000 has been taken from your account.");
                } else if (!(r.transactionSuccess())) {
                    e.getWhoClicked().sendMessage(
                            ChatColor.RED + "Error: You can not afford this.");
                }
                e.getWhoClicked().closeInventory();
            }
            if (e.getCurrentItem().getItemMeta().getDisplayName()
                    .contains("Creeper Spawner")) {
                e.setCancelled(true);
                EconomyResponse r = econ.withdrawPlayer(
                        e.getWhoClicked().getName(), 50000000);
                if (r.transactionSuccess()) {
                    e.getWhoClicked()
                            .sendMessage(
                                    ChatColor.GREEN
                                            + "$50,000,000 has been taken from your account.");
                } else if (!(r.transactionSuccess())) {
                    e.getWhoClicked().sendMessage(
                            ChatColor.RED + "Error: You can not afford this.");
                }
                e.getWhoClicked().closeInventory();
            }
            if (e.getCurrentItem().getItemMeta().getDisplayName()
                    .contains("Witch Spawner")) {
                e.setCancelled(true);
                EconomyResponse r = econ.withdrawPlayer(
                        e.getWhoClicked().getName(), 70000000);
                if (r.transactionSuccess()) {
                    e.getWhoClicked()
                            .sendMessage(
                                    ChatColor.GREEN
                                            + "$70,000,000 has been taken from your account.");
                } else if (!(r.transactionSuccess())) {
                    e.getWhoClicked().sendMessage(
                            ChatColor.RED + "Error: You can not afford this.");
                }
                e.getWhoClicked().closeInventory();
            }
            if (e.getCurrentItem().getItemMeta().getDisplayName()
                    .contains("Chicken Spawner")) {
                e.setCancelled(true);
                EconomyResponse r = econ.withdrawPlayer(
                        e.getWhoClicked().getName(), 8000);
                if (r.transactionSuccess()) {
                    e.getWhoClicked().sendMessage(
                            ChatColor.GREEN
                                    + "$8,000 has been taken from your account.");
                } else if (!(r.transactionSuccess())) {
                    e.getWhoClicked().sendMessage(
                            ChatColor.RED + "Error: You can not afford this.");
                }
                e.getWhoClicked().closeInventory();
            }
            if (e.getCurrentItem().getItemMeta().getDisplayName()
                    .contains("Sheep Spawner")) {
                e.setCancelled(true);
                EconomyResponse r = econ.withdrawPlayer(
                        e.getWhoClicked().getName(), 7000);
                if (r.transactionSuccess()) {
                    e.getWhoClicked().sendMessage(
                            ChatColor.GREEN
                                    + "$7,000 has been taken from your account.");
                } else if (!(r.transactionSuccess())) {
                    e.getWhoClicked().sendMessage(
                            ChatColor.RED + "Error: You can not afford this.");
                }
                e.getWhoClicked().closeInventory();
            }
            if (e.getCurrentItem().getItemMeta().getDisplayName()
                    .contains("Enderman Spawner")) {
                e.setCancelled(true);
                EconomyResponse r = econ.withdrawPlayer(
                        e.getWhoClicked().getName(), 300000000);
                if (r.transactionSuccess()) {
                    e.getWhoClicked()
                            .sendMessage(
                                    ChatColor.GREEN
                                            + "$300,000,000 has been taken from your account.");
                } else if (!(r.transactionSuccess())) {
                    e.getWhoClicked().sendMessage(
                            ChatColor.RED + "Error: You can not afford this.");
                }
                e.getWhoClicked().closeInventory();
            }
        }
    
        public void onEnable() {
            Bukkit.getPluginManager().registerEvents(this, this);
            if (!setupEconomy()) {
                getLogger()
                        .severe(String
                                .format("[%s] - Disabled due to no Vault dependency found!",
                                        getDescription().getName()));
                getServer().getPluginManager().disablePlugin(this);
                return;
            }
        }
    
        private boolean setupEconomy() {
            if (getServer().getPluginManager().getPlugin("Vault") == null) {
                return false;
            }
            RegisteredServiceProvider<Economy> rsp = getServer()
                    .getServicesManager().getRegistration(Economy.class);
            if (rsp == null) {
                return false;
            }
            econ = rsp.getProvider();
            return econ != null;
        }
    
        @EventHandler
        public void onPlayerInteract(PlayerInteractEvent e) {
            if (!(e.getAction() == Action.LEFT_CLICK_BLOCK))
                return;
            if (!(e.getClickedBlock().getType().equals(Material.BEACON)))
                return;
            Player p = (Player) e.getPlayer();
            p.openInventory(inv);
            return;
        }
    }
    If you do decide to help me I thank you oh so much in advance :D
    Thanks
    ~Jose
     
  2. Offline

    benjfb1

    When you creat your inv at the top of your class, so want to make it public static intentory inv;

    From the error it seems line 313 (p.openInventory()) is creating a null pointer error so the inv is null? If it doesn't fix tag me. :)
     
    JollyPenguin likes this.
  3. Offline

    JollyPenguin

    @benjfb1

    I myself don't know how to read error codes to well but i dont know if this has changed
    since i have made it public static

    Code:
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[craftbukkit.jar:git-Bukkit-2359f6f]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit.jar:git-Bukkit-2359f6f]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:501) [craftbukkit.jar:git-Bukkit-2359f6f]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:486) [craftbukkit.jar:git-Bukkit-2359f6f]
        at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:210) [craftbukkit.jar:git-Bukkit-2359f6f]
        at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:177) [craftbukkit.jar:git-Bukkit-2359f6f]
        at net.minecraft.server.v1_8_R3.PlayerInteractManager.a(PlayerInteractManager.java:107) [craftbukkit.jar:git-Bukkit-2359f6f]
        at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:585) [craftbukkit.jar:git-Bukkit-2359f6f]
        at net.minecraft.server.v1_8_R3.PacketPlayInBlockDig.a(SourceFile:40) [craftbukkit.jar:git-Bukkit-2359f6f]
        at net.minecraft.server.v1_8_R3.PacketPlayInBlockDig.a(SourceFile:10) [craftbukkit.jar:git-Bukkit-2359f6f]
        at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [craftbukkit.jar:git-Bukkit-2359f6f]
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_45]
        at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_45]
        at net.minecraft.server.v1_8_R3.SystemUtils.a(SystemUtils.java:19) [craftbukkit.jar:git-Bukkit-2359f6f]
        at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:672) [craftbukkit.jar:git-Bukkit-2359f6f]
        at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:335) [craftbukkit.jar:git-Bukkit-2359f6f]
        at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:628) [craftbukkit.jar:git-Bukkit-2359f6f]
        at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:536) [craftbukkit.jar:git-Bukkit-2359f6f]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_45]
    Caused by: java.lang.NullPointerException
        at org.bukkit.craftbukkit.v1_8_R3.entity.CraftHumanEntity.openInventory(CraftHumanEntity.java:176) ~[craftbukkit.jar:git-Bukkit-2359f6f]
        at bukkit.JollyPenguin.SpawnerBuyer.Core.onPlayerInteract(Core.java:313) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_45]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_45]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_45]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_45]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:300) ~[craftbukkit.jar:git-Bukkit-2359f6f]
        ... 18 more
    The inv shouldnt be null since it is being occupied

    Code:
            inv = Bukkit.getServer().createInventory(null, InventoryType.CHEST, "Spawner Shop");
            inv.setItem(1, createItem(DyeColor.BROWN, ChatColor.GOLD + "Cow Spawner"));
            inv.setItem(2, createItem(DyeColor.PINK, ChatColor.GOLD + "Pig Spawner"));
            inv.setItem(3, createItem(DyeColor.SILVER, ChatColor.GOLD + "Sheep Spawner"));
            inv.setItem(4, createItem(DyeColor.CYAN, ChatColor.GOLD+ "Enderman Spawner"));
            inv.setItem(5, createItem(DyeColor.GREEN, ChatColor.GOLD + "Zombie Spawner"));
            inv.setItem(6, createItem(DyeColor.RED, ChatColor.GOLD + "Pigman Spawner"));
            inv.setItem(7, createItem(DyeColor.LIME, ChatColor.GOLD + "Creeper Spawner"));
            inv.setItem(8, createItem(DyeColor.PURPLE, ChatColor.GOLD + "Witch Spawner"));
            inv.setItem(9, createItem(DyeColor.WHITE, ChatColor.GOLD + "Chicken Spawner"));
            inv.setItem(11, createItem(DyeColor.GRAY, ChatColor.GOLD + "Skeleton Spawner"));
            inv.setItem(14, createItem(DyeColor.BLACK, ChatColor.GOLD + "Spider Spawner"));
            inv.setItem(17, createItem(DyeColor.BLACK, ChatColor.GOLD  + "Iron Golem Spawner"));
    Thanks
    ~Jose
     
    Last edited: Jul 13, 2015
  4. Offline

    benjfb1

    No, it's still the same error. Is this your main class, if not remove extends javaplugin and please show me your main class. Otherwise put the inv=bukkit.getServer().createInventory() in a onEnable()
     
  5. Offline

    JollyPenguin

    @benjfb1 OMG! I love you! You fixed! :D thank you oh so much

    Thanks,
    ~Jose
     
Thread Status:
Not open for further replies.

Share This Page