Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse

LiquidBounce Forum

  1. Home
  2. General
  3. Extending Java constructors with Nashorn?

Extending Java constructors with Nashorn?

Scheduled Pinned Locked Moved Unsolved General
3 Posts 1 Posters 230 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • I Offline
    I Offline
    idk my name
    wrote on last edited by idk my name
    #1

    Let's say that there's a listener that subscribes into PacketEvent and calls my WrappedPacketEvent:

    var WrappedListener = Java.extend((Java.type('net.ccbluex.liquidbounce.event.Listenable')), (Java.type('java.util.function.Consumer')), {
        handleEvents: function() { return true },
        accept: function(e) {
            e instanceof PacketEvent && LiquidBounce.INSTANCE.eventManager.callEvent(new WrappedPacketEvent(e.getPacket().wrapped)); 
        }
    });
    

    But how can I extend Event and create my own constructor that accepts Packet<?>? (Consumer?)

    1 Reply Last reply
    0
    • I Offline
      I Offline
      idk my name
      wrote on last edited by
      #2

      For understanding:
      9751f39d-9889-41ad-82d3-322fa8869705-image.png
      The problem is in IPacket.
      I want to wrap IPacket into Packet<?>, so onPacket will accept Packet<?> instead of IPacket (xversion problem, I need to write e.getPacket().wrapped instead of just e.getPacket(), that's really annoying)

      1 Reply Last reply
      0
      • I Offline
        I Offline
        idk my name
        wrote on last edited by idk my name
        #3

        There's how far I got:

        var WrappedListener = Java.extend((Java.type('net.ccbluex.liquidbounce.event.Listenable')), (Java.type('java.util.function.Consumer')), {
            handleEvents: function() { return module[0].state },
            accept: function(e) {
                e instanceof PacketEvent && LiquidBounce.INSTANCE.eventManager.callEvent(new WrappedPacketEvent(e.getPacket().wrapped)); 
            }
        });
        
        function WrappedPacketEvent(packet) {
            var isCancelled;
        
            this.isCancelled = function() isCancelled;
            this.cancelEvent = function() {
                isCancelled = true;
            }
            this.getPacket = function() packet;
        }
        
        1 Reply Last reply
        0
        Reply
        • Reply as topic
        Log in to reply
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes


        About
        • Terms of Service
        • Privacy Policy
        • Status
        • Contact Us
        Downloads
        • Releases
        • Source code
        • License
        Docs
        • Tutorials
        • CustomHUD
        • AutoSettings
        • ScriptAPI
        Community
        • Forum
        • Guilded
        • YouTube
        • Twitter
        • D.Tube
        • Login

        • Login or register to search.
        • First post
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • Users
        • Groups