[SNIPPET] PastebinReporter

Discussion in 'Resources' started by CaptainBern, Feb 3, 2014.

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

    CaptainBern Retired Staff

    Hello, everyone!

    Some of you may have noticed that some "bigger" plugins have a fancy feature that when there's an unknown error, they post a log on Pastebin, and then print the URL and tell the server owner to send you, the plugin author, the URL. So, I thought to myself, why not make such a tool? And, voilĂ : it is finished.

    The usage is fairly simple:
    Code:java
    1. public class MyPlugin extends JavaPlugin
    2.  
    3. public PastebinReporter REPORTER;
    4.  
    5. @Override
    6. public void onEnable() {
    7.  
    8. this.REPORTER = new PastebinReporter(<Your pastebin API-Key>);
    9.  
    10. }
    11.  
    12. public PastebinReporter getReporter() {
    13. return this.REPORTER;
    14. }


    The API-Key is your personal API key for Pastebin. (to retrieve one, go to pastebin.com, create an account, and click "API")

    Then, if you want to make a report:
    Code:java
    1. Paste mySexyPaste = new Paste("This is the Header.\nThis header looks extremely sexy.");


    Then you can add as many lines as you want:
    Code:java
    1. mySexyPaste.appendLine("1. This is line 1!")
    2. .appendLine("2. Line 2!")
    3. .appendLine("Do you like it already?");


    And then finally, to post your report on Pastebin do:
    Code:java
    1. MyPluginInstance.getReporter().post(<name of the paste, if null then no name will be given>, mySexyPaste, ReportFormat.YAML, ExpireDate.ONE_MONTH);


    My code supports all possible Pastebin syntaxes, so you can pick whichever you like. The "post(report, format);" returns the URL where the paste got posted.


     
    glen3b, Phasesaber, Chinwe and 15 others like this.
  2. Offline

    UnrealPowerz

    [​IMG]Have this cookie.
    I also like your definition of "a little class".
     
    glen3b, Phasesaber, DSH105 and 3 others like this.
  3. Offline

    CaptainBern Retired Staff

    UnrealPowerz Yeah but keep in mind that the reportformat are over 200 diffrent formats so the "usefull" code is like 120 lines or so :p

    Added an "ExpireDate", you can pick between never, 10 minutes, 1 hour, 1 day, 1 week, 2 weeks and 1 month.

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

    desht

    Nice, but is this running in the main server thread? Could bring a lot of servers to a grinding halt if pastebin is slow/down...
     
    CaptainBern likes this.
  5. Offline

    stirante

    CaptainBern likes this.
  6. Offline

    CaptainBern Retired Staff

    desht Thank you :) , Yes it runs on the main thread, but nothing stops you from running it async. :p
     
  7. Offline

    LCastr0

    It's not working for me :/ It doesn't show any error, but it doesn't send to my pastebin :l
     
  8. Offline

    The_Doctor_123

    CaptainBern likes this.
  9. Offline

    CaptainBern Retired Staff

    The_Doctor_123 Thank you :) LCastr0 Hmm, do this: System.out.print(reporter.post(<stuff here>)); and take a look at the url in the console.
     
  10. Offline

    user_90854156

    Sounds great, here's a cake [cake]
     
    CaptainBern likes this.
  11. Offline

    LCastr0

  12. Offline

    lol768 Retired Staff

    Please ensure you document this appropriately if you use it in a BukkitDev plugin :)
     
Thread Status:
Not open for further replies.

Share This Page