[Util] Make players flashing red! [NMS]

Discussion in 'Resources' started by bigteddy98, Mar 13, 2014.

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


    This resource is no longer available.
  2. Offline


    Seems pretty neat for one of my upcoming plugins :p
    bigteddy98 likes this.
  3. Offline


    Nice :D
  4. Offline


    I love the getMCClass() and getCraftClass() methods, good thinking! :D
    Wizehh, Skyost and bigteddy98 like this.
  5. Offline


    I applaud you for your recent contributions.
    KingFaris11 and bigteddy98 like this.
  6. Offline


    Fancy fact, there's a method called broadcastEntityEffect or so..
    Edit: forgot to mention.. you use the distance method on EVERY player in the world...
  7. Offline


    Thanks a lot man

    People might not always want to broadcast the effect, maybe they want to customize it and send the packets only to specific players. With that in my mind I don't really like broadcastEntityEffect, but thanks :).

    How do you mean? That's what should happend, right?
    //btw, I'm still finding out what's more lightweight: sending the packets to everyone in the world, or calling the distance method many times.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: Jun 7, 2016
  8. Offline


    the distance method = lag
    squareroot = lag

    if you need to check that a player is within a certain radius of a point use distanceSquared and then check if that is less than your radius squared
    Chinwe and Ultimate_n00b like this.
  9. Offline


    Thanks, will probably send the packet to everyone in the next update, do you think thats better?
  10. Offline


    no, just use the method i stated above

    Loc.distanceSquared(Player.getLocation()) < radius * radius
  11. Offline


    Thanks a lot man, haven't been working with these methods before, so thanks for helping me.
  12. Offline


    When you're comparing distance, make sure to check that the players are in the same world. If you don't, you'll get an exception that the distance between two worlds can't be measured. :)
    Otherwise, pretty cool. I love the methods you have for NMS and CraftBukkit. Clever job.
  13. Offline


    I am looping through all players in the same world, so that isn't necessary I think:
    1. for (Player pl : p.getWorld().getPlayers()) {

    Thanks man :).
  14. Offline


    Ah, carry on.
  15. You've contributed a lot o.o Nice!
    bigteddy98 likes this.
  16. Offline


    1. [16:25:44] [Server thread/WARN]: java.lang.ClassNotFoundException: net.minecraft.type.v1_7_R3.PacketPlayOutAnimation
    2. [16:25:44] [Server thread/WARN]:at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:67)
    3. [16:25:44] [Server thread/WARN]:at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:62)
    4. [16:25:44] [Server thread/WARN]:at java.lang.ClassLoader.loadClass(Unknown Source)
    5. [16:25:44] [Server thread/WARN]:at java.lang.ClassLoader.loadClass(Unknown Source)
    6. [16:25:44] [Server thread/WARN]:at java.lang.Class.forName0(Native Method)
    7. [16:25:44] [Server thread/WARN]:at java.lang.Class.forName(Unknown Source)
    8. [16:25:44] [Server thread/WARN]:at XX.RedFactory.getMCClass(RedFactory.java:134)
    9. [16:25:44] [Server thread/WARN]:at XX.RedFactory.<clinit>(RedFactory.java:24)

  17. Offline


    Which CB version are you running?
    Edit: You've changed your getMCClass method, you should have this:
    1. String className = "net.minecraft.server." + version + name;

    But for some reason I think you've changed it to:
    1. String className = "net.minecraft.type." + version + name;
  18. Offline


    Aha! Perhaps I copied the SkyFactory's getMCClass method to this class. Sorry :p
  19. Offline


    Should be the same, but np ;)
  20. Offline


    Thanks this helped me in one of my plugins!
    bigteddy98 likes this.
  21. Offline


    Great job!
    1 )Make a server called 'Opposites' and do this to everyone... every tick.
    2 )On hit turn it off.
    3 ) Everyone has their own name tag, but upside-down (grumm, dinner bone) with your other skin changing.. They are upside-down!
    4 ) Forward goes back vice verca

    >: D
    stirante and LordVakar like this.
  22. Offline


    Good job! But...The toggling should be like this: If the player is red, then remove it, and if he isn't, add it like it should be. But instead, if player is red, you have to make it red, if he isn't, remove red? Why is that?
    BTW: I created this static method to nag a player, make him red and move his screen. It can also be used to make an alarm clock!
    2. public static void nag(String name){
    3. nag(Bukkit.getPlayerExact(name));
    4. }
    5. public static void nag(Player p){
    6. try {
    7. Object nms_entity = getHandle.invoke(p);
    8. Object packet = packetPlayOutAnimation.newInstance(nms_entity, 1);
    9. if (p.getLocation().distance(p.getLocation()) <= 50) {
    10. Object nms_player = getHandle.invoke(p);
    11. Object nms_connection = playerConnection.get(nms_player);
    12. sendPacket.invoke(nms_connection, packet);
    13. }
    14. } catch (Exception e) {
    15. e.printStackTrace();
    16. }
    17. }
Thread Status:
Not open for further replies.

Share This Page