Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

(Spigot 1.8) "stained_hardened_clay:14" != " stained_hardened_clay:14"

I am making a a mini game plugin, i need to replace every blocks that not a type, so i maked this :

    public static void replaceBlock(String x, String y, String z, String x2, String y2, String z2, String block, String secondBlockType, String mapDict) {
    String[] BlocksToReplace = mapDict.split("\\*");
    System.out.println(ConsoleColorUtils.PURPLE + "[" + Main.pName +"]" + ConsoleColorUtils.RESET + " " + x + " " + y + " " + z + " " + x2 + " " + y2 + " " + z2);
    ConsoleCommandSender console = Bukkit.getServer().getConsoleSender();
    String pos1 = "/pos1 " + x + "," + y + "," + z;
    String pos2 = "/pos2 " + x2 + "," + y2 + "," + z2;
    Bukkit.dispatchCommand(console, pos1);
    Bukkit.dispatchCommand(console, pos2);
    tasak =  Bukkit.getServer().getScheduler().runTaskTimer(Main.plugin, new Runnable() {
        private int count = 2;
        @Override
        public void run() {
            if(count == 0) {
                for(String b : BlocksToReplace) {
                    if(b == block) {
                        System.out.println(ConsoleColorUtils.PURPLE + "[" + Main.pName +"]" + ConsoleColorUtils.RESET + " fdbshjfbdjshq ");
                    }else {
                        String fillcmd = "/replace " + b + " " + secondBlockType;
                        System.out.println(ConsoleColorUtils.PURPLE + "[" + Main.pName +"]" + ConsoleColorUtils.RESET + " " + fillcmd + "         " + block);
                        Bukkit.dispatchCommand(console, fillcmd);
                    }
                }
                tasak.cancel();
            } else {
                count--;
            }
        }
    }, 20, 20);
}

Map dict is => gold_block*wool:15*stained_hardened_clay:4*wool:4*stained_hardened_clay:3*stained_hardened_clay:11*wool:9*wool:11*stained_hardened_clay:9*wool:10*wool:2*stained_hardened_clay:10*stained_hardened_clay:2*stained_hardened_clay:6*diamond_block*prismarine:2*prismarine:1*melon_block*wool:5*slime*emerald_block*quartz_block*stained_hardened_clay*sandstone:2*nether_brick*wool:14*wool:13

block var is : stained_hardened_clay:14

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

When i call the function, it replace every blocks not all exept the block i want

Any way to fix it ?

>Solution :

Dont use "==" for strings. use b.equals(block). Because "==" compares the hash values of the String objects. And the equals Method compares the string itself.

More Info: https://www.java67.com/2012/11/difference-between-operator-and-equals-method-in.html

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading