java - Copying one string from one place to another on a sign -


how copy entered in line 1 of sign? should either open or closed want move line 3. lines start 0 , go 3. if entered open on second line show open on last line

package me.mcmatt.shops;  import java.util.arrays;  import org.bukkit.chatcolor; import org.bukkit.material; import org.bukkit.sound; import org.bukkit.block.block; import org.bukkit.block.sign; 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.block.signchangeevent; import org.bukkit.event.player.playerinteractevent;  public class signs implements listener {     @   eventhandler   public void onsignchange(signchangeevent e) {     if (e.getline(0).equalsignorecase("[shop]")) {       block attached = e.getblock().getrelative(0, -1, 0);       string name = e.getplayer().getdisplayname();       if (!(attached.gettype() == material.chest))         e.getplayer().sendmessage(chatcolor.red + "please place shop on chest!");       else {         if (!e.getplayer().haspermission("shops.create"))           e.getplayer().sendmessage(chatcolor.red + "you don't have permission create shop! (shops.create)");         else {           if (!arrays.aslist("open", "closed").contains(e.getline(1).tolowercase())) {             e.getplayer().sendmessage(chatcolor.red + "you must specify if shop open or closed on second line!");           } else {             sign o = (sign) e.getblock().getstate();             e.setline(0, "§9[shop]");             e.setline(1, "§4" + name + "'s");             e.setline(2, "§4shop");             e.setline(3, o.getline(1));             e.getplayer().sendmessage(chatcolor.green + "shop created!");             e.getplayer().playsound(e.getplayer().getlocation(), sound.level_up, 10, 10);           }         }       }     }   }    @   eventhandler   public void onplayerinteract(playerinteractevent e) {     if (e.getaction().equals(action.right_click_block)) {       player p = e.getplayer();       block b = e.getclickedblock();       material m = b.gettype();       if (!(m == material.sign_post)) {         return;       } else {         sign sign = (sign) e.getclickedblock().getstate();         if ((sign.getline(0).equalsignorecase("§9[shop]"))) {           p.sendmessage("i right clicked sign!");         }       }     }   } } 

just check lines being set, , set line 3 appropriate value:

//on signchangeevent 'event' event.setline(3, event.getline(1)); 

as you've done in question, check logic of rest of code make sure execute correctly.

personally wouldn't try set someone's input output directly, rather take have given me , use accordingly:

boolean closed = true; if ("open".equalsignorecase(event.getline(1)) {     closed = false; } string linethree = closed ? "closed" : "open"; 

Comments

Popular posts from this blog

angularjs - ADAL JS Angular- WebAPI add a new role claim to the token -

php - CakePHP HttpSockets send array of paramms -

node.js - Using Node without global install -