Thread: [PI] Simple yell system

Results 1 to 9 of 9
  1. #1 [PI] Simple yell system 
    Registered Member
    Join Date
    Aug 2014
    Posts
    101
    Thanks given
    8
    Thanks received
    1
    Rep Power
    0
    Okay, so today i will be showing how to add simple yell system.

    Go to PlayerAssistant.java, and under


    Code:
    		c.getPA().startTeleport(x, y, height, c.playerMagicBook == 1 ? "ancient" : "modern");
    	}
    Add

    Code:
    	public void sendYell(String message) {
    		for (int i = 0; i < PlayerHandler.players.length; i++) {
    			if (PlayerHandler.players[i] == null)
    				continue;
    			Client client = (Client) PlayerHandler.players[i];
                          if (c.playerRights == 0) {
    			client.sendClan(client.playerName, message, "Donator", client.playerRights);
                         } else if (c.playerRights == 1) {   
    			client.sendClan(client.playerName, message, "Moderator", client.playerRights);
                        } else if (c.playerRights == 2) {  
    			client.sendClan(client.playerName, message, "Admin", client.playerRights);
                        } else if (c.playerRights == 3) {  
    			client.sendClan(client.playerName, message, "Owner", client.playerRights);
    		}
    	}
    }
    Now go to Commands.java, and under
    Code:
    		if (c.playerRights >= 3) { // 3
    			ownerCommands(c, playerCommand);
                                   }
    Add

    Code:
    		if (playerCommand.startsWith("yell")) {
    			String m = playerCommand.substring(4).toLowerCase();
    			if (Connection.isMuted(c)) {
    				c.sendMessage("You cannot yell you are muted.");
                         } else if (c.donator == 0 && c.playerRights == 0 ) {   
    				c.sendMessage("You need to be Donator to yell.");
    			} else {
    				c.getPA().sendYell(Misc.optimizeText(m));
    			}
    		}
    You are done!


    If you have no Donator in your server, you can delete
    Code:
                         } else if (c.donator == 0 && c.playerRights == 0 ) {   
    				c.sendMessage("You need to be Donator to yell.");
    .

    Or
    Code:
                          if (c.playerRights == 0) {
    			client.sendClan(client.playerName, message, "Donator", client.playerRights);
    Reply With Quote  
     

  2. #2  
    Donator


    Join Date
    Mar 2013
    Age
    24
    Posts
    1,767
    Thanks given
    335
    Thanks received
    386
    Rep Power
    318
    Code:
    if (c.playerRights == 0) {
        client.sendClan(client.playerName, message, "Donator", client.playerRights);
    } else if (c.playerRights == 1) {
        client.sendClan(client.playerName, message, "Moderator", client.playerRights);
    } else if (c.playerRights == 2) {
        client.sendClan(client.playerName, message, "Admin", client.playerRights);
    } else if (c.playerRights == 3) {
        client.sendClan(client.playerName, message, "Owner", client.playerRights);
    }
    can be switched to this

    Code:
    switch (c.playerRights) {
        case 0:
            client.sendClan(client.playerName, message, "Donator", client.playerRights);
            break;
        case 1:
            client.sendClan(client.playerName, message, "Moderator", client.playerRights);
            break;
        case 2:
            client.sendClan(client.playerName, message, "Admin", client.playerRights);
            break;
        case 3:
            client.sendClan(client.playerName, message, "Owner", client.playerRights);
            break;
    }
    so you don't perform redundant variable fetches.
    Reply With Quote  
     

  3. Thankful user:


  4. #3  
    Registered Member
    Join Date
    Aug 2014
    Posts
    101
    Thanks given
    8
    Thanks received
    1
    Rep Power
    0
    Quote Originally Posted by Paramvir View Post
    Code:
    if (c.playerRights == 0) {
        client.sendClan(client.playerName, message, "Donator", client.playerRights);
    } else if (c.playerRights == 1) {
        client.sendClan(client.playerName, message, "Moderator", client.playerRights);
    } else if (c.playerRights == 2) {
        client.sendClan(client.playerName, message, "Admin", client.playerRights);
    } else if (c.playerRights == 3) {
        client.sendClan(client.playerName, message, "Owner", client.playerRights);
    }
    can be switched to this

    Code:
    switch (c.playerRights) {
        case 0:
            client.sendClan(client.playerName, message, "Donator", client.playerRights);
            break;
        case 1:
            client.sendClan(client.playerName, message, "Moderator", client.playerRights);
            break;
        case 2:
            client.sendClan(client.playerName, message, "Admin", client.playerRights);
            break;
        case 3:
            client.sendClan(client.playerName, message, "Owner", client.playerRights);
            break;
    }
    so you don't perform redundant variable fetches.
    It gaved me 100 errors. K
    Reply With Quote  
     

  5. #4  
    Aspiring Physicist


    Join Date
    Feb 2014
    Age
    23
    Posts
    500
    Thanks given
    378
    Thanks received
    359
    Rep Power
    5000
    Quote Originally Posted by Paramvir View Post
    Code:
    if (c.playerRights == 0) {
        client.sendClan(client.playerName, message, "Donator", client.playerRights);
    } else if (c.playerRights == 1) {
        client.sendClan(client.playerName, message, "Moderator", client.playerRights);
    } else if (c.playerRights == 2) {
        client.sendClan(client.playerName, message, "Admin", client.playerRights);
    } else if (c.playerRights == 3) {
        client.sendClan(client.playerName, message, "Owner", client.playerRights);
    }
    can be switched to this

    Code:
    switch (c.playerRights) {
        case 0:
            client.sendClan(client.playerName, message, "Donator", client.playerRights);
            break;
        case 1:
            client.sendClan(client.playerName, message, "Moderator", client.playerRights);
            break;
        case 2:
            client.sendClan(client.playerName, message, "Admin", client.playerRights);
            break;
        case 3:
            client.sendClan(client.playerName, message, "Owner", client.playerRights);
            break;
    }
    so you don't perform redundant variable fetches.
    Or maybe

    Code:
    String[] titles = {"Donator", "Moderator", "Administrator", "Owner"};
    
    public void sendYell(String message) { // A method is not needed just do it in the command
            Arrays.stream((Client)PlayerHandler.players).filter(Objects::nonNull).forEach(c -> 
                    c.sendClan(c.playerName, message, titles[c.playerRights], c.playerRights));
    }
    Also the send clan method shouldn't be used for yell. The conventions are bad tbh.
    R.I.P.
    Alex "Impulser" Camilleri
    1993-2015
    [Aged : 21]
    Reply With Quote  
     

  6. Thankful users:


  7. #5  
    Donator
    abd1's Avatar
    Join Date
    Nov 2011
    Posts
    707
    Thanks given
    150
    Thanks received
    67
    Rep Power
    38
    I'm not sure that is will help anyone because every pi has yell system.
    I't might help someone maybe, thanks anyway
    Reply With Quote  
     

  8. #6  
    Donator


    Join Date
    Mar 2013
    Age
    24
    Posts
    1,767
    Thanks given
    335
    Thanks received
    386
    Rep Power
    318
    Quote Originally Posted by Cartilage View Post
    Or maybe

    Code:
    String[] titles = {"Donator", "Moderator", "Administrator", "Owner"};
    
    public void sendYell(String message) { // A method is not needed just do it in the command
            Arrays.stream((Client)PlayerHandler.players).filter(Objects::nonNull).forEach(c -> 
                    c.sendClan(c.playerName, message, titles[c.playerRights], c.playerRights));
    }
    Also the send clan method shouldn't be used for yell. The conventions are bad tbh.
    Even better.
    Reply With Quote  
     

  9. #7  
    Registered Member SpinninRecords's Avatar
    Join Date
    Aug 2013
    Age
    26
    Posts
    329
    Thanks given
    60
    Thanks received
    25
    Rep Power
    32
    Is this better than the ::yell command? I have mine going through the command file alone.
    Reply With Quote  
     

  10. #8  
    Registered Member

    Join Date
    Dec 2012
    Posts
    2,999
    Thanks given
    894
    Thanks received
    921
    Rep Power
    2555
    Quote Originally Posted by Cartilage View Post
    Or maybe

    Code:
    String[] titles = {"Donator", "Moderator", "Administrator", "Owner"};
    
    public void sendYell(String message) { // A method is not needed just do it in the command
            Arrays.stream((Client)PlayerHandler.players).filter(Objects::nonNull).forEach(c -> 
                    c.sendClan(c.playerName, message, titles[c.playerRights], c.playerRights));
    }
    Also the send clan method shouldn't be used for yell. The conventions are bad tbh.
    Why would there be null elements in PlayerHandler#players, and dont do rights as ints plz
    Attached image
    Reply With Quote  
     

  11. #9  
    Aspiring Physicist


    Join Date
    Feb 2014
    Age
    23
    Posts
    500
    Thanks given
    378
    Thanks received
    359
    Rep Power
    5000
    Quote Originally Posted by Kaleem View Post
    Why would there be null elements in PlayerHandler#players, and dont do rights as ints plz
    People make me think that when a player logs out, his player element is set to null in the array (I really don't know) and PI uses rights as ints, where an Enum should rather be used for it. I only showed how he can improve his code with the pre-existing material.
    I'm not even on my computer these days so I can't even check the PI code.
    And if u have any tips then pls suggest.
    R.I.P.
    Alex "Impulser" Camilleri
    1993-2015
    [Aged : 21]
    Reply With Quote  
     


Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


User Tag List

Similar Threads

  1. [PI] Simple Yell with Crowns
    By Roboyto in forum Snippets
    Replies: 30
    Last Post: 01-18-2014, 11:14 PM
  2. PI Simple Point System.
    By Griffon in forum Snippets
    Replies: 9
    Last Post: 02-25-2013, 04:36 PM
  3. [PI] different yell system?
    By always in forum Help
    Replies: 7
    Last Post: 12-09-2012, 03:11 PM
  4. [PI] Simple KillStreak System With Rewards
    By .Optimum in forum Snippets
    Replies: 20
    Last Post: 08-12-2012, 09:21 PM
  5. [PI] Simple Email System
    By Freezia in forum Snippets
    Replies: 46
    Last Post: 02-19-2012, 06:11 PM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •