Jump to content
View in the app

A better way to browse. Learn more.

OSBot :: 2007 OSRS Botting

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Ryley

Members
  • Joined

  • Last visited

Everything posted by Ryley

  1. Ryley replied to Isolate's topic in Scripting Help
    I don't quite understand what you mean.. If you're want to update a count via the parameter of some PHP file then I do not recommend you do that, it's unsafe. You would be much better off using some SQL dialect or another database to store that information.
  2. Ryley replied to Ryley's topic in Snippets
    ++ for the usage of the adapter pattern; but extending HashMap is a bit overkill, if you were to do that I would rather make my own collection for this.
  3. The code in the initial post withdraws by ID?
  4. Ryley posted a topic in Snippets
    I started writing my own extension API alongside OSBots which contains helper methods that are typically used in most scripts, this is one of the classes: package org.milkcouch.script; import java.util.HashMap; import java.util.Map; /** * Represents attributes that a script uses. * * <a> * Example: for skill calculators I see a bunch of people adding a multitude of * variables to represent the initial experience before starting a script. * With this you could create constant fields: * <code> * final class MyScriptsAttributes { * private static final ScriptAttributes attributes = ScriptAttributes.getInstance(); * * public static final boolean USE_FOOD = attributes.contains("USE_FOOD"); * ... and so on ... * } * </code> * * This makes your code much more readable and you do not have * A cluster fuck of random variables everywhere representing various attributes. * This can also be used for setting the current state of your bot, I see people * All the time having a static <code>String</code> and setting it each time a state is updated. * * <code> * vars.status = "antiban"; * </code> * * That is very unappealing and ignores any convention. * * Instead we could do this: * * <code> * ScriptAttributes.getInstance().updateStatus("Antiban"); * </code> * * And to return it, I have added status helper methods, which make it simple for everyone. * * <code> * ScriptAttributes.getInstance().getCurrentStatus(); * </code> * </a> * * @author Ryley Kimmel <ryley.kimmel@live.com> */ public final class ScriptAttributes { /** * A 'lazy' singleton implementation. */ private static final ScriptAttributes INSTANCE = new ScriptAttributes(); /** * A map of strings->objects, which represent attributes. */ private final Map<String, Object> attributes = new HashMap<>(); /** * Adds an attribute to the attribute map. * @param key The attributes key. * @param value The value of the attribute. */ public void add(String key, Object value) { attributes.put(key, value); } /** * Returns the value of a specified key. * @param key The key. * @return The value of the specified key, <tt>null</tt> if the key does not exist. */ public Object getValue(String key) { return attributes.get(key); } /** * Removes an attribute from the map by its key. * @param key The key to remove. */ public void remove(String key) { attributes.remove(key); } /** * Removes a set of keys from the map. * @param keys The keys to remove. */ public void remove(String... keys) { for (String key : keys) { remove(key); } } /** * Returns whether or not the map contains the specified key. * @param key The key. * @return <code>true</code> if the key exists, otherwise </code>false</code> */ public boolean contains(String key) { return attributes.containsKey(key); } // ... status helpers /** * Updates the current status of your script. * @param newStatus The new status. */ public void updateStatus(String newStatus) { add("CURRENT_STATUS", newStatus); } /** * Returns the current status of your script. * @return The current status of your script, <tt>null</tt> if no status exists. */ public String getStatus() { return (String) getValue("CURRENT_STATUS"); } /** * Returns the singleton instance of this class. * @return The singleton instance. */ public static ScriptAttributes getInstance() { return INSTANCE; } /** * Default private constructor, used to prevent this class from being instantiated. * <a> * This constructor should not be instanced directly, use {@link #getInstance()} instead! * </a> * @see {@link #getInstance()}. */ private ScriptAttributes() { } }
  5. Metadata means data about data.
  6. You're right, a VPS has a main server, that main server is basically a dedicated server, virtual servers share memory, hdd, etc from the main server, but is limited. Each host has availability up to x amount of clients, each client has it's own unique MAC and IP address, even though you can't access the other users on your virtual server, they are still there sharing the resources. VPS's are like user accounts on your home PC BUT they're isolated from each other have separate IP's and can't read each other files. Those aren't the same.. at all.
  7. I expected more, this is not advanced.
  8. Virtual servers are not your best bet for hosting a bot farm (if that is your intentions) you would be better off buying a dedicated server, if you have the money of course.

Account

Navigation

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.