Inactive [ADMN/DEV] Permissions 3.1.6 - The Plugin of Tomorrow [935]

Discussion in 'Inactive/Unsupported Plugins' started by rcjrrjcr, May 24, 2011.

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

    rcjrrjcr

    Permissions 3.1.6 (Yeti)

    Download:
    Latest Stable (3.1.6) : Full Zip | Main Jar Only | SQL Interface Jar Only

    Previous Versions:
    3.1.5 (JAR|SQL) | 3.1.4 (JAR|SQL) | 3.1.3 (JAR|SQL) | 3.1.2 (JAR|SQL) | 3.1.1 (JAR) | 3.1 (JAR) | More older versions


    COMMAND RESTRUCTURING
    Feel free to comment and give suggestions.


    DO NOT USE GLOBAL CONFIGS FOR NOW. THE GLOBAL CONFIG IS MEANT TO SUPPLEMENT WORLD-SPECIFIC CONFIGS, NOT THE OTHER WAY ROUND. SEE https://github.com/TheYeti/Permissions/wiki/Global-vs-World .I WILL WRITE A PROPER TUTORIAL ON HOW TO USE THE GLOBAL CONFIGS SOON.

    TODO:
    • Revamp commands
    Known plugins that cause IllegalAccessError(s):

    • Help (not fixed yet)
    Temp Fix for IAEs (open)




    1. Open Help's JAR with 7zip.
    2. Find MANIFEST.MF (it can be in the root folder or in the META-INF folder, or both).
    3. Open the MANIFEST.MF file in a text editor
    4. Look for a line that starts with "Class-Path:".
    5. Delete "Permissions.jar" from that line.
    6. Save the manifest.
    7. 7zip will prompt you to save changes back into the archive. Accept.
    8. Restart server.





    Plugin Authors: How to hook into Permissions

    Due to @TheYeti being busy in RL for now, I have created a new thread for Permissions 3.x. TheYeti is still part of the Permissions team.

    Permissions... Reborn.
    This is a continuation of the work that was originally done by Nijikokun. All original credit goes to them as without their work this plugin would not have been possible. This plugin does not provide any commands or additional functionality beyond what is described in this post. That means that you need another plugin to provide colored names, chat prefixes, and op commands such as /give and /time.​

    The Permissions Team

    The team consists of myself @rcjrrjcr and @TheYeti currently with contributions from @Nijikokun as well on occasion. There are also several other members of the community who frequently assist with providing code changes, bug fixes, patches, support, feedback, and beta testing. Special thanks to @flames and the Dynmap & Wormhole X-Treme teams for the hosting of Permissions on their Jenkins server.

    What's new in 3.x?

    Taken from the GitHub page:
    1. In-game commands. For a long time, users have been pestering, nagging, demanding and/or screaming for an way to manage Permissions via commands. Now, in 3.0, in-game commands are available to manage permissions and groups.
    2. SQL storage. This allows web interfaces to manage Permissions by updating the SQL database Permissions uses.
    3. Promotion/demotion tracks. With a simple command, users can be promoted/demoted along a preconfigured track, allowing RP servers with ranks to promote the player along a class track and other possibilities.
    4. Multigroup.
    5. Weightage. Plugins are able to compare users via their weight, which is inherited from their groups. For example, SlapPlugin can check if Player A is higher-weighted than Player B when A tries to slap B (Not IRL, obviously).
    6. Improved world mirroring. Config files are now split into a group file and a user file. Also, by editing storageconfig.yml, you can configure the mirroring of entire worlds, or just its users/groups. You also do not have to create files for worlds that mirror another world. Also, two different worlds can use different storage types, like YAML and SQL.
    7. Global permissions. Instead of having to resort to cross-world group inheritance, now all worlds inherit groups and users from the global permissions file. Also, the inherited groups/users can be overridden via editing the specific world's file.
    Upgrading from 2.x to 3.x







    I have written a guide on GitHub. This demonstrates how to convert 2.x-style configs to 3.0. The YAML-to-SQL converter are still in testing, but it can be downloaded from here. It's written in Perl. @Zgred has created a web version of the script located here. @omgneeq is working on an Web UI for SQL databases (Sorry about the previous statement that he was making a converter.)​


    Install (open)
    For the admins

    In case you missed the link above, the Setup Guide on GitHub will help you quite a bit

    Samkio has updated his tutorial for P3:


    First thing that you will need to do is download the plugin. Place it in your plugins/ folder and unzip it. This should create the folder Permissions and a Permissions.jar file in your plugins folder. Next, go into Permissions/ and create a folder named the same as your world. So if your world name from server.properties is Foo you will need to create the folder plugins/Permissions/Foo. You MUST rename it to whatever your world's name is or it will not work.

    Note, if you have your server maps all saved into a single directory then the initial setup will be somewhat different. Say your maps are arranged in the main directory like so: bukkit/mapfolder/world1, bukkit/mapfolder/world2, etc. Then inside of the plugin/Permissions directory you will need to create a folder called mapfolder and inside of that put the directories containing users.yml and groups.yml in there.

    Next, you will need to go in and add yourself to the users, just replace the user that is in there with your name. Make any other modifications that you need to. While making modifications make sure that you do NOT use tabs. These will break the YAML format and cause issues. Instead, each indent should be four spaces. If you want people who aren't in the Admin group to be able to reload the permissions plugin you need to give them 'permissions.reload' permissions within the config file.

    Permissions gives server admins great control, mostly in-game reloading. More info about commands can be found here.


    FAQ (open)

    [FAQ]

    [Q] What is with the version numbers? I can't keep up, it seems like every time I look there is a new version!
    [A] I use the GNU versioning system for my version numbers. So what this means is the version number should be read as Major.Minor.Revision. So for version 2.5.2 this would mean it is the 2nd Major version, the 5th Minor release in this version, and the 2nd revision. I tend to release bug fixes and anything that doesn't add functionality or will not break things as revisions. So generally you should be safe with just watching the major & minor numbers and only getting the revision if it fixes a bug specific to you. Technically 2.5.2 should have been released as 2.6 as it did add functionality, but this was below even a minor change so I released it as a revision.

    [Q] I am getting an error that it can't pass BLOCK_PLACED or BLOCK _BREAK events to Permissions. Fix it!
    [A] That's not a question. The reason why it can't place these is probably because the syntax of your Permissions file is all whacked out, or it is a different world and you don't have a config file for that world.

    [Q] What am I suppose to name the config file?
    [A] You need to name it the same as your world. So if you look in server.properties at "level-name" you will see a world name there. Rename your config file to the same thing as that. Make sure you keep the .yml extension at the end.

    [Q] Permissions are broken. Why can no one use commands? Why am I not an admin?
    [A] First off, make sure that your formatting is correct. Look at the format that the default config file uses. Yours should look like that. Do NOT use tabs. Use 4 spaces (IE. " " <-- Four of those things.). Also, whichever group you give the permission '*' to, do not have that group inherit permissions from anyone else. That is called overloading and it will break things. Also, this.


    [Q] Which one am I suppose to download and unzip to install this?
    [A] Download the main package, not the JAR only. Unzip the ZIP file. The JAR only downloads are simply there for people who are UPGRADING and do not need the default config file.

    [Q] I have done all of this and this doesn't work! I'm going back to GroupManager!
    [A] Well, there is probably the problem. Make sure that you delete EssentialsGroupManager.jar and EssentialsGroupBridge.jar as these don't play well with Permissions and will cause headache.

    [Q] When are you going to add <blah> <feature/command> into this already? You suck! Do what I want NAU PL0X!
    [A] Feature requests should be posted on the GitHub tracker. Stupid suggestions like adding teleportation functionality and other less ludicrous stuff will be rejected.



    Changelog
    • 3.1.6
      • Major fixes.
      • Simplify tracks
    Changelog (open)





    • 3.1.5
      • Fix several minor bugs.
      • Autoconvert 2.x/GM format (only works if you split them into groups.yml and users.yml, but leave the rest untouched)
    • 3.1.4
      • Fix YAML locking bugs.
    • 3.1.3
      • Fix another SQL data and inheritance issue.
    • 3.1.2
      • Fix SQL data issues.
      • Added user/group name autocomplete
      • Separated SQL interface into separate plugin
    • 3.1.1
      • Fix prefix/suffix issues.
      • Added ON UPDATE CASCADE to the SQL foreign [/SIZE]
    • 3.1
      • Tons of fixes.
    • 3.0.6
      • Fix SQLite issues due to misimplementation of methods.
    • 3.0.5
      • Fix cache-related NPEs
      • Fixed quoted worlds (thanks again @Jeyge !)
    • 3.0.4
      • Fix LinkageError caused by ServiceManager not unloading the PermissionHandler class.
      • Added cache
      • Fix index not being incremented when promoting (thanks @Jeyge !)
    • 3.0.3
      • Fixed another getGroup bug.
    • 3.0.2
      • Fixed getGroup bug.
    • 3.0.1
      • Fixed some NPE bugs.
    • 3.0
      • Total overhaul of Permissions. Adds many new features (see What's new in 3.0?).
    • 2.7.4
      • Added overload of has() and permissions() for plugin devs
    • 2.7.3
      • Fixed negate node add/remove bug.
    • 2.7.2
      • Fix for small subtle bug introduced in last minor version.
    • 2.7.1
      • Commit by DThielke to fix several bugs with programmatic modifications of user permissions.
    • 2.7
      • Further commits by rcjrrjcr
        • Removed negatedNode checks
        • Temp fix for NULL issue
        • WorldConfigurationModification to save only modified configs
        • Fix for cache problems








    Credits (open)


    TheYeti:
    Nijikokun - Without their original work this plugin would not be possible.​
    All of the members of the community that regularly provide support in this thread for Permissions​
    Rigby, Kainzo, DThielke, GoMySQL, sk89q, RightLegRed - For hanging out with me in IRC, tons of testing, and pushing me to improve on the code constantly and make changes to make this plugin constantly better and better, and in general being entertaining.​
    Everyone else on here and in IRC who provides support, feedback, assistance, plugins that have continued to support and integrate this, and in general makes my life a bit easier, THANK YOU!​

    rcjrrjcr:
    I would like to thank Joy , jamesg and omgneeq for staying in #permissions for long periods of time to test out 3.0, and help me find many coding mistakes I made, patiently waiting for the next build while I fixed the bugs. I appreciate SvenBrnn 's and GoMySQL(Geoff Winans on this forum) 's help that allow me to design and code the SQL interface, and the HeroCraft coding team for providing support and some priceless IRC quotes (Dgco). Also, I would like to thank Lycano for helping me in many different aspects. Last but not least, I would like to thank Nijikokun and TheYeti for developing P2, which was one of my core plugins when I was still a 14-year-old server admin that didn't understand Java, and was the base for 3.0. Without these people, 3.0 would never be possible.​


    If after reading through all of that you are still having issues do one of two things. If it is a provable bug, and you have things like screenshots or copies of startup, steps to reproduce, your craftbukkit build and the version this is running along with your config files then submit the bug on the issue tracker. If it is general help or support you are needing then post a reply to this thread and someone will try to help you.

    Old thread: Permissions v2.7.4
     
  2. Offline

    Saenii

    usually thats because of an outdated plugin.
     
  3. Offline

    Darkone003

    No luck using that. :\
     
  4. Offline

    cholo71796

    Are there errors in your server.log?
     
  5. Offline

    The PC Tech Guy

    I'm not sure, but I think the default: true node does not work. I had a new player at my server today unable to build, and only until I added him to the permission file was he able to. He also had some symptoms of not possessing other permissions, such as the craftbook.mech.* permission (Got a message upon attempted build only.)
     
  6. Offline

    briman0094

  7. Offline

    moose517

    it works with 860, however it doesn't seem to work in general because dev is to lazy to make proper documentation for the new way
     
  8. Offline

    Vhab

    The post I quoted wasn't helping. It was an angry rant towards users about something the users simply can not have known.
    There are many good ways to help users, using caps and acting condescending is not one of them.
     
  9. Offline

    Jeyge

    And yet the post you quoted was actually helpful and more so that most of the other posts in this thread. It actually gave some valid information. I know I for one haven't even once thought of the global files as the end all be all permissions file that many others do. Now that might be a mistake on my part or it might just be a problem for the people from McMyAdmin to deal with as I'm pretty sure you will find that almost everyone having problems with the global files are using that wrapper.

    And one statement you made that is wrong is about how there aren't that many people complaining about the global files. Yes, the majority of the posts are just malformed yml and the stupid IllegalAccessError but the rest are global file miscommunications and I would rather deal with the first 2 over the last any day of the week.

    Now I have on multiple occasions tried to guess what the global files were to be used for. I've even pinged the dev about it without any success but the whole time, I never once thought I would just fill in the global files. Even at the minimum, I would still have dummy information in the world files.

    Overall though, I just find it strange that someone would pick on one of the few people who come to this thread to offer help which was all he was doing. I've read his post so many times today and I just can't figure out where he was acting condescending. Yes, he did yell, but it was for effect and then he added a post to the wiki. More than even I have done here and I've offered a hell of a lot of help in this thread. His results from offering that help, grief.


    Now for some good results, I did run a test today just using the global files and I can actually confirm that they do work if you only have permissions and users in them and not in any other world file. I'm sure that doesn't help anyone, but it can be done.
     
  10. Offline

    Bleepbloop

    @gamerkd
    If you can't understand how to use the in-game commands simply don't use them, just go to the users file for the world you want to promote them in and add them to said group, no need to rage.
     
  11. Offline

    Tickety86

    Can someone please explain in a more detailed manor how the global files work? I understand that its like a global inheritance but how to set it up i dont get?
     
  12. Offline

    laserlemons

    when i edit the groups (or anything) and try to save it, it says that its saving as a text only file. when i try to run my server it says that permissions failed to load. anyone know how to make it stop doing that? (sorry im not to good with computers)
     
  13. Offline

    J_Bit

    i put the end quote mark in, but the same error still pops up.
     
  14. Offline

    Maxis010

    Actually no it wasn't, it was me answering everyone that was complaining permissions wasn't working when they were using globals as an end all fix
    If I do a rant it's easy to pick out as I sign off with /rant and most of the time I say sorry for the more abusive comments I make within 24 hours of said rant
    As @Jeyge has said I often try to help, caps isn't purely for shouting, it also gets attention when it's not a wall of caps
    http://forums.bukkit.org/threads/edit-misc-tp-fun-multiverse-v1-7-2-world-management-818.3707/
    One of the first lines here is DOWNLOAD CB820
    Now do you consider that to be purely shouting or is it designed to make you look at what is written

    Have you noticed that you are the only person here that has complained about my post, answer me this, have you tried to help anyone here, have you added anything to the wiki, can you honestly say you have never used caps to get your message across

    Now tell me, how do you consider my post to be condescending, that seems like a regular post to me so do you consider everything I say to be condescending?
    Is my post nothing but me having a go at everyone, I clearly state what the globals files can not do which is what a lot of people believe their can do, I also state how they should be used and I updated the wiki with that nugget of information as a post can be burred but anyone here that reads the wiki can see my warning which saves them hassle which saves us hassle
    Did I at anyone point insult anyone such as calling them a bunch of useless F*** heads because they don't realise where their problem is?
    This isn't the first time I've made a post like that, I've done the exact same thing when there were a lot of complaints about tabs, I pointed out that the /t token error was caused by tabs and once again gave clear instructions on how to fix the issue

    I'm going to stop here as this is now a wall of text and I'm starting to get offensive and I don't want to miss something when I moderate my own post, you have a problem with me then take it up with me, don't drag my posts through the dirt because you don't like them

    EDIT: Now that I've read this post after submitting I'm going to slap a /rant on and get some espresso to clear my head, see you in a few hours


    /rant
     
  15. Offline

    Poeschl

  16. Offline

    Unknown_1

    You are correct, but I would think that all of one case would not work and all of another case wold work. But I kept digging. Come to find out I found the problem. At one time I was messing with storageconfig and added:

    world-inheritance:
    Daniel: world

    Well this is where the capital "D" was coming into the picture at and things started to go down hill. The good news is now when I issues commands it's no longer case sensitive. It seems permissions does have a case problem with this but o well it's working now!

    Note: world does not allow the item command but it did allow the other commands so it makes sense.
     
  17. Offline

    ChickenFighter

    Hey Guys,
    ive just got some [creeper] Errors ;(

    Code:
    2011-06-14 13:54:20 [SEVERE] java.lang.IllegalAccessError: tried to access class com.nijiko.permissions.ModularControl$1RefreshTask from class com.nijiko.permissions.ModularControl
    2011-06-14 13:54:20 [SEVERE]     at com.nijiko.permissions.ModularControl.<init>(ModularControl.java:54)
    2011-06-14 13:54:20 [SEVERE]     at com.nijikokun.bukkit.Permissions.Permissions.setupPermissions(Permissions.java:180)
    2011-06-14 13:54:20 [SEVERE]     at com.nijikokun.bukkit.Permissions.Permissions.onLoad(Permissions.java:138)
    2011-06-14 13:54:20 [SEVERE]     at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:112)
    2011-06-14 13:54:20 [SEVERE]     at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:232)
    2011-06-14 13:54:20 [SEVERE]     at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:219)
    2011-06-14 13:54:20 [SEVERE]     at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:146)
    2011-06-14 13:54:20 [SEVERE]     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:283)
    2011-06-14 13:54:20 [SEVERE]     at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    2011-06-14 13:54:20 [SEVERE] [Permissions] Unable to load permission data.
    Bukkit Version: 860
    Permissions Version: 3.1.5b
     
  18. Offline

    Rep00c101

    Hey Guys,
    ive got an error and i dont know what ive maked wrong. (sry for bad english)

    Code:
    14:12:20 [SCHWERWIEGEND] while scanning for the next token
    found character         '\t' that cannot start any token
     in "<reader>", line 13, column 31:
                    - 'iConomy.access'
                                      ^
    Bukkit Version: 860
    Permissions Version: 3.1.5b

    I hope that you guys can help me. :/
     
  19. Offline

    Lildirt

    Hmm, I'm not sure exactly how to upgrade users from other groups universally.
    Meaning, I have 4 worlds up, and I want them promoted in all four worlds with one command, but I can't even type it right. I don't understand the format on GitHub or anything (somehow). It would report that the group doesnt exist, but I think I'm typing it right. Can I perhaps get some help on /permissions promotion syntax?
     
  20. Offline

    Denney

    Hey guys. Using MySQL as storage and everything works fine except the default groups. I've added the group to the database and set it as a world base for the world but when someone new connects, it creates a new group called "Default" for that world.

    I figured that this group may be tied to being the default so I change the permissions around to make this group the world base and gave it proper permissions but alas, new users are not being added to ANY group when they first login.

    I like the idea of v3 but something as simple as a default group not working properly seems to be a big bug in an initial release.
     
  21. Offline

    xyxgreendayxyx

    I cannot add any permissions! All of the permissions I add doesn't work!
    Here's my global group pemissions:
    Code:
    ##
    # AntiBuild is included with this.  To disable a group from being able to build then
    # set the build: flag to false (build: false).  If you want a group to be able to build
    # then set it to true.
    ##
    # Groups can contain inheritance.
    #   To make a group inherit the permissions from another
    #   group simply place the groups name in the "inheritance:" like so:
    #
    #   Example:
    #       inheritance:
    #           - Default
    ##
    #   Globalized Permission settings:
    #
    #       If a permission contains periods (.) you can denote a globalized parameter:
    #
    #           - 'foo.*'
    #
    #       This will allow you to use all general commands.
    #
    ##
    #   Single Asterisk denotes all commands:
    #
    #       - '*'
    ##
    #   To exempt a node use the - prefix like so:
    #       - '-foo.bar'
    ##
    #   prefix: and suffix: do not do anything on their own.  You need another outside plugin
    #   such as iChat or HeroChat in order for these to do anything.
    groups:
        Default:
            default: true
            info:
                prefix: ''
                suffix: ''
                build: true
            inheritance:
            permissions:
                - 'iConomy.payment'
                - 'iConomy.list'
                - 'iConomy.bank.access'
                - 'iConomy.bank.transfer'
                - 'iConomy.access"
                - 'bedrock.place'
                - 'graveyard.spawn.closest'
                - 'petition'
                - 'jobs.join*'
                - 'jobs.world.*
        Builder:
            default: false
            info:
                prefix: ''
                suffix: ''
                build: true
            inheritance:
                - Default
            permissions:
                - 'iConomy.payment'
                - 'iConomy.list'
                - 'iConomy.bank.access'
                - 'iConomy.bank.transfer'
                - 'iConomy.access"
                - 'bedrock.place'
                - 'graveyard.spawn.closest'
                - 'petition'
        Moderator:
            default: false
            info:
                prefix: ''
                suffix: ''
                build: true
            inheritance:
                - Default
            permissions:
                - 'iConomy.payment'
                - 'iConomy.list'
                - 'iConomy.bank.access'
                - 'iConomy.bank.transfer'
                - 'iConomy.access"
                - 'bedrock.place'
                - 'graveyard.spawn.closest'
                - 'petition'
                - 'jobs.join*'
                - 'jobs.world.*'
        Admins:
            default: false
            info:
                prefix: ''
                suffix: ''
                build: true
            inheritance:
            permissions:
                - '*'
    
    Is anything worng with it? Because none of the permissions works.... Please help!
     
  22. Offline

    Luckz

    By the way, it seems like you can pour a water bucket without any permissions. That can't be WAD.
    Also, worldcopy seems to work for me, unlike world-inheritance, which just gets me broken worlds.
     
  23. Offline

    Kwarter

    I'm getting this error an I don't know why... I have everything setup correctly... This happens on start-up. Help? Server Error Permissions.JPG
     
  24. Offline

    Luckz

    Read this thread (or maybe the wiki). Global groups do not work like one would intuitively expect them to work. If they work at all, they work in the way that you define a "globalDefault" group for example and let your world-specific "Default" group inherit it.
     
  25. Offline

    Niklas4G

    Promote Command for GlobalUser.txt ?
     
  26. Offline

    dogoferis

    How did you get your MySQL storage to work? I have setup the tables as specified on the GIT page wiki, installed the PermissionsSQL.jar with no errors and edited my storage config file to specify MySQL (with the proper user credentials) but I cannot get Permissions to use anything other than the YAML files. What did you do to get it working?
     
  27. Offline

    matan7890

    Code:
    2011-06-14 16:35:54 [SEVERE] java.lang.IllegalAccessError: tried to access class
     com.nijiko.permissions.ModularControl$RefreshTask from class com.nijiko.permiss
    ions.ModularControl
    2011-06-14 16:35:54 [SEVERE] at com.nijiko.permissions.ModularControl.<clinit>(M
    odularControl.java:45)
    2011-06-14 16:35:54 [SEVERE] at com.nijikokun.bukkit.Permissions.Permissions.set
    upPermissions(Permissions.java:184)
    2011-06-14 16:35:54 [SEVERE] at com.nijikokun.bukkit.Permissions.Permissions.onL
    oad(Permissions.java:139)
    2011-06-14 16:35:54 [SEVERE] at org.bukkit.craftbukkit.CraftServer.loadPlugins(C
    raftServer.java:112)
    2011-06-14 16:35:54 [SEVERE] at net.minecraft.server.MinecraftServer.e(Minecraft
    Server.java:232)
    2011-06-14 16:35:54 [SEVERE] at net.minecraft.server.MinecraftServer.a(Minecraft
    Server.java:219)
    2011-06-14 16:35:54 [SEVERE] at net.minecraft.server.MinecraftServer.init(Minecr
    aftServer.java:146)
    2011-06-14 16:35:54 [SEVERE] at net.minecraft.server.MinecraftServer.run(Minecra
    ftServer.java:283)
    2011-06-14 16:35:54 [SEVERE] at net.minecraft.server.ThreadServerApplication.run
    (SourceFile:422)
    2011-06-14 16:35:54 [SEVERE] [Permissions] Unable to load permission data.
    2011-06-14 16:35:54 [SEVERE] [Permissions] Shutting down Permissions due to erro
    r(s).
    Hmm?...
     
  28. Offline

    Tokyrn

    I have same error too ... i wait a solution ...
     
  29. Offline

    Junrall

    Somewhere in these forums I saw that people were renaming their Permissions to aPermissions. The "a" supposedly allows Permissions to load first? Seemed to solve their problem.
     
    Physikbuddha and matan7890 like this.
  30. Offline

    matan7890

    Wow thats worked! thx man!
     
  31. Offline

    Tokyrn

    Thank Bukkit 860 et apermission.jar it's okay thank !!!
     
Thread Status:
Not open for further replies.

Share This Page