Jump to content

Search the Community

Showing results for tags 'abuse'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • RuneLocus
    • News & Announcements
    • Information Booth
    • Website Support
    • Introductions
    • Chat
    • Forum Games
  • RuneScape Development
    • RSPS General
    • RuneScape Private Server (RS2)
    • RuneScape Private Server (503+)
    • RuneScape Private Server (EoC 742+)
  • Other
    • Digital Art
    • Gaming
    • Webdevelopment
    • Computers
  • Marketplace
    • RuneScape Market
    • RSPS Market
    • Others Market
    • Freelance Middleman Services
  • Super Secret Club's Topics

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start



Found 5 results

  1. To all the owners of great rsps out there, I'm selling bug abuse services. The price will range from a little 10$ to 30$ depending on the revision you want me to dupe on. Contact : BugFindingServicesRSPS on skype for more information. One of my previous work (rank 29 on runelocus, used to be 24) : [url]http://www.youtube.com/watch?v=Ni2cK0x6BVE[/url]
  2. [b]Base[/b]: Project Insanity [b]Difficulty[/b]: 2/10 Before we start, there's a few things you need to know about this system: [list] [*]Uses the ingame red report abuse button [*]The report abuse system logs 60 seconds of chat before and after the report; [*]You can only report somebody once in sixty seconds [*]You cannot report yourself [*]You can only report somebody who has spoken in the last sixty seconds [/list] [IMG]http://i56.tinypic.com/3324b9s.png[/img] (Ignore the second sendmessage, something with the client) Example of a report: Inside Offensive Language.txt: [quote] test2 was reported by test1, Offensive language, July, 27 -[06:57:25: test2]: lo faggot -[06:57:32: test1]: reported bitch! . [/quote] First off we'll need to add in the packet that sends the reports, so go into your PacketHandler class and add this in with the rest of your packets; [code] packetId[218] = new Report(); [/code] Create a new class file in the 'packets' package called [i]Report[/i]: [code] package server.model.players.packets; import server.model.players.Client; import server.model.players.PacketType; import server.model.players.global.*; public class Report implements PacketType { @Override public void processPacket(Client c, int packetType, int packetSize) { try { ReportHandler.handleReport(c); } catch (Exception e) { e.printStackTrace(); } } } [/code] Next add a new class file called ReportHandler, you'll need to change the package since I have it underneath a different package: [code] package server.model.players.global; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import server.model.players.Client; import server.util.Misc; /** * * @author AMG A Bear * */ public class ReportHandler { public static String[] savedNames = new String[500]; public static String[] savedSpeach = new String[500]; public static String[] savedTimes = new String[500]; public static final String[] reportNames = { "Offensive language", "Item scamming", "Password scamming", "Bug abuse", "Staff impersonation", "Other", "Macroing", "Duping", "Encouraging others to break the rules", "Yell abuse", "Advertising", "Possible duped items" }; public static void addText(String name, byte[] data, int dataLength) { for (int i = 499; i > 0; i--) { savedNames[i] = savedNames[i - 1]; savedSpeach[i] = savedSpeach[i - 1]; savedTimes[i] = savedTimes[i - 1]; } savedNames[0] = name; savedSpeach[0] = Misc.textUnpack(data, dataLength); String minute = new SimpleDateFormat("mm").format(new Date()); String second = new SimpleDateFormat("ss").format(new Date()); String hour = new SimpleDateFormat("hh").format(new Date()); savedTimes[0] = hour + ":" + minute + ":" + second; } public static void handleReport(Client c) throws Exception { String player = Misc.longToPlayerName3(c.inStream.readQWord2()); player = player.replaceAll("_", " "); byte rule = (byte) c.inStream.readUnsignedByte(); if (c.lastReported.equalsIgnoreCase(player) && (System.currentTimeMillis() - c.lastReport) < 60000) { c.sendMessage("You can only report a player once every 60 seconds."); return; } if (c.playerName.equalsIgnoreCase(player)) { c.sendMessage("You cannot report yourself!"); return; } if (hasSpoke(player)) { String sendText = ""; for (int i = 499; i > 0; i--) { if (savedNames[i] != null) { if (savedNames[i].equalsIgnoreCase(c.playerName) || savedNames[i].equalsIgnoreCase(player)) { sendText += " -[" + savedTimes[i] + ": " + savedNames[i] + "]: " + savedSpeach[i] + "\r\n"; } } } sendText = sendText.replaceAll("'", " "); String month = getMonth(new SimpleDateFormat("MM") .format(new Date())); String day = new SimpleDateFormat("dd").format(new Date()); // Statement statement = Server.conn.createStatement(); writeReport(player + " was reported by " + c.playerName + ", " + reportNames[rule] + ", " + month + ", " + day + "", sendText + ".", reportNames[rule]); c.sendMessage("Thank you, your report has been received and will be reviewed."); c.lastReported = player; c.lastReport = System.currentTimeMillis(); return; } else { c.sendMessage("You can only report someone who has spoken in the last 60 seconds."); return; } } public static void writeReport(String data, String text, String file) { BufferedWriter bw = null; try { bw = new BufferedWriter(new FileWriter("./data/reports/" + file + ".txt", true)); bw.write(data); bw.newLine(); bw.write(text); bw.newLine(); bw.newLine(); bw.flush(); } catch (IOException ioe) { ioe.printStackTrace(); } finally { if (bw != null) try { bw.close(); } catch (IOException ioe2) { System.out.println("Error writing system log."); ioe2.printStackTrace(); } } } public static void writeLog(String text, String file, String dir) { // used for bans/mutes/chatlogs etc. -bakatool BufferedWriter bw = null; try { bw = new BufferedWriter(new FileWriter(dir + file + ".txt", true)); bw.write(text); bw.newLine(); bw.flush(); } catch (IOException ioe) { ioe.printStackTrace(); } finally { if (bw != null) try { bw.close(); } catch (IOException ioe2) { System.out.println("Error writing system log."); // ioe2.printStackTrace(); } } } public static boolean hasSpoke(String s) { for (int i = 0; i < 500; i++) { if (savedNames[i] != null) { if (savedNames[i].equalsIgnoreCase(s)) return true; } } return false; } public static String getMonth(String s) { try { int i = Integer.parseInt(s); String[] months = { "", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; return months[i]; } catch (Exception e) { e.printStackTrace(); } return "Unknown"; } } [/code] Add this method in your Stream class [code] public long readQWord2() { final long l = readDWord() & 0xffffffffL; final long l1 = readDWord() & 0xffffffffL; return (l << 32) + l1; } [/code] Add this in your Misc class: [code] public static String longToReportPlayerName(long l) { int i = 0; final char ac[] = new char[12]; while (l != 0L) { final long l1 = l; l /= 37L; ac[11 - i++] = Misc.playerNameXlateTable[(int) (l1 - l * 37L)]; } return new String(ac, 12 - i, i); } [/code] Next we need to make it so when a player speaks, it's noticed by the report abuse system. Add this in your Chat class: [code] ReportHandler.addText(c.playerName, c.getChatText(), packetSize - 2); [/code] Lastly, add this in your Player class: [code] // Report stuff public long lastReport = 0; public String lastReported = ""; [/code] Logs should be written in this directory: ./data/reports/rulename.txt Credits: AMG A Bear Myself Zee Best
  3. This should work directly on most Project Insanity servers, but can easily be converted to other bases. Not sure if the 562+ protocol uses the same packet ID and so forth. Without further modification, this will create a text-document under the name of the reported user, thus making it possible to only have one open report per account. Later reports will override the previous one and so forth. This is to prevent a large scale of reports, as some think "more reports = better chance for ban" at RuneScape, and probably RSPSes too. [iMG]http://img190.imageshack.us/img190/8818/screenshot20111210at120.png[/IMG] Save this as [B]Report.java[/B] in [B]/src/server/model/players/packets/[/B] on Project Insanity based servers. [CODE]package server.model.players.packets; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.HashMap; import server.model.players.Client; import server.model.players.PacketType; import server.model.players.PlayerHandler; import server.util.Misc; /** * * Handles the report abuse packets (opcode: 218) sent by the client(s). * * @author Nouish <[email protected]> * */ public final class Report implements PacketType { @Override public void processPacket(Client c, int packetType, int packetSize) { /* * Receives, and converts the reported user to {@link String}. */ String reportedName = Misc.longToPlayerName2(c.getInStream().readQWord()); /* * Receives the ident of the rule that was broken, which can * be converted to it's corresponding description afterwards. */ int brokenRuleIdent = 1 + c.getInStream().readUnsignedWordBigEndian(); /* * Prevent clients from reporting themselves, as "self-reports" could * be made to spam the report directory. */ if (reportedName.equalsIgnoreCase(c.playerName)) { c.sendMessage("You'd better not report yourself! Staff could believe you're mentally ill."); return; } /* * Check whether the reported user is aviable or not. If not, * then why would we need to continue? It's likely to be an * false report or spelling error. */ if (!PlayerHandler.isPlayerOn(reportedName)) { c.sendMessage("The player " + Misc.formatPlayerName(reportedName) + " is not currently aviable, or doesn't exist."); return; } /* * Constructs an somewhat advanced string we'd like to print, and * store if we'd like to do so. */ StringBuilder sb = new StringBuilder() .append(Misc.formatPlayerName(c.playerName)) .append(" reported ") .append(Misc.formatPlayerName(reportedName)) .append(" for breaking rule #") .append(brokenRuleIdent) .append(": ") .append(Rule.getDescription(brokenRuleIdent)) .append("."); /* * Prints the string we just constructed using the {@link StringBuilder} class. */ System.out.println(sb.toString()); /* * Now that we have the required data, have printed the report to our terminal, * it's finally time to log the report. This method will make a document based * on the reported users' name, thus making a overrideable file. Who would want * the same player to be reported one million times? Might be useful to log all * the reports in some cases, however, this is how I did it this time. */ try { /* * Lets create a {@link File} reference to our directory for abuse reports. */ File reportDirectory = new File("./data/abuse-reports/"); /* * This is to make sure our abuse report directory exists. If it doesn't, * we will attempt to make it. Should that fail, an {@link IOException} * will be thrown to stop the method. */ if (!reportDirectory.exists()) { /* * This is where we attempt to make the report abuse directory... */ if (!reportDirectory.mkdirs() && !reportDirectory.mkdir()) { /* * For some odd reason, we were unable to make the directory. To * prevent the method from going further, we thrown an {link IOException}. */ throw new IOException("failed to make our report-abuse directory."); } } /* * Create an instance of the {@link FileWriter} class. */ FileWriter fw = new FileWriter(new File(reportDirectory.getAbsolutePath() + File.separator + reportedName + ".txt")); /* * Let's "introduce" the report by writing who was reported, and by who. */ fw.append(sb.toString()); /* * Close the {@link FileWriter} so other players can update the report afterwards. */ fw.close(); } catch (IOException exception) { /* * Print so that we know the report failed. Helpful if we'd like to patch * an eventual issue as quickly as possible. */ System.err.println("Unexpected exception was caught - could not write log."); /* * Print the stackTrace aswell. */ exception.printStackTrace(); /* * Let's tell the client his report failed, becaue an exception was caught. */ c.sendMessage("Exception caught while logging your report, please try again."); /* * Let's end this method now, because we'd rather not thank the user who * created this report after telling him it failed.. */ return; } /* * Let's thank the client for helping us combat rule-breakers :). */ c.sendMessage("Thank-you, your abuse report has been received."); } /** * * Used to describe the reportable rules. * * @author Nouish <[email protected]> * */ private static enum Rule { /* * Declares the 12 rules that existed when RuneScape still used * their neat 317 protocol - make sure to have the ID match the * client-side one ;). */ RULE1(1, "Offensive language"), RULE2(2, "Item scamming"), RULE3(3, "Password scamming"), RULE4(4, "Bug abuse"), RULE5(5, "Jagex staff impersonation"), RULE6(6, "Account sharing/trading"), RULE7(7, "Macroing"), RULE8(8, "Multiple logging in"), RULE9(9, "Encouraging others to break rules"), RULE10(10, "Misuse of customer support"), RULE11(11, "Advertising / website"), RULE12(12, "Real world item trading"); /** * Construct a new {@link Rule} using this constructor. * * @param id * The ident of the rule. * @param description * The description of the rule. */ private Rule(int id, String description) { this.id = (short) id; this.description = description; } /* * Declares the ident of the rule. */ private final short id; /* * Declares the description of the rule. */ private final String description; /** * Returns the ident of this rule. * * @return * The ident of this rule. */ public final short getID() { return this.id; } /** * Returns the simple description of this rule (ie.: "Item scamming"). * * @return * A simple description of this rule. */ public final String getDescription() { return this.description; } /* * A {@link HashMap} which have the idents correspond to it's description. */ private static HashMap<Short, String> rules = new HashMap<Short, String>(); /** * Returns the description that corresponds to the specified {@link id}. * * @param id * The ident of the rule, whose description should be returned. * @return * The description of the rule specified. */ public static final String getDescription(int id) { return rules.get((short) id); } /* * Initialised when the {@link Rule} {@link Enum} is first needed. * Puts corresponding data in our {@link HashMap}, {@link rules}. */ static { for (Rule rule : values()) { rules.put(rule.getID(), rule.getDescription()); } } } }[/CODE] In your [B]PacketHandler.java[/B], under [CODE]static {[/CODE] add the following line: [CODE]packetId[218] = new Report();[/CODE] This is required for the server to handle the packet through our [B]Packet[/B]-class, the one we just added. Please don't highlight the comments, because they were written to help beginners.
  4. Hey guys, well. I created a In-Game Vote4Cash button a few days ago, I figured.. lets make a donator one aswell! I figured.. the next most useless thing other than the minimap button was.. the report abuse button! :D only problem is.. I cant figure out how the HELL i can change the sprite.. I have changed the sprite via the chatbox sprite.. But when you hover the report abuse button it glows and looks like a normal report abuse button,. without my changed sprite.. move ur mouse off it and it goes back to how I edited it. I didnt find a sprite for the flashed report abuse button so im rly confused.. any help appreciated!
  5. Magic

    Hello Abuse!

    [B][COLOR="#FF0000"]NOTE: I am not complaining about the infraction, but about the abuse. I could care less about the infraction. Also, I removed most of the quoted quotes (quotes inside quotes) just for space sake, nothing was changed.[/COLOR][/B] Let me give you some insight on the situation. Buffaloboy was asking for a banner. The first post was someone saying "No, your gay" with a ton of others thanking it. I thought that that was pathetic, so I was going to help him, but not for free. So, I decided to make that thought into a joke. What I said: [quote]I would love to help, but I'm a good prostitute: I never work for free.[/quote] Not the worst of jokes. Better than not helping him simply because he is gay. A few minutes later: [quote name='Sick`']Dear Magic, You have received a warning at RuneLocus. Reason: Spamming ------- Unnecessary. ------- Keep in mind that this is a warning because you've broken a rule. Insulting the staff due to this doesn't make any sense, it's just helping you avoid a ban. Original Post: [post]445480[/post] [quote]I would love to help, but I'm a good prostitute: I never work for free.[/quote] All the best, RuneLocus[/QUOTE] I was kind of insulted by this for the simple reason that I was trying to help the guy, and felt my message was misunderstood. My reply: [quote name='Magic'][img]http://img35.imageshack.us/img35/3172/infraction1.png[/img] I would like to point out the following: The first people you infracted had chosen not to help him simple because the person was gay. I said nothing about not helping him because of his sexuality. I made a common joke whilst saying that I wouldn't do it for free. Spamming Definition: Verb 1. Send the same message indiscriminately to (large numbers of recipients) on the Internet. 2. A message unrelated to the topic. As you can see, it was only one small sentence, and therefore is far from spam. Also, it was related to the subject, was necessary to my opinions of such topic, and therefore was not spam. Just to reassure, I'm not writing this out of anger or frustration. I'm simply trying to say that this is a misunderstanding, and I believe this infraction should be removed. Best Regards, Magic[/QUOTE] And, acting as though he didn't even read the message, he replied simply: [quote name='Sick`'] If you didn't want to get in trouble, you should have worded it differently.[/QUOTE] Now in all of my years of experience with forums, including staff, this is not how you should reply to any message. Therefore I began to get a little more frustrated: [quote name='Magic'] Its not like it was the worst of jokes. Are you kidding me? You haven't given any recognition that this was a misunderstanding. This is ridiculous.[/QUOTE] And as if he was God, he replied: [quote name='Sick`'] It wouldn't have been misunderstood if you had worded it differently. And now you're getting an attitude. Lose the attitude and I might consider reversing the infraction.[/QUOTE] So, even if I was misunderstood, he could just keep it there because he now didn't like be for having an opinion. Avoiding making matters worse for something that was so simple, I replied: [quote name='Magic'] Just speaking my peace. Sorry.[/QUOTE] This was all fine until I read this a few minutes ago in the chatbox: [img]http://img197.imageshack.us/img197/9914/sickfail.png[/img] So, if I understand this correctly, Mods can say one thing yet do another. He can tell me not to make a prostitute joke, but he can make penis jokes? Someone please explain to me how this is fair in anyway.