Twitter and Bukkit

Discussion in 'Plugin Development' started by XxZHALO13Xx, Jan 11, 2015.

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

    XxZHALO13Xx

    A while back someone gave me code to use to tweet from a server. worked fine.. i am getting back to using it and i get an error. here is the error

    Code:
    [12:17:19 INFO]: [TopRaidzCore] Enabling TopRaidzCore v1.0
    [12:17:20 ERROR]: Error occurred while enabling TopRaidzCore v1.0 (Is it up to d
    ate?)
    java.lang.ExceptionInInitializerError
            at org.cyberneko.html.HTMLScanner.scanEntityRef(HTMLScanner.java:1415) ~
    [?:?]
            at org.cyberneko.html.HTMLScanner$ContentScanner.scanAttribute(HTMLScann
    er.java:3025) ~[?:?]
            at org.cyberneko.html.HTMLScanner$ContentScanner.scanAttribute(HTMLScann
    er.java:2851) ~[?:?]
            at org.cyberneko.html.HTMLScanner$ContentScanner.scanStartElement(HTMLSc
    anner.java:2700) ~[?:?]
            at org.cyberneko.html.HTMLScanner$ContentScanner.scan(HTMLScanner.java:2
    110) ~[?:?]
            at org.cyberneko.html.HTMLScanner.scanDocument(HTMLScanner.java:920) ~[?
    :?]
            at org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:499
    ) ~[?:?]
            at org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:452
    ) ~[?:?]
            at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) ~[?:?]
            at com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.pars
    e(HTMLParser.java:965) ~[?:?]
            at com.gargoylesoftware.htmlunit.html.HTMLParser.parse(HTMLParser.java:2
    47) ~[?:?]
            at com.gargoylesoftware.htmlunit.html.HTMLParser.parseHtml(HTMLParser.ja
    va:193) ~[?:?]
            at com.gargoylesoftware.htmlunit.DefaultPageCreator.createHtmlPage(Defau
    ltPageCreator.java:268) ~[?:?]
            at com.gargoylesoftware.htmlunit.DefaultPageCreator.createPage(DefaultPa
    geCreator.java:156) ~[?:?]
            at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseInto(WebClient
    .java:468) ~[?:?]
            at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:342) ~
    [?:?]
            at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:407) ~
    [?:?]
            at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:392) ~
    [?:?]
            at me.xxzhalo13xx.topraidzcore.twitter.Tweeter.login(Tweeter.java:42) ~[
    ?:?]
            at me.xxzhalo13xx.topraidzcore.Core.onEnable(Core.java:44) ~[?:?]
            at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:250) ~[c
    raftbukkit.jar:git-Bukkit-1.7.2-R0.3-35-gd6ac518-b3061jnks]
            at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader
    .java:324) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-35-gd6ac518-b3061jnks]
            at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManage
    r.java:404) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-35-gd6ac518-b3061jnks]
            at org.bukkit.craftbukkit.v1_7_R3.CraftServer.loadPlugin(CraftServer.jav
    a:448) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-35-gd6ac518-b3061jnks]
            at org.bukkit.craftbukkit.v1_7_R3.CraftServer.enablePlugins(CraftServer.
    java:382) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-35-gd6ac518-b3061jnks]
            at org.bukkit.craftbukkit.v1_7_R3.CraftServer.reload(CraftServer.java:80
    1) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-35-gd6ac518-b3061jnks]
            at org.bukkit.Bukkit.reload(Bukkit.java:288) [craftbukkit.jar:git-Bukkit
    -1.7.2-R0.3-35-gd6ac518-b3061jnks]
            at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:
    23) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-35-gd6ac518-b3061jnks]
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:18
    0) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-35-gd6ac518-b3061jnks]
            at org.bukkit.craftbukkit.v1_7_R3.CraftServer.dispatchCommand(CraftServe
    r.java:703) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-35-gd6ac518-b3061jnks]
            at org.bukkit.craftbukkit.v1_7_R3.CraftServer.dispatchServerCommand(Craf
    tServer.java:690) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-35-gd6ac518-b3061jnks]
            at net.minecraft.server.v1_7_R3.DedicatedServer.aB(DedicatedServer.java:
    296) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-35-gd6ac518-b3061jnks]
            at net.minecraft.server.v1_7_R3.DedicatedServer.v(DedicatedServer.java:2
    61) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-35-gd6ac518-b3061jnks]
            at net.minecraft.server.v1_7_R3.MinecraftServer.u(MinecraftServer.java:5
    58) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-35-gd6ac518-b3061jnks]
            at net.minecraft.server.v1_7_R3.MinecraftServer.run(MinecraftServer.java
    :469) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-35-gd6ac518-b3061jnks]
            at net.minecraft.server.v1_7_R3.ThreadServerApplication.run(SourceFile:6
    28) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-35-gd6ac518-b3061jnks]
    Caused by: java.lang.NullPointerException
            at java.util.Properties$LineReader.readLine(Unknown Source) ~[?:1.7.0_51
    ]
            at java.util.Properties.load0(Unknown Source) ~[?:1.7.0_51]
            at java.util.Properties.load(Unknown Source) ~[?:1.7.0_51]
            at org.cyberneko.html.HTMLEntities.load0(HTMLEntities.java:101) ~[?:?]
            at org.cyberneko.html.HTMLEntities.<clinit>(HTMLEntities.java:53) ~[?:?]
    
            ... 36 more
    Tweeter
    Code:
    package me.xxzhalo13xx.topraidzcore.twitter;
    
    import com.gargoylesoftware.htmlunit.BrowserVersion;
    import com.gargoylesoftware.htmlunit.WebClient;
    import com.gargoylesoftware.htmlunit.html.*;
    
    import java.util.logging.Level;
    
    /**
    * Created by ZH on 1/11/2015.
    */
    public class Tweeter {
    
        private WebClient webClient;;
    
        private String username;
        private String password;
    
        private boolean loggedIn = false;
    
        public Tweeter(String username, String password) {
            webClient = new WebClient(BrowserVersion.CHROME);
            webClient.getOptions().setThrowExceptionOnScriptError(false);
            webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
            webClient.getOptions().setPrintContentOnFailingStatusCode(false);
            webClient.getOptions().setJavaScriptEnabled(true);
            webClient.getOptions().setRedirectEnabled(true);
            webClient.getOptions().setCssEnabled(true);
            webClient.getOptions().setUseInsecureSSL(true);
            webClient.getCookieManager().setCookiesEnabled(true);
    
            org.apache.commons.logging.LogFactory.getFactory().setAttribute("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.NoOpLog");
            java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit").setLevel(Level.OFF);
            java.util.logging.Logger.getLogger("org.apache.commons.httpclient").setLevel(Level.OFF);
            new Shutit(webClient);
    
            this.username = username;
            this.password = password;
        }
    
        public boolean login() throws Exception {
            HtmlPage page = webClient.getPage("https://mobile.twitter.com/login");
    
            final HtmlForm form = page.getForms().get(0);
            final HtmlTextInput userField = form.getInputByName("username");
            final HtmlPasswordInput passField = form.getInputByName("password");
    
            userField.setValueAttribute(this.username);
            passField.setValueAttribute(this.password);
    
            final HtmlSubmitInput button = form.getInputByValue("Log in");
    
            final HtmlPage resultPage = button.click();
    
            webClient.closeAllWindows();
    
            String title = resultPage.getUrl().toExternalForm();
    
            loggedIn = true;
            return title.equals("https://mobile.twitter.com/");
        }
    
        public boolean tweet(String text) throws Exception {
            if (!loggedIn || text.length() > 140 || text.length() < 1) {
                return false;
            }
    
            HtmlPage page = webClient.getPage("https://mobile.twitter.com/compose/tweet");
    
            final HtmlForm form = page.getForms().get(0);
            final HtmlTextArea userField = form.getTextAreaByName("tweet[text]");
    
            userField.setText(text);
    
            final HtmlSubmitInput button = form.getInputByValue("Tweet");
            final HtmlPage resultPage = button.click();
    
            webClient.closeAllWindows();
    
            String title = resultPage.getUrl().toExternalForm();
            return title.equals("https://mobile.twitter.com/");
        }
    }
    Shutit
    Code:
    package me.xxzhalo13xx.topraidzcore.twitter;
    
    /**
    * Created by ZH on 1/11/2015.
    */
    import java.net.MalformedURLException;
    import java.net.URL;
    
    import org.w3c.css.sac.CSSException;
    import org.w3c.css.sac.CSSParseException;
    import org.w3c.css.sac.ErrorHandler;
    
    import com.gargoylesoftware.htmlunit.IncorrectnessListener;
    import com.gargoylesoftware.htmlunit.ScriptException;
    import com.gargoylesoftware.htmlunit.WebClient;
    import com.gargoylesoftware.htmlunit.html.HtmlPage;
    import com.gargoylesoftware.htmlunit.javascript.JavaScriptErrorListener;
    
    public class Shutit {
    
        WebClient webClient = null;
    
        public Shutit(WebClient client) {
            webClient = client;
            call();
        }
    
        private void call() {
            webClient.setIncorrectnessListener(new IncorrectnessListener() {
    
                @Override
                public void notify(String arg0, Object arg1) {
    // TODO Auto-generated method stub
    
                }
            });
    
            webClient.setCssErrorHandler(new ErrorHandler() {
    
                @Override
                public void warning(CSSParseException exception) throws CSSException {
    // TODO Auto-generated method stub
    
                }
    
                @Override
                public void fatalError(CSSParseException exception) throws CSSException {
    // TODO Auto-generated method stub
    
                }
    
                @Override
                public void error(CSSParseException exception) throws CSSException {
    // TODO Auto-generated method stub
    
                }
            });
    
            webClient.setJavaScriptErrorListener(new JavaScriptErrorListener() {
    
                @Override
                public void timeoutError(HtmlPage arg0, long arg1, long arg2) {
    // TODO Auto-generated method stub
    
                }
    
                @Override
                public void scriptException(HtmlPage arg0, ScriptException arg1) {
    // TODO Auto-generated method stub
    
                }
    
                @Override
                public void loadScriptError(HtmlPage arg0, URL arg1, Exception arg2) {
    // TODO Auto-generated method stub
    
                }
    
                @Override
                public void malformedScriptURL(HtmlPage arg0, String arg1, MalformedURLException arg2) {
    // TODO Auto-generated method stub
    
                }
            });
        }
    }
    
    Core
    Code:
     public static Tweeter tweeter;
    
    //Relevant things only :P
    
    public void onEnable() {
    tweeter = new Tweeter("username :P", "password : P");
      try {
                tweeter.login();
            } catch (Exception e) {
                e.printStackTrace();
    
    
                try {
                    getTweeter().tweet("TopRaidzHub Version 1.0 - Booted up!");
                } catch (Exception e1) {
                    e1.printStackTrace();
                }
            }
    <Edited by bwfcwalshy: Fixed missing "s.>
     
    Last edited by a moderator: Jan 14, 2015
  2. Offline

    XxZHALO13Xx

  3. Offline

    Burnett

Thread Status:
Not open for further replies.

Share This Page