Error while using String.replace("{cost}");

Discussion in 'Plugin Development' started by Kostronor, Aug 29, 2011.

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

    Kostronor

    Hey guy's
    I got a problem while replacing the String "{cost}" in another String:
    the code at line 144 is: msg.replace("{cost}",[...]);
    here is the error:
    Code:
    2011-08-28 17:47:05 [SEVERE] Could not pass event PLAYER_COMMAND_PREPROCESS to Command iConomy
    java.util.regex.PatternSyntaxException: Illegal repetition
    {cost}
            at java.util.regex.Pattern.error(Unknown Source)
            at java.util.regex.Pattern.closure(Unknown Source)
            at java.util.regex.Pattern.sequence(Unknown Source)
            at java.util.regex.Pattern.expr(Unknown Source)
            at java.util.regex.Pattern.compile(Unknown Source)
            at java.util.regex.Pattern.<init>(Unknown Source)
            at java.util.regex.Pattern.compile(Unknown Source)
            at java.lang.String.replaceAll(Unknown Source)
            at com.ryanmichela.cmdiconomy.CIListener.chargePlayerForCommand(CIListener.java:113)
            at com.ryanmichela.cmdiconomy.CIListener.onPlayerCommandPreprocess(CIListener.java:46)
            at org.bukkit.plugin.java.JavaPluginLoader$5.execute(JavaPluginLoader.java:272)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:338)
            at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:730)
            at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:701)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:694)
            at net.minecraft.server.Packet3Chat.a(Packet3Chat.java:33)
            at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:89)
            at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
            at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:454)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:363)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    
    Because this is not related to my code, i don't know whats wrong.
    thanks for help!
    edit: it also fails with "//{cost//}"
     
  2. Offline

    bassfader

    Try it like this: "\\{cost\\}"
     
  3. Offline

    Kostronor

    sorry, i used the wrong ones, this is the code:
    Code:java
    1. msg = msg.replaceAll("\\{cost\\}", iConomy.format(cost));

    Code:
    [SEVERE] Could not pass event PLAYER_COMMAND_PREPROCESS to Command iConomy
     java.lang.StringIndexOutOfBoundsException: String index out of range: 7
     at java.lang.String.charAt(Unknown Source)
     at java.util.regex.Matcher.appendReplacement(Unknown Source)
     at java.util.regex.Matcher.replaceAll(Unknown Source)
     at java.lang.String.replaceAll(Unknown Source)
     at com.ryanmichela.cmdiconomy.CIListener.chargePlayerForCommand(CIListener.java:114)
     at com.ryanmichela.cmdiconomy.CIListener.onPlayerCommandPreprocess(CIListener.java:46)
     at org.bukkit.plugin.java.JavaPluginLoader$5.execute(JavaPluginLoader.java:272)
     at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
     at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:338)
     at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:730)
     at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:701)
     at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:694)
     at net.minecraft.server.Packet3Chat.a(Packet3Chat.java:33)
     at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
     at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:89)
     at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java:436)
     at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
     at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:454)
     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:363)
     at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    
     
  4. Offline

    bassfader

    Well this is a different exception, which is thrown by iConomys format function. What exactly do you pass to it (e.g. what does the variable "cost" contain, and which type is it?)
     
  5. Offline

    Baummann

    Try String.replace("%cost%", iConomy.format(cost)); You only need to use %cost% in the config file instead.
     
Thread Status:
Not open for further replies.

Share This Page