Jump to content

Search the Community

Showing results for tags 'matrix'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • 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

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Found 196 results

  1. Being that I spent many hours working with this, trying to figure out what exactly was the issue and why it wouldn't work, I've decided to share this information with you all so that it may save you both the time and trouble. Furthermore, because I only have seen one snippet pertinent towards item floor examining and the amount of 718 revisions+ that have ground item examining are slim to none. What was the issue? Well, as most of you are surely aware, client packets must be precise. The variables were not. NOTE: If you either used this or if this helped you in ANY way, please don't hesitate to up-vote (its FREE!) First you'll need to declare your packets+size inside WPD: Then add this under processPackets method: Inside WPE:
  2. hi everyone im using matix 718 spawn rsps. Im going to convert it into a eco. But I'm having problems with something. I need to know how to edit the shops price of items. I have no problem with putting items in the shops, but i just dont know how to edit the items price. Could someone please tell me what to look for? so i can edit the shop? Thank you.
  3. Greetings! For the last week or two, in my free time, I have been developing my servers farming based off of a few tutorials I have found. [B][U][COLOR="#FF8C00"][URL="http://www.rune-server.org/runescape-development/rs-503-client-server/snippets/559347-718-farming.html"]This tutorial[/URL] is the original code I used. If you wish to use my code, you will need to follow this tutorial first in order to use my code.[/COLOR][/U][/B] [URL="http://www.rune-server.org/runescape-development/rs-503-client-server/snippets/492567-718-farming-release.html"]This tutorial [/URL]has helped me to finish off the various config ID's for herbs, flowers and allotments. I have vastly improved and fixed hundreds of issues with my farming code, and hope to share so that others can use my code and improve it. I am by no means a master of convention but I am learning quickly. [COLOR="#FF0000"][B][U]Again, the original code here was not my creation! [/U][/B][/COLOR] My farming consists of 3 main files: FarmingSystem.java [CODE]package com.rs.game.player.content.farming; import java.util.Iterator; import com.rs.game.Animation; import com.rs.game.WorldObject; import com.rs.game.item.Item; import com.rs.game.player.Player; import com.rs.game.player.Inventory; import com.rs.game.player.Skills; import com.rs.game.player.content.farming.Seeds.Seed; import com.rs.game.player.content.farming.Seeds; import com.rs.game.tasks.WorldTask; import com.rs.game.tasks.WorldTasksManager; public class FarmingSystem { /** * @author Jake | Santa Hat [MENTION=77]Rune[/MENTION]-Server */ /** * A list of all the Farming Allotments / Patches */ public static int[] farmingPatches = { 8552, 8553, 7848, 8151, 8550, 8551, 7847, 8150, 8554, 8555, 7849, 8152 }; /** * Handles the seeds on patch */ public static void handleSeeds(Player player, int seedId, WorldObject object) { if ((!canPlantSeeds(player, object) && (seedId == 952)) || (canPlantSeeds(player, object) && (seedId == 952))) { for (PatchStatus patch : player.farmingPatch) { if (patch.getObjectId() == object.getId()) { player.setNextAnimation(new Animation(2273)); player.getPackets().sendConfigByFile(object.getDefinitions().configFileId, 0); player.farmingPatch.remove(patch); } } player.getPackets().sendGameMessage("You remove the growing plants with your shovel."); return; } if (!canPlantSeeds(player, object)) { player.getPackets().sendGameMessage("You must clear the weeds before you may plant some seeds here."); return; } for (PatchStatus patch : player.farmingPatch) { if ((patch.getObjectId() == object.getId()) && (seedId != 952)) { player.getPackets().sendGameMessage("There is already something growing here."); return; } } for (Seeds.Seed seed : Seeds.Seed.values()) { if (seedId == seed.getItem().getId()) { if (player.getSkills().getLevel(Skills.FARMING) < seed.getLevel()) { player.getPackets().sendGameMessage("You need at least "+seed.getLevel()+" Farming in order to plant this."); return; } if (!player.getInventory().containsItem(seed.getItem().getId(), seed.getItem().getAmount())) { player.getPackets().sendGameMessage("You need at least "+seed.getItem().getAmount()+" "+new Item(seedId, 1).getDefinitions().getName()+"'s."); return; } for (int i = 0; i < seed.getSuitablePatch().length; i++) { if (seed.getSuitablePatch()[i] == object.getId()) { player.getPackets().sendGameMessage("You plant some "+new Item(seedId, 1).getDefinitions().getName()+"'s."); player.getInventory().deleteItem(seed.getItem()); player.setNextAnimation(new Animation(2291)); player.farmingPatch.add(new PatchStatus(object.getId(), object.getDefinitions().configFileId, seed.getConfigValues()[0], seed.getConfigValues()[seed.getConfigValues().length-1], "Some "+new Item(seedId, 1).getDefinitions().getName()+"'s have been planted here.", seed.getTime())); startGrowth(player, object, seed.getTime() / 2); } } } } } /** * Is the Patch Raked? Can the Player plant seeds? */ private static boolean canPlantSeeds(Player player, WorldObject object) { for (WorldObject o : player.rakedPatch) { if (object.getId() == o.getId()) return true; } return false; } /** * Starts the growth * 5 Stages of Growth */ private static void startGrowth(final Player player, final WorldObject object, int time) { WorldTasksManager.schedule(new WorldTask() { [MENTION=15855]Over[/MENTION]ride public void run() { if (player.farmingPatch.size() == 0) { stop(); return; } PatchStatus status = null; for (PatchStatus patch : player.farmingPatch) { if (patch.getConfigId() == object.getDefinitions().configFileId) { status = patch; } } if (status == null) { stop(); return; } if ((status.getConfigValue() + 1) == status.getMaxConfigValue()) { player.getPackets().sendConfigByFile(status.getConfigId(), status.getMaxConfigValue()); player.getPackets().sendGameMessage("<col=ff0000>[Farming] Your crops have fully grown."); stop(); } else { player.farmingPatch.add(new PatchStatus(object.getId(), object.getDefinitions().configFileId, status.getConfigValue() + 1, status.getMaxConfigValue(), status.getInspectText(),status.getPatchTime())); player.farmingPatch.remove(status); player.getPackets().sendConfigByFile(status.getConfigId(), status.getConfigValue() + 1); } } }, 0, time); } /** * Should the Player Rake or Harvest? */ public static void executeAction(Player player, WorldObject object) { if (canHarvest(player, object)) harvestCrops(player, object); else rake(player, object); } /** * Harvest's The Crops */ private static void harvestCrops(Player player, WorldObject object) { if (canHarvest(player, object) && (player.getInventory().getFreeSlots() >= 4)) { sendItems(player, object); for (Iterator<PatchStatus> patches = player.farmingPatch.iterator(); patches.hasNext();) { PatchStatus patch = patches.next(); if (patch.getConfigId() == object.getDefinitions().configFileId) patches.remove(); //Removes the Crops } for (Iterator<WorldObject> rakedPatches = player.rakedPatch.iterator(); rakedPatches.hasNext();) { WorldObject rakedPatch = rakedPatches.next(); if (rakedPatch.getId() == object.getId()) rakedPatches.remove(); //Removes the Raked Patch } } else if (canHarvest(player, object) && (player.getInventory().getFreeSlots() < 4)) { player.getPackets().sendGameMessage("You need more inventory space!"); } } /** * Sends the Farming crops to the Players Inventory */ private static boolean harvestGood = false; private static boolean harvesting = false; private static void sendItems(Player player, WorldObject object) { for (PatchStatus patch : player.farmingPatch) { if (patch.getObjectId() == object.getId()) { for (Seeds.Seed seed : Seed.values()) { for (int i = 0; i < seed.getSuitablePatch().length; i++) { if (seed.getSuitablePatch()[i] == object.getId()) { if ((seed.getConfigValues()[seed.getConfigValues().length-1] == patch.getMaxConfigValue()) && (patch.getObjectId() == object.getId())) { player.lock(); player.getSkills().addXp(Skills.FARMING, seed.getSeedExp()); player.setNextAnimation(new Animation(2286)); player.getInventory().addItem(seed.getProduce()); player.getPackets().sendGameMessage("You harvest the "+new Item(seed.getProduce().getId(), 1).getDefinitions().getName()+"'s."); clearPatch(player, object); player.farmingPatch.remove(patch); player.unlock(); return; } } } } } } } private static void clearPatch(Player player, WorldObject object) { player.getPackets().sendConfigByFile(object.getDefinitions().configFileId, 0); } /** * Can the Player Harvest? */ public static boolean canHarvest(Player player, WorldObject object) { for (PatchStatus patch : player.farmingPatch) { if (patch.getConfigId() == object.getDefinitions().configFileId) { if ((patch.getConfigValue() + 1) == patch.getMaxConfigValue()) { return true; } } } return false; } /** * Sends the Configs Upon Login */ public static void sendPatchOnLogin(Player player) { player.rakedPatch.clear(); for (PatchStatus patch : player.farmingPatch) { int growTime = patch.getPatchTime() / 2; WorldTasksManager.schedule(new WorldTask() { [MENTION=15855]Over[/MENTION]ride public void run() { if (player.farmingPatch.size() == 0) { stop(); return; } //for (PatchStatus patch : player.farmingPatch) { if ((patch.getConfigValue() + 1) == patch.getMaxConfigValue()) { player.getPackets().sendConfigByFile(patch.getConfigId(), patch.getMaxConfigValue()); player.getPackets().sendGameMessage("[Farming] Your crops have fully grown."); stop(); } else { player.farmingPatch.add(new PatchStatus(patch.getObjectId(), patch.getConfigId(), patch.getConfigValue() + 1, patch.getMaxConfigValue(), patch.getInspectText(),patch.getPatchTime())); player.getPackets().sendConfigByFile(patch.getConfigId(), patch.getConfigValue() + 1); player.farmingPatch.remove(patch); } //} } }, 0, growTime); //continueGrowth(player); } } /** * Continues the Growth of the crops when the player logs back in. */ // private static int pTime; /* public static void continueGrowth(final Player player) { WorldTasksManager.schedule(new WorldTask() { [MENTION=15855]Over[/MENTION]ride public void run() { if (player.farmingPatch.size() == 0) { stop(); return; } for (PatchStatus patch : player.farmingPatch) { pTime = patch.getPatchTime() / 2; if ((patch.getConfigValue() + 1) == patch.getMaxConfigValue()) { player.getPackets().sendConfigByFile(patch.getConfigId(), patch.getMaxConfigValue()); player.getPackets().sendGameMessage("[Farming] Your crops have fully grown."); stop(); } else { player.farmingPatch.add(new PatchStatus(patch.getObjectId(), patch.getConfigId(), patch.getConfigValue() + 1, patch.getMaxConfigValue(), patch.getInspectText(),patch.getPatchTime())); player.getPackets().sendConfigByFile(patch.getConfigId(), patch.getConfigValue() + 1); player.farmingPatch.remove(patch); } } } }, 0, pTime); } */ /** * Rakes the patch */ private static void rake(final Player player, final WorldObject object) { if (!player.getInventory().containsItem(5341, 1)) { player.getPackets().sendGameMessage("You'll need a rake to get rid of the weeds."); return; } if (player.getInventory().getFreeSlots() >= 3) { WorldTasksManager.schedule(new WorldTask() { int loop; int configValue; [MENTION=15855]Over[/MENTION]ride public void run() { player.lock(); if (loop == 0 || loop == 3 || loop == 6) { configValue++; player.setNextAnimation(new Animation(2273)); player.getPackets().sendConfigByFile(object.getDefinitions().configFileId, configValue); player.getInventory().addItem(6055, 1); player.getSkills().addXp(Skills.FARMING, 25); player.rakedPatch.add(object); } else if (loop >= 7) { player.unlock(); stop(); } loop++; } }, 0, 1); player.getPackets().sendGameMessage("You successfully clear all the weeds."); } else if (player.getInventory().getFreeSlots() < 3) { player.getPackets().sendGameMessage("You need more inventory space to rake here."); } } /** * Right Click Patch - Inspect Option - Call this in ObjectHandler - Option2 */ public static void inspectPatch(Player player, WorldObject object) { if (player.farmingPatch.size() == 0) { player.getDialogueManager().startDialogue("SimpleMessage", "There is currently nothing growing here."); return; } for (PatchStatus patch : player.farmingPatch) { if (object.getId() == patch.getObjectId()) { player.getDialogueManager().startDialogue("SimpleMessage", ""+patch.getInspectText()+" ; Configid: "+patch.getConfigValue()); } else { player.getDialogueManager().startDialogue("SimpleMessage", "There is currently nothing growing here."); } } } }[/CODE] Next, my PatchStatus.java object: [CODE]package com.rs.game.player.content.farming; import java.io.Serializable; public class PatchStatus implements Serializable { /** * @author Jake | Santa Hat [MENTION=77]Rune[/MENTION]-Server */ private static final long serialVersionUID = 4641462661859309514L; private int objectId; private int configId; private int configValue; private int maxConfigValue; private String inspect; private int patchTime; public PatchStatus(int objectId, int configId, int configValue, int maxConfigValue, String inspect, int patchTime) { this.objectId = objectId; this.configId = configId; this.configValue = configValue; this.maxConfigValue = maxConfigValue; this.inspect = inspect; this.patchTime = patchTime; } public int getObjectId() { return objectId; } public int getConfigId() { return configId; } public int getConfigValue() { return configValue; } public int getMaxConfigValue() { return maxConfigValue; } public String getInspectText() { return inspect; } public int getPatchTime() { return patchTime; } }[/CODE] And finally, my Seeds.java: [CODE]package com.rs.game.player.content.farming; import com.rs.game.item.Item; public class Seeds { /** * @author Jake | Santa Hat [MENTION=77]Rune[/MENTION]-Server */ public enum Seed { /** * Allotments */ POTATO(new Item(5318, 4), new int[] { 6, 7, 8, 9, 10 }, 1, new Item(1942, 4), new int[] { 8553, 8552, 8550, 8551, 8554, 8555 }, 300, 25), ONION(new Item(5319, 4), new int[] { 13, 14, 15, 16, 17 }, 5, new Item(1957, 4), new int[] { 8553, 8552, 8550, 8551, 8554, 8555 }, 330, 55), CABBAGE(new Item(5324, 4), new int[] { 20, 21, 22, 23, 24 }, 7, new Item(1965, 4), new int[] { 8553, 8552, 8550, 8551, 8554, 8555 }, 360, 85), TOMATO(new Item(5322, 4), new int[] { 27, 28, 29, 30, 31 }, 12, new Item(1982, 4), new int[] { 8553, 8552, 8550, 8551, 8554, 8555 }, 420, 110), SWEETCORN(new Item(5320, 4), new int[] { 34, 35, 37, 39, 40 }, 20, new Item(5986, 4), new int[] { 8553, 8552, 8550, 8551, 8554, 8555 }, 480, 200), STRAWBERRY(new Item(5323, 4), new int[] { 43, 45, 46, 48, 49 }, 31, new Item(5504, 4), new int[] { 8553, 8552, 8550, 8551, 8554, 8555 }, 540, 301), WATERMELON(new Item(5321, 4), new int[] { 52, 53, 55, 59, 60 }, 47, new Item(5982, 4), new int[] { 8553, 8552, 8550, 8551, 8554, 8555 }, 600, 550), /** * Flower Patches */ MARIGOLD(new Item(5096, 1), new int[] { 8, 9, 10, 11, 12 }, 2, new Item(6010, 1), new int[] { 7848, 7847, 7849 }, 310, 30), ROSEMARY(new Item(5097, 1), new int[] { 13, 14, 15, 16, 17 }, 11, new Item(6014, 1), new int[] { 7848, 7847, 7849 }, 400, 45), NASTURTIUM(new Item(5098, 1), new int[] { 18, 19, 20, 21, 22 }, 24, new Item(6012, 1), new int[] { 7848, 7847, 7849 }, 480, 110), WOAD(new Item(5099, 1), new int[] { 23, 24, 25, 26, 27 }, 25, new Item(1793, 1), new int[] { 7848, 7847, 7849 }, 490, 120), LIMPWURT(new Item(5100, 1), new int[] { 28, 29, 30, 31, 32 }, 26, new Item(225, 1), new int[] { 7848, 7847, 7849 }, 500, 130), LILY(new Item(14589, 1), new int[] { 37, 38, 39, 40, 41 }, 52, new Item(14583, 1), new int[] { 7848, 7847, 7849 }, 700, 450), /** * Herb Patches */ GUAM(new Item(5291, 1), new int[] { 4, 5, 6, 7, 8 }, 9, new Item(199, 4), new int[] { 8151, 8150, 8152 }, 360, 50), MARRENTILL(new Item(5292, 1), new int[] { 11, 12, 13, 14, 15 }, 14, new Item(201, 4), new int[] { 8151, 8150, 8152 }, 420, 80), TARROMIN(new Item(5293, 1), new int[] { 18, 19, 20, 21, 22 }, 19, new Item(203, 4), new int[] { 8151, 8150, 8152 }, 480, 110), HARRALANDER(new Item(5294, 1), new int[] { 25, 26, 27, 28, 29 }, 26, new Item(205, 4), new int[] { 8151, 8150, 8152 }, 540, 150), RANARR(new Item(5295, 1), new int[] { 32, 33, 34, 35, 36 }, 32, new Item(207, 4), new int[] { 8151, 8150, 8152 }, 600, 190), TOADFLAX(new Item(5296, 1), new int[] { 39, 40, 41, 42, 43 }, 38, new Item(3049, 4), new int[] { 8151, 8150, 8152 }, 660, 225), IRIT(new Item(5297, 1), new int[] { 46, 47, 48, 49, 50 }, 44, new Item(209, 4), new int[] { 8151, 8150, 8152 }, 720, 270), AVANTOE(new Item(5298, 1), new int[] { 53, 54, 55, 56, 57 }, 50, new Item(211, 4), new int[] { 8151, 8150, 8152 }, 780, 300), WERGALI(new Item(14870, 1), new int[] { 60, 61, 62, 63, 64 }, 46, new Item(14836, 4), new int[] { 8151, 8150, 8152 }, 750, 285), KWUARM(new Item(5299, 1), new int[] { 69, 70, 71, 72, 73 }, 56, new Item(213, 4), new int[] { 8151, 8150, 8152 }, 820, 325), SNAPDRAGON(new Item(5300, 1), new int[] { 75, 76, 77, 78, 79 }, 62, new Item(3051, 4), new int[] { 8151, 8150, 8152 }, 880, 360), CADANTINE(new Item(5301, 1), new int[] { 82, 83, 84, 85, 86 }, 67, new Item(215, 4), new int[] { 8151, 8150, 8152 }, 920, 390), LANTADYME(new Item(5302, 1), new int[] { 89, 90, 91, 92, 93 }, 73, new Item(2485, 4), new int[] { 8151, 8150, 8152 }, 980, 420), DWARF_WEED(new Item(5303, 1), new int[] { 96, 97, 98, 99, 100 }, 79, new Item(217, 4), new int[] { 8151, 8150, 8152 }, 1020, 480), TORSTOL(new Item(5304, 1), new int[] { 103, 104, 105, 106, 107 }, 85, new Item(219, 4), new int[] { 8151, 8150, 8152 }, 1080, 520), FELLSTALK(new Item(21621, 1), new int[] { 106, 107, 108, 109, 110 }, 91, new Item(21626, 4), new int[] { 8151, 8150, 8152 }, 1120, 670); private Item item; private int[] configValues; private int level; private Item produce; private int[] suitablePatches; private int time; //Time to grow (In Seconds) private int exp; Seed(Item item, int[] configValues, int level, Item produce, int[] suitablePatches, int time, int exp) { this.item = item; this.configValues = configValues; this.level = level; this.produce = produce; this.suitablePatches = suitablePatches; this.time = time; this.exp = exp; } public Item getItem() { return item; } public int[] getConfigValues() { return configValues; } public int getLevel() { return level; } public int getSeedExp() { return exp; } public Item getProduce() { return produce; } public int[] getSuitablePatch() { return suitablePatches; } public int getTime() { return time; } } }[/CODE] These 3 files contain the majority of my farming system. As well, if you follow the tutorial for the original code, then update to mine, you should have a very functional farming system. I also added if statements to my Objecthandler.java to prevent the "Nothing interesting happens" message when interacting with the patches. You will have to add one statement in the HandleOption1 method, and one in the ItemonObject method. Features: -Fully supported Allotments -All Flowers -All Herbs -Raking -Planting, growth, harvesting -Proper rewards -Experience rates and growth times are set high, these can be easily changed in Seeds.java -Logout/Server restart does not hinder growth -Shovel will clear growing/grown/bugged plants -Player animations should be set to prevent glitched positioning -Improved indexing and the harvesting to prevent concurrentmodification exceptions, as well as Invalid array exceptions -Expanded the PatchStatus object to include growth time and help improve the farming experience As well, since this is still in development, I have left my commented out code in the classes. This may be clutter but it may provide useful when debugging, so I have left it for other users.
  4. Greetings gentlemen and gentleladies, I have become extremely frustrated with matrix at this point. A few hours of searching have pretty well resulted in the same issue over and over. First I simply added the spawns in packedspawns.txt, deleted the .p and restarted. All dandy, they spawned. They didn't move however, and I wasn't able to attack them. Then I began to tweak the combat definitions, still with no luck. Moved onto the NPC.java to enable walking. Added: [code]if(id == 1265) setRandomWalk(false); //also tried true if(id == 1267) setRandomWalk(false); //also tried true [/code] Above: [code]if (isForceWalking()) {[/code] Still won't move. Tried various other solutions. Then I tried this tutorial: [url]https://www.moparscape.org/smf/index.php?topic=553733.0[/url] Still nothing. Am I missing something, as that tutorial added the spawns via an old method, why am I unable to make them move? Is there some method somewhere stopping their movement that I need to override? I also tried adding a case here in NPC.java: [code]private static boolean forceRandomWalk(int npcId) { switch (npcId) { case 11226: return true; case 3341: case 3342: case 3343: case 1267: case 1265: return true; default: return false; /* * default: return NPCDefinitions.getNPCDefinitions(npcId).name * .equals("Icy Bones"); */ } }[/code] Again no luck for movement. Thanks for the help fellas! [s]EDIT: NPC 1267 is attackable, but not 1265.[/s] Nevermind, only attackable when spawned by command. [B][U]SOLVED![/U][/B] To fix this issue, go into your unpackedspawns.txt, and remove any inline comments from your spawns: From: [code] 580 - 2588 3088 0 //MAGE TRADER 2 BANK [/code] To: [code] //MAGE TRADER 2 BANK 580 - 2588 3088 0 [/code]
  5. I need help to add shops on a 718 matrix rsps im new to this I just wanna learn so I may play with my friends and what not any help will be great...:) just tell me what to do
  6. Hello Everyone, After a bit of fiddling, I decided to go ahead and begin fixing runecrafting on my server. However, when I teleported to the rune essence mine to test the area, I was unable to walk. I teleported to 2931 4819 -4. This seemed to work, hear the wind noise and see all the objects etc... However, I cannot walk or move at all. I can teleport back out, and I can interact with myself. Is there a guide for adding new areas or is there some simple fix? Thanks! :cool:
  7. I use the code to make me owner but than when u go to log on it comes up with this I need help>.>.> ERROR! THREAD NAME: New I/O worker [URL=http://www.runelocus.com/forums/usertag.php?do=list&action=hash&hash=1]#1[/URL] java.lang.Error: Unresolved compilation problem: at com.rs.game.player.Player.getPassword(Player.java:964) at com.rs.net.decoders.LoginPacketsDecoder.decodeWorldLogin(LoginPacketsDecoder.java:176) at com.rs.net.decoders.LoginPacketsDecoder.decode(LoginPacketsDecoder.java:41) at com.rs.net.ServerChannelHandler.messageReceived(ServerChannelHandler.java:98) at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:95) at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:563) at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:558) at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268) at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255) at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:91) at org.jboss.netty.channel.socket.nio.AbstractNioWorker.processSelectedKeys(AbstractNioWorker.java:373) at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:247) at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35) at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102) at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) ERROR! THREAD NAME: New I/O worker [URL=http://www.runelocus.com/forums/usertag.php?do=list&action=hash&hash=1]#1[/URL]
  8. Edit: i tun graphic in very low and its work.
  9. how can i solve these 3 errors? ( they are in the bottum of the compiler) src\Class_ra_Sub3.java:15: warning: Unsafe is internal proprietary API and may b e removed in a future release import sun.misc.Unsafe; ^ src\Class387_Sub3.java:6: warning: Unsafe is internal proprietary API and may be removed in a future release import sun.misc.Unsafe; ^ src\Class457.java:78: warning: Win32GraphicsDevice is internal proprietary API a nd may be removed in a future release Field field = sun.awt.Win32GraphicsDevice.class. getDeclaredField("valid"); ^ src\Class457.java:93: warning: Win32GraphicsDevice is internal proprietary API a nd may be removed in a future release Field field = sun.awt.Win32Graph icsDevice.class.getDeclaredField("valid"); ^ src\Class457.java:103: warning: Win32GraphicsDevice is internal proprietary API and may be removed in a future release Field field = sun.awt.Win32GraphicsDevic e.class.getDeclaredField("valid"); ^ src\Class_ra_Sub3.java:35: warning: Unsafe is internal proprietary API and may b e removed in a future release public Unsafe anUnsafe8219; ^ src\Class_ra_Sub3.java:2864: warning: Unsafe is internal proprietary API and may be removed in a future release Field field = sun.misc.Unsafe.class.getDeclaredF ield("theUnsafe"); ^ src\Class_ra_Sub3.java:2866: warning: Unsafe is internal proprietary API and may be removed in a future release anUnsafe8219 = (Unsafe) field.get(null); ^ src\Class387_Sub3.java:157: warning: Unsafe is internal proprietary API and may be removed in a future release Unsafe unsafe = ((Class387_Sub3) this).aClass_ra_Sub3_7894.anUns afe8219; ^ src\Class387_Sub3.java:2636: warning: Unsafe is internal proprietary API and may be removed in a future release Unsafe unsafe = ((Class387_Sub3) this).aClass_ra_Sub3_78 94.anUnsafe8219; ^ src\Class387_Sub3.java:2668: warning: Unsafe is internal proprietary API and may be removed in a future release Unsafe unsafe = ((Class387_Sub3) this).aClass_ra_Sub3_78 94.anUnsafe8219; ^ src\Class387_Sub3.java:2815: warning: Unsafe is internal proprietary API and may be removed in a future release Unsafe unsafe = ((Class387_Sub3) this).aClass_ra_Sub3_78 94.anUnsafe8219; ^ src\Class387_Sub3.java:2854: warning: Unsafe is internal proprietary API and may be removed in a future release Unsafe unsafe = ((Class387_Sub3) this).aClass_ra_Sub3_78 94.anUnsafe8219; ^ [B]src\Class466.java:12: error: cannot find symbol JSObject.getWindow(applet).eval(string); ^ symbol: method getWindow(Applet) location: class JSObject src\Class466.java:20: error: cannot find symbol return JSObject.getWindow(applet).call(string, null); ^ symbol: method getWindow(Applet) location: class JSObject src\Class466.java:28: error: cannot find symbol return JSObject.getWindow(applet).call(string, objects); ^ symbol: method getWindow(Applet) location: class JSObject[/B] src\Class481_Sub1.java:74: warning: AuthenticationInfo is internal proprietary A PI and may be removed in a future release ttp.AuthenticationInfo.class; ^ Note: Some input files use unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. 3 errors 14 warnings Druk op een toets om door te gaan. . . ^ Note: Some input files use unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. 3 errors 14 warnings Druk op een toets om door te gaan. . .
  10. every time i try to edit player files to give commands/donator etc. the files aren't like 317-525. they are full of nullified characters that aren't translated via notepad++. I've had this problem for awhile and i just wanna code for sport. Please help<3[ATTACH=CONFIG]10779[/ATTACH]
  11. I can't seem to find a working link to a somewhat clean Matrix source alone nevermind with a client. Anyone have a link to one? Preferbly a thread not a directdl.
  12. letifer

    Matrix items issue

    how do i change the items so the owner can wear anything. right now it still says i hav to vote to wear stuff and be a donator. anybody have a clue how to change that? what steps need to be done? thanks guys!
  13. Hey guys i get this error when I'm loading the server: [Launcher] Initing Server Channel Handler... org.jboss.netty.channel.ChannelException: Failed to bind to: 0.0.0.0/0.0.0.0:43594 at org.jboss.netty.bootstrap.ServerBootstrap.bind(ServerBootstrap.java:298) at com.rs.net.ServerChannelHandler.<init>(ServerChannelHandler.java:49) at com.rs.net.ServerChannelHandler.init(ServerChannelHandler.java:28) at com.rs.Launcher.main(Launcher.java:101) Caused by: java.net.BindException: Address already in use: bind at sun.nio.ch.Net.bind0(Native Method) at sun.nio.ch.Net.bind(Net.java:436) at sun.nio.ch.Net.bind(Net.java:428) at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:214) at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink.bind(NioServerSocketPipelineSink.java:138) at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink.handleServerSocket(NioServerSocketPipelineSink.java:90) at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink.eventSunk(NioServerSocketPipelineSink.java:64) at org.jboss.netty.channel.Channels.bind(Channels.java:569) at org.jboss.netty.channel.AbstractChannel.bind(AbstractChannel.java:187) at org.jboss.netty.bootstrap.ServerBootstrap$Binder.channelOpen(ServerBootstrap.java:343) at org.jboss.netty.channel.Channels.fireChannelOpen(Channels.java:170) at org.jboss.netty.channel.socket.nio.NioServerSocketChannel.<init>(NioServerSocketChannel.java:80) at org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory.newChannel(NioServerSocketChannelFactory.java:158) at org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory.newChannel(NioServerSocketChannelFactory.java:86)ERROR! THREAD NAME: main [Launcher] Failed initing Server Channel Handler. Shutting down... at org.jboss.netty.bootstrap.ServerBootstrap.bind(ServerBootstrap.java:277) ... 3 more any help will be appreciated!
  14. Hey guys, There is an issue with the equipment interface after using the bank, this is on all original 718 matrix base's released by Dragonkk. I have been looking for several hours now through the code to see if i can figure what is the problem with it, from what i can see there really shouldn't be an issue.. While in-game you use the bank and then close it --> then click on Show Equipment Stats it does not open the final interface for the equipment bonuses, you have to click away on the minimap then click Show Equipment Stats again to get it to open the interface. I am just wondering if anyone knows any fixes for this any hint/tip is would be very helpful. A rep + a thank you is considered in any information on fixing this. Thank you if you have read this post please please please feel free to post any reply to my topic it would be much appreciated
  15. [FONT=Comic Sans MS][SIZE=5][COLOR="#FFD700"]Hi Runelocus, Wanted to test out a server, but when I run the client (which loads fine) it crash right after loading "Fetching Updates". Im getting an error message on the client panel, here is what it's saying: [IMG]https://dl.dropboxusercontent.com/u/59261058/error.png[/IMG] Anyone has an idea on how to fix this? I have checked the revision in both source & client already. [/COLOR][/SIZE][/FONT]
  16. Hello people, So i was trying matrix 718 and i found something that i don't know how to fix it. I have searched up on google for a fix but that didn't help. So i kinda hoped that someone here can help me out. When i wear full rune, magic doesn't work then. when i attack a rockcrab or something then it doesn't hit him while wearing full rune. when i take everything off, the magic spell hits the rockcrab. already thanks for taking time to read this. - DevolutionZ //Sorry for my bad english :P
  17. Hey guys, i have honest to god been searching the internet for a fix for this matrix complier error, ive downloaded a million and one "fixed" clients... no luck anyone got any idea - i know this is going to be a super nub question sorry. [CODE] starting... src\Class_ra_Sub3.java:15: warning: Unsafe is internal proprietary API and may b e removed in a future release import sun.misc.Unsafe; ^ src\Class387_Sub3.java:6: warning: Unsafe is internal proprietary API and may be removed in a future release import sun.misc.Unsafe; ^ src\Class457.java:91: warning: Win32GraphicsDevice is internal proprietary API a nd may be removed in a future release Field field = sun.awt.Win32GraphicsDevice.class ^ src\Class457.java:112: warning: Win32GraphicsDevice is internal proprietary API and may be removed in a future release sun.awt.Win32Gra phicsDevice.class ^ src\Class457.java:124: warning: Win32GraphicsDevice is internal proprietary API and may be removed in a future release Field field = sun.awt.Win32GraphicsDevic e.class ^ src\Class_ra_Sub3.java:35: warning: Unsafe is internal proprietary API and may b e removed in a future release public Unsafe anUnsafe8219; ^ src\Class_ra_Sub3.java:3234: warning: Unsafe is internal proprietary API and may be removed in a future release Field field = sun.misc.Unsafe.class ^ src\Class_ra_Sub3.java:3237: warning: Unsafe is internal proprietary API and may be removed in a future release anUnsafe8219 = (Unsafe) field.get(null); ^ src\Class387_Sub3.java:158: warning: Unsafe is internal proprietary API and may be removed in a future release Unsafe unsafe = ((Class387_Sub3) this).aClass_ra_Sub3_7894.anUns afe8219; ^ src\Class387_Sub3.java:3280: warning: Unsafe is internal proprietary API and may be removed in a future release Unsafe unsafe = ((Class387_Sub3) this).aClass_ra_Sub3_78 94.anUnsafe8219; ^ src\Class387_Sub3.java:3326: warning: Unsafe is internal proprietary API and may be removed in a future release Unsafe unsafe = ((Class387_Sub3) this).aClass_ra_Sub3_78 94.anUnsafe8219; ^ src\Class387_Sub3.java:3510: warning: Unsafe is internal proprietary API and may be removed in a future release Unsafe unsafe = ((Class387_Sub3) this).aClass_ra_Sub3_78 94.anUnsafe8219; ^ src\Class387_Sub3.java:3553: warning: Unsafe is internal proprietary API and may be removed in a future release Unsafe unsafe = ((Class387_Sub3) this).aClass_ra_Sub3_78 94.anUnsafe8219; ^ src\Class466.java:12: error: cannot find symbol JSObject.getWindow(applet).eval(string); ^ symbol: method getWindow(Applet) location: class JSObject src\Class466.java:22: error: cannot find symbol return JSObject.getWindow(applet).call(string, null); ^ symbol: method getWindow(Applet) location: class JSObject src\Class466.java:32: error: cannot find symbol return JSObject.getWindow(applet).call(string, objects); ^ symbol: method getWindow(Applet) location: class JSObject src\Class481_Sub1.java:89: warning: AuthenticationInfo is internal proprietary A PI and may be removed in a future release Class var_class = sun.net.[url]www.protocol.h[/url] ttp.AuthenticationInfo.class; ^ Note: Some input files use unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. 3 errors 14 warnings Press any key to continue . . . [/CODE] Thanks Ethan
  18. Hi there i had a question about the starter.java from the matrix source. Everytime if i make the dialogue handle more stages then it will just not happen... Like the regular matrix start lets you choose a combat class **sort of** The dialogue gives you a optionhandling for 3 classes. knight, mage,rogue Once you choose one of these classes then it will unlock your character and close all the interfaces handled. But now my problem. When i made the dialogue longer so after you choose your combat class, you can choose something else. So as example i made option 1 send you to another stage, so to even more options. But this won't happen. If i add more stages to the dialogue. then it will get stuck on the option that you choose. as example this code [QUOTE] public void run(int interfaceId, int componentId) { if (stage == 1) { if (componentId == OPTION_1) { stage = 30; player.getInventory().addItem(995, 10000); player.getInventory().addItem(1087, 1); player.getInventory().addItem(1103, 1); player.getInventory().addItem(1277, 1); player.getInventory().addItem(1173, 1); player.getInventory().addItem(1061, 1);[/QUOTE] But it will not send me to stage 30 since it will get stuck on the option. *yes i made a stage 30 with more options* and i made stage 30 unlock your character and close all interfaces. but still my problem persists.. Any solutions? thank you for your time,.
  19. When i move a litle bit with my keys or when im moving somethimes my client is crashing and i get this error message: [QUOTE] File ID: 1, details: 45 / [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44] Error: za.H za.method581:50 ja.method4989:585 GraphicsToolkit.method4988:41 clie nt.method2792:711 client.method2774:617 Class291.method2760:405 Class291.method2 759:376 Class291.run:323 java.lang.Thread.run | java.lang.UnsatisfiedLinkError: za.H(IIII)V | za.H(IIII)V 0,0,104,104 0,8,8 2 0 1 765,553 0 0 0 0 0 0 248 19 20 37 hAJWGrsaETglRjuwxMwnlA/d5W6EgYWx 61450000 java.io.FileNotFoundException: [url]http://127.0.0.1/clienterror.ws?c=718&cs=1&u=0&v1[/url] =Oracle+Corporation&v2=1.7.0_60&e=za.H+za.method581%3A50+ja.method4989%3A585+Gra phicsToolkit.method4988%3A41+client.method2792%3A711+client.method2774%3A617+Cla ss291.method2760%3A405+Class291.method2759%3A376+Class291.run%3A323+java.lang.Th read.run+%7C+java.lang.UnsatisfiedLinkError%3A+za.H%28IIII%29V+%7C+za.H%28IIII%2 9V++0%2C0%2C104%2C104+0%2C8%2C8+2+0+1+765%2C553+0+0+0+0+0+0+248+19+2037+hAJWGrsa ETglRjuwxMwnlA%2Fd5W6EgYWx+61450000 at sun.net.[url]www.protocol.http.HttpURLConnection.getInputStream(Unknown[/url] So urce) at java.net.URL.openStream(Unknown Source) at IPAddress.method6062(IPAddress.java:127) at client.method2774(client.java:621) at Class291.method2760(Class291.java:405) at Class291.method2759(Class291.java:376) at Class291.run(Class291.java:323) at java.lang.Thread.run(Unknown Source) Error: rw.k() ck.i() wb.bo() ft.in() aei.kk() aei.kk() sm.kt() ef.kl() nk.ia() c lient.fy() client.ao() mc.w() mc.e() | Class387_Sub1.pa:1436 ObjectDefinitions.m ethod5785:878 Class60.method700:111 Class365_Sub1_Sub1_Sub5.method4394:49 Class3 31.method4046:1121 Class331.method4041:1000 Class331.method4040:890 Class142.met hod1570:145 Class422_Sub24.method5714:161 Class422_Sub24.method5714:221 Class448 .method5912:95 Class104.method1104:64 Class322.method3932:70 client.method2792:6 93 client.method2774:626 Class291.method2760:405 Class291.method2759:376 Class29 1.run:323 java.lang.Thread.run | java.lang.ArithmeticException: / by zero | 292 8,3224,104,104 0,2979,3277 0 0 1 765,553 0 0 0 0 0 0 248 0 2037 hAJWGrsaETglRjuw xMwnlA/d5W6EgYWx java.io.FileNotFoundException: [url]http://127.0.0.1/clienterror.ws?c=718&cs=1&u=Sher[/url] shah&v1=Oracle+Corporation&v2=1.7.0_60&e=rw.k%28%29+ck.i%28%29+wb.bo%28%29+ft.in %28%29+aei.kk%28%29+aei.kk%28%29+sm.kt%28%29+ef.kl%28%29+nk.ia%28%29+client.fy%2 8%29+client.ao%28%29+mc.w%28%29+mc.e%28%29+%7C+Class387_Sub1.pa%3A1436+ObjectDef initions.method5785%3A878+Class60.method700%3A111+Class365_Sub1_Sub1_Sub5.method 4394%3A49+Class331.method4046%3A1121+Class331.method4041%3A1000+Class331.method4 040%3A890+Class142.method1570%3A145+Class422_Sub24.method5714%3A161+Class422_Sub 24.method5714%3A221+Class448.method5912%3A95+Class104.method1104%3A64+Class322.m ethod3932%3A70+client.method2792%3A693+client.method2774%3A626+Class291.method27 60%3A405+Class291.method2759%3A376+Class291.run%3A323+java.lang.Thread.run+%7C+j ava.lang.ArithmeticException%3A+%2F+by+zero+%7C++2928%2C3224%2C104%2C104+0%2C297 9%2C3277+0+0+1+765%2C553+0+0+0+0+0+0+248+0+2037+hAJWGrsaETglRjuwxMwnlA%2Fd5W6EgY Wx at sun.net.[url]www.protocol.http.HttpURLConnection.getInputStream(Unknown[/url] So urce) at java.net.URL.openStream(Unknown Source) at IPAddress.method6062(IPAddress.java:127) at Class291.run(Class291.java:327) at java.lang.Thread.run(Unknown Source) error_game_crash [/QUOTE] Anyone knows how to fix this? Thanks for responding
  20. shershah

    Mod command Matrix

    Hi, can sombody make a command to take away sombody's moderator position? On my server is 1 the ranking amount. Thanks. Its a matrix server.
  21. Why this was done? To make it easier for you; you know which title you are giving to player instead of checking them all trought live game. I have a different use for this though, and I want to contribrute RSPS community. TitleManager.java (com.rs.game.player.content) [CODE]package com.enso.game.player.content; import com.enso.game.player.Player; /** * * @author Fuzen Seth * @information Represents a title manager. * @since 22.6.2014 */ public class TitleManager { /** * Title instance. */ private Titles title; /** * @author Fuzen Seth * @information Holds the title ids. */ public enum Titles { JR_CADET(1),SEARJANT(2),COMMMANDER(3),WAR_CHIEF(4), SIR(5),LORD(6),DUDERINO(7),LIONHEART(8),HELLRAISER(9),RUSADOR(10), DESPORADO(11),BARON(12),COUNT(13),OVERLORD(14),BANDITO(15),DUKE(16), KING(17),BIG_CHEESE(18),BIGWIG(19),WUNDERKIND(20),VYRELING(21),VYREGRUNT(22), VYREWATCH(23), VYRELORD(24), EMPEROR(26), PRINCE(27), WITCH_KING(28), ARCHON(29), JUSTICIAR(30), THE_AWESOME(31); private int titleId; private Titles(int titleId) { this.titleId = titleId; } public int getTitleId() { return titleId; } public void setTitleId(int titleId) { this.titleId = titleId; } } /** * Get the titles. * @return */ public Titles getTitle() { return title; } /** * Removes the title from player. * @param player */ public void removeTitle(Player player) { if (!(player.getAppearence().getTitle() > 0)) { player.getDialogueManager().startDialogue("SimpleMessage", "You don't have a title."); return; } player.getAppearence().setTitle(-1); player.getAppearence().getAppeareanceData(); player.getDialogueManager().startDialogue("SimpleMessage", "Your title has been removed."); } /** * Adds player a title next to his username. * @param player * @param title */ public void setTitle(Player player, Titles title) { this.title = title; player.getAppearence().setTitle(title.getTitleId()); player.getDialogueManager().startDialogue("SimpleMessage", "Your title has been changed."); } } [/CODE] Add this stuff in player java: [CODE]private TitleManager titleManager = new TitleManager();[/CODE] Now this with other getters. [CODE] public TitleManager getTitleManager() { return titleManager; }[/CODE] Add this in Appearence.java [CODE] public int getTitle() { return title; }[/CODE] Little tutorial: How would I now call a title / how I set it to player? Super easy, this is how you do it. [CODE]player.getTitleManager().setTitle(Titles.THE_AWESOME);[/CODE] Hope it helps. ;)
  22. I wouldn't made a java file but my Caskets java got more content. About the release: I'm giving you a simple casket opening system, it contains no bugs and can be used straight away. [B] NOTE: MY packaging is different than yours, please replace the com.enso. imports to com.rs.[/B] Let's begin. So first you add Caskets.java to com.rs.game.player.content; [CODE]package com.enso.game.player.content; import com.enso.game.item.Item; import com.enso.game.player.Player; import com.enso.utils.Utils; /** * @author Fuzen Seth * @information Represents the caskets. */ public class Caskets { /** * Casket rewards. */ private static final int[] ITEM_REWARDS = {1712, 1215, 4587, 1305, 1079, 1127, }; /** * Open a casket. */ public static final boolean lootCasket(Player player, Item item) { if (player.isDead()) return false; if (item.getName().equals("Casket")) { player.getInventory().deleteItem(item.getId(), 1); player.addStopDelay(1); player.sendMessage("You loot the casket!"); switch (Utils.getRandom(1)) { case 0: // The gold coin reward. if (!player.isDonator()) player.getInventory().addItem(995, Utils.random(50000, 150000)); else player.getInventory().addItem(995, Utils.random(75000, 190000)); return true; case 1: //The item reward. player.getInventory().addItem(ITEM_REWARDS[Utils.getRandom(ITEM_REWARDS.length - 1)], 1); return true; } } return false; } } [/CODE] Next go to InventoryOptions handler and add this [CODE] if (Caskets.lootCasket(player, item)) return;[/CODE] Hope I saved your time. :) Picture [img]http://puu.sh/9GjAL/f5005da6c4.jpg[/img]
  23. Does sombody have a cache for a matrix server 718+ with inside the cache drygores. Thanks would be appriciated. Give me the link.
  24. What's it used for? - It logs commands some one used. How is it helpful? - If you have a dupe related to a command you can figure out what command is being used *if you have it added to that command*. I had corrupt staff, and I had to figure out what they were doing etc.. Let's begin. First, open commands.java We'll use it with the ban command. [CODE] case "ban": name = ""; for (int i = 1; i < cmd.length; i++) name += cmd[i] + ((i == cmd.length - 1) ? "" : " "); target = World.getPlayerByDisplayName(name); if (target != null) { target.setBanned(Utils.currentTimeMillis() + (48 * 60 * 60 * 1000)); target.getSession().getChannel().close(); player.getPackets().sendGameMessage("You have banned 48 hours: "+target.getDisplayName()+"."); try { File file = new File("data/logs/ban.txt"); BufferedWriter writer = new BufferedWriter(new FileWriter( file, true)); writer.write ("[" + currentTime("dd MMMMM yyyy 'at' hh:mm:ss z") + "]" + player.getDisplayName() + " banned " + target.getDisplayName() + "for 48 hours."); writer.newLine(); writer.flush(); } catch (IOException e) { e.printStackTrace(); } return true; } else { name = Utils.formatPlayerNameForProtocol(name); if(!SerializableFilesManager.containsPlayer(name)) { player.getPackets().sendGameMessage( "Account name "+Utils.formatPlayerNameForDisplay(name)+" doesn't exist."); return true; } target = SerializableFilesManager.loadPlayer(name); target.setUsername(name); target.setBanned(Utils.currentTimeMillis() + (48 * 60 * 60 * 1000)); player.getPackets().sendGameMessage( "You have banned 48 hours: "+Utils.formatPlayerNameForDisplay(name)+"."); SerializableFilesManager.savePlayer(target); } return true; [/CODE] ^ that code already has it, but this is what you're adding: [CODE] try { File file = new File("data/logs/ban.txt"); BufferedWriter writer = new BufferedWriter(new FileWriter( file, true)); writer.write ("[" + currentTime("dd MMMMM yyyy 'at' hh:mm:ss z") + "]" + player.getDisplayName() + " banned " + target.getDisplayName() + "for 48 hours."); writer.newLine(); writer.flush(); } catch (IOException e) { e.printStackTrace(); } return true; [/CODE] [url]http://gyazo.com/d5e4d034b0cda54dd45f6c1a97a30037[/url] You put that under the message of you have banned such and such. Now that's done, go to your source folder -> Data Now make a Folder called "Logs" Make a .txt file called ban and you're done. Now, when you ban some one, it should show up like this: [url]http://gyazo.com/ddbcb7b136ed78df0f6f4daba836badd[/url] ------------------------------Use for other commands------------------- Pretty much copy and paste this: [CODE] try { File file = new File("data/logs/ban.txt"); BufferedWriter writer = new BufferedWriter(new FileWriter( file, true)); writer.write ("[" + currentTime("dd MMMMM yyyy 'at' hh:mm:ss z") + "]" + player.getDisplayName() + " banned " + target.getDisplayName() + "for 48 hours."); writer.newLine(); writer.flush(); } catch (IOException e) { e.printStackTrace(); } return true; [/CODE] But! change the ban.txt to something like mute.txt if you're doing mutes, and change what it writes in the log.
×