Solved No replacement happening

Discussion in 'Plugin Development' started by SlagHoedje, Nov 15, 2014.

Thread Status:
Not open for further replies.
  1. If i want to replace in a message like $reason with the reason, it wont work! i tried everything

    My code
    Show Spoiler

    Code:java
    1. package com.SlagHoedje.Shopper;
    2.  
    3. import net.milkbowl.vault.economy.Economy;
    4. import net.milkbowl.vault.economy.EconomyResponse;
    5.  
    6. import org.bukkit.Bukkit;
    7. import org.bukkit.ChatColor;
    8. import org.bukkit.Material;
    9. import org.bukkit.block.Sign;
    10. import org.bukkit.event.EventHandler;
    11. import org.bukkit.event.Listener;
    12. import org.bukkit.event.block.SignChangeEvent;
    13. import org.bukkit.event.player.PlayerInteractEvent;
    14. import org.bukkit.inventory.ItemStack;
    15. import org.bukkit.plugin.RegisteredServiceProvider;
    16. import org.bukkit.plugin.java.JavaPlugin;
    17.  
    18. public class Main extends JavaPlugin implements Listener {
    19. public static Economy econ = null;
    20.  
    21. public void onEnable() {
    22. if (!setupEconomy() ) {
    23. getLogger().severe(String.format("[%s] - Disabled due to no Vault dependency found!", getDescription().getName()));
    24. getServer().getPluginManager().disablePlugin(this);
    25. return;
    26. }
    27. Bukkit.getPluginManager().registerEvents(this, this);
    28. this.saveDefaultConfig();
    29. }
    30.  
    31. private boolean setupEconomy() {
    32. if (getServer().getPluginManager().getPlugin("Vault") == null) {
    33. return false;
    34. }
    35. RegisteredServiceProvider<Economy> rsp = getServer().getServicesManager().getRegistration(Economy.class);
    36. if (rsp == null) {
    37. return false;
    38. }
    39. econ = rsp.getProvider();
    40. return econ != null;
    41. }
    42.  
    43. @SuppressWarnings("unused")
    44. @EventHandler
    45. public void onSignChange(SignChangeEvent e) {
    46. if(e.getLine(0).equalsIgnoreCase(getConfig().getString("prefix"))) {
    47. if(!e.getPlayer().isOp()) {
    48. e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("messagePrefix") + " " + getConfig().getString("noOp")));
    49. e.getBlock().breakNaturally();
    50. return;
    51. }
    52. e.setLine(0, ChatColor.translateAlternateColorCodes('&', getConfig().getString("signMadePrefix")));
    53. String[] item = e.getLine(1).split(" ");
    54. String itemName = item[0];
    55. int itemCount = 0;
    56. try {
    57. itemCount = Integer.parseInt(item[1]);
    58. }catch(Exception ex) {
    59. e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("messagePrefix") + " " + getConfig().getString("noValidSign").replaceAll("$reason", "No valid count")));
    60. e.getBlock().breakNaturally();
    61. return;
    62. }
    63.  
    64. Material mat = Material.getMaterial(itemName.toUpperCase());
    65.  
    66. if(mat == null) {
    67. e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("messagePrefix") + " " + getConfig().getString("noValidSign").replaceAll("$reason", "No valid material")));
    68. e.getBlock().breakNaturally();
    69. return;
    70. }
    71.  
    72. if(e.getLine(3).isEmpty()) {
    73. e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("messagePrefix") + " " + getConfig().getString("noValidSign").replaceAll("$reason", "No price specified")));
    74. e.getBlock().breakNaturally();
    75. return;
    76. }
    77.  
    78. int price = 0;
    79.  
    80. try {
    81. price = Integer.parseInt(e.getLine(3).replaceAll("$", ""));
    82. }catch(Exception ex) {
    83. e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("messagePrefix") + " " + getConfig().getString("noValidSign").replaceAll("$reason", "No valid price")));
    84. e.getBlock().breakNaturally();
    85. return;
    86. }
    87.  
    88. e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("messagePrefix") + " " + getConfig().getString("successfullyCreated")));
    89. }
    90. }
    91.  
    92. @EventHandler
    93. public void onPlayerInteract(PlayerInteractEvent e) {
    94. if(e.getClickedBlock().getState() instanceof Sign) {
    95. Sign s = (Sign) e.getClickedBlock().getState();
    96. if(s.getLine(0).contains(ChatColor.translateAlternateColorCodes('&', getConfig().getString("signMadePrefix")))) {
    97. String[] item = s.getLine(1).split(" ");
    98. String itemName = item[0];
    99. int itemCount = 0;
    100. try {
    101. itemCount = Integer.parseInt(item[1]);
    102. }catch(Exception ex) {
    103. e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("messagePrefix") + " " + getConfig().getString("noValidSign").replaceAll("$reason", "No valid count")));
    104. e.getClickedBlock().breakNaturally();
    105. return;
    106. }
    107.  
    108. Material mat = Material.getMaterial(itemName.toUpperCase());
    109.  
    110. if(mat == null) {
    111. e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("messagePrefix") + " " + getConfig().getString("noValidSign").replaceAll("$reason", "No valid material")));
    112. e.getClickedBlock().breakNaturally();
    113. return;
    114. }
    115.  
    116. if(s.getLine(3).isEmpty()) {
    117. e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("messagePrefix") + " " + getConfig().getString("noValidSign").replaceAll("$reason", "No price specified")));
    118. e.getClickedBlock().breakNaturally();
    119. return;
    120. }
    121.  
    122. int price = 0;
    123.  
    124. try {
    125. price = Integer.parseInt(s.getLine(3).replaceAll("$", ""));
    126. }catch(Exception ex) {
    127. e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("messagePrefix") + " " + getConfig().getString("noValidSign").replaceAll("$reason", "No valid price")));
    128. e.getClickedBlock().breakNaturally();
    129. return;
    130. }
    131.  
    132. // if clicked //
    133. EconomyResponse r = econ.withdrawPlayer(e.getPlayer(), price);
    134. if(r.transactionSuccess()) {
    135. e.getPlayer().getInventory().addItem(new ItemStack(mat, itemCount));
    136. e.getPlayer().updateInventory();
    137. e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("messagePrefix") + " " + getConfig().getString("buyItem").replaceAll("$item", mat.toString())));
    138. }else{
    139. e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("messagePrefix") + " " + getConfig().getString("notEnoughMoney")));
    140. }
    141.  
    142. }
    143. }
    144. }
    145. }
    146.  



    My config:
    Show Spoiler

    Code:
    prefix: '[Shop]'
    signMadePrefix: '&a[Shop]'
    messagePrefix: '&a[Shop]'
     
    # Messages #
    noValidSign: '&cThat is not a valid sign! Reason: $reason'
    noOp: '&cYou do not have permission to create a shop!'
    successfullyCreated: '&bShop successfully created!'
    notEnoughMoney: '&cYou dont have enough money to buy that!'
    buyItem: '&bBought item:&4 $item'
     
  2. Offline

    teej107

    replaceAll is for regex. Use replace.
     
  3. Thanks, that worked......
     
Thread Status:
Not open for further replies.

Share This Page