Jump to content

Intrepid

Legendary Member
  • Posts

    5,521
  • Credits

  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by Intrepid

  1. This will be a collection of many guides to help beginners start to work with l2j. The guides will be created when i have time but if anyone willing to lend a hand since the subject can be anything just create a guide with the [L2J-Basics] tag and send me a pm so i can add it in this topic.

     

    Software Install and system variable setup

     

    Eclipse fine tuning

     

    Project management with Ant/Maven

  2. This guide will guide you through on what software you need for editing l2j and how to setup your system for it.

     

    Necessary softwares to install:

    Eclipse IDE for JAVA Developers: http://www.eclipse.org/downloads/

    JAVA SE JDK: http://www.oracle.com/technetwork/java/javase/downloads/index.html

    CollabNET: http://www.collab.net/downloads/subversion (requires registration)

    Maven 3.1.0: http://maven.apache.org/download.cgi (required for l2jfree)

     

    Every software install is just like with any other software except with eclipse and maven those are just extractables that you need to extract to a folder wherever you want them.

     

    System variables to set:

    If your using l2j:

    Add new variable JAVA_HOME pointing to the jdk root directory.

    Edit the path variable, add there %JAVA_HOME%\bin.

     

    If your using l2jfree you need to also:

    Add new variable M2_HOME pointing to your maven root directory.

    Add new variable M2 pointing to %M2_HOME%\bin.

    Add new variable MAVEN_OPTS with the value -Xmn128m -Xms256m -Xmx512m -Dmaven.test.skip=true.

    Edit the path variable, add there %M2%.

     

    After that restart your pc and your ready to go.

     

     

  3. This guide will guide you through about the way to setup your serverpack inside eclipse whether it uses ant or maven project management tools.

     

    Lets go over the compiling briefly(not going to speak about the setup in this one).

     

    L2Jserver and their forks doesnt need any special setup, its ready to go from the beginning, you just checkout the source run the ant script and your done theres really nothing more to it.

     

    Altho if it comes to maven its a bit more tricky. 1st of all you checkout their project like usual, than you have to convert each project that contains a pom.xml(equivalent of build.xml) into a maven project. Thats necessary for the classpath to detect your libs and your source folders. When thats done all you have to do is use the maven clean and install commands the same way you would use run as. Maven install will run the compile script and going to build your project, clean will delete your compiled source.

     

    Now lets see Ant vs Maven in some specific areas.

     

    Library management:

     

    Ant have to have the librarys stored inside your workspace to use them and you need to edit the classpath manually for each of them. The adventage of that is you can exclude some of the not necessary librarys such as mysql connector for example from the classpath.

     

    Maven on the other hand uses its own local repository to fetch librarys that you set as dependencys for a project. The adventage of that is that if you attach a project to another, for example gameserver project attached to the datapack project, the datapack project will inherit automatically every library that the gameserver uses. Also maven since it doesnt requires you to store librarys in your workspace you have a much easier way updating your current librarys(you change a version number and done), and adding new librarys(you can just look up thousands of librarys from maven central which is the main maven repository that contains everything you need).

     

    Project management with the use of them:

     

    Ant have no plugin management at all, so you have to use basically custom commands to get to something you want. In many cases you doesnt really need anything special that depends on your needs tho.

     

    Maven on the other hand have an extensive amount of built in plugins that you can use. You can generate a report from an issue tracker, generate a site for the project on compile, generate javadocs on compile(usefull if your project is really documented), you can generate various project reports, run JUnit tests in several ways and many more.

     

    finally to that i would to paste here an article from a blogger i used to read sometimes named Cristoph.

     

    Oh boy, how this bothers me. The endless debate and religious battle about which build tool is the better build tool, no, is the one and only right build tool...

     

    There are many people out there who love Ant, who defend Ant with their blood and honour. That's fine, but some of them at the same time shoot at Maven. There is so much rant about Maven, so much unfair allegation and just plain wrong claims. This is just one example that has been discussed in the community lately.

     

    Don't get me wrong. Maven has its flaws and issues, sure, and you don't have to like it. Use Ant, or Gradle, or Buildr, or Schmant, or batch files, or anything else if you like that more. But, Maven definitely can be used to build complex software projects, and lots of people are doing exactly that; and guess what -- some of them even like this tool... So, can everybody just please use what he or she likes the most for building their software, and stop throwing mud at each other? Let's get back to work. Let's put our effort in building good software.

     

    We've Come a Long Way...

    You may have guessed, I think Maven is the best build tool, at least for the type of projects I am dealing with in my company. We have started using a complex system of mutual calling batch files long time ago, and switched to Ant in 2000. That was a huge step ahead, but still it was a complex system with lots of Ant-Scripts on different levels. So we moved to Maven 1.0.2 in 2004 for another project. That brought nice configuration and reporting features, but still did not feel right, especially for multi-module projects that were not supported in the Maven core at that time.

     

    When Maven 2 came out, we adopted that early and suffered from many teething troubles, but nevertheless we were sure to be on the right track. Today, Maven is a mature, stable, convenient build tool for all our projects, and the first time we are quite happy with how it works and what it provides. Moreover, it sound really great what the brave guys from Sonatype have in their pipeline: Maven 3, Tycho, and all those nice tools like Nexus and m2eclipse...

     

    Hence, I am happy and honestly don't really care very much about what the blogosphere is telling about Maven. But the sad thing is, my colleagues (mostly used to Ant build systems) are complaining with the same weird theses about Maven. I'll give you one example.

     

    The Inhouse Battle

    In my current project, we create EJBs in some JARs and assemble an EAR file for the whole application. Now we have to create another RAR to be put in the EAR, so I setup a new project (following Maven's convention "one project, one artifact") for the RAR. This is what the "Ant guys" didn't like: "Why can't Maven create that RAR within the main project, you know Ant could do that, so maybe we should use Ant here again, why have so many small projects, this is polluting our Eclipse's Project View, so much complexity, Maven sucks, I knew that before, blah blah..."

     

    Well, I tried to explain that Maven of course can be configured to create multiple artifacts per project, but that's not the recommended way because it violates Maven convention. It's all about modularity and standardization. That is how Maven works, and it's great this way. A small project is not much overhead at all, it is going to have a clean and simple POM, and by the way we discovered a dependency cycle in the code that had to be fixed in order to move the RAR code into a separate module.

     

    So, what's wrong with Maven? Is it just that you want to do it your way and not to subordinate the Maven way? A matter of honor and ego? Is that enough to kick out Maven and go back to your Ant and script based build system (which BTW is so complex that only few guys really know how it works)? Come on.

     

    The Bottom Line

    IMHO, standardization of build systems is one of the main benefits that Maven brought to the world. If you know one Maven project, you can switch to any other project built with Maven and feel comfortable immediately. This increases productivity, both personally and for your company, which is one of the reasons more and more companies switch over from Ant to Maven.

    We have clean conventions, a nice project structure, and a highly modular system. And, we have world class reporting with minimal effort.

  4. This guide will guide you through about ways to improve the performance of eclipse to the point where it runs as efficent as ever.

     

    Disable your antivirus softwares on demand scanning option(if it has one and you use one).

     

    During the building process eclipse will create a lot of temporary files and read a lot of files, so disabling this option can make these faster.

     

    Disable file index if you use windows vista/7/8.

     

    While building your pack a lot of files will be created that have no reason to be indexed.

     

    ALWAYS use the latest version from everything you use.

     

    This is just pretty much common sense, newer the better.

     

    Tweek the eclipse startup.

     

    In the eclipse.ini you can tweek the jvm usage in many ways.

     

    -vm C:/Program Files/Java/jdk1.6.0_25/jre/bin/server/jvm.dll

     

    pointing the jvm directly to the jvm brings the following adventages:

    - Splash screen coming up sooner.

    - Eclipse.exe in the process list instead of java.exe.

    - Firewalls: Eclipse wants access to the Internet instead of java.

    - Window management branding issues, especially on Windows and Mac.

     

    -vmargs

    -Dosgi.requiredJavaVersion=1.7

    -Xms512M

    -Xmx1024M

    -Xss4M

    -XX:PermSize=128M

    -XX:MaxPermSize=256M

    -XX:MaxGCPauseMillis=10

    -XX:MaxHeapFreeRatio=70

    -XX:+UnlockExperimentalVMOptions

    -XX:UseG1GC

    -XX:+UseFastAccessorMethods

    -Dcom.sun.management.jmxremote

    -Xverify:none

     

    Also these are jvm options mainly about memory management im not going in detail with them, the key elements you need to edit according to your system is the Xms and Xmx values(more memory you have more you can allow eclipse to use obviously).

     

    Disable unused eclipse options.

     

    - UI eyecandy(pointless extra load)

    - Disable assist content you dont use(SWT proposal for example)

     

    Keep an organized workspace layout.

     

    Dont checkout more than 1 serverpack into a workspace, create a new one. That will speed up searching and building workspace wont be as long as it would if you would have like 4 packs in the same workspace.

     

    Use only necessary plugins.

     

    Each plugin install makes eclipse heavier, use only the ones you really want to use.

     

    Cleanup your workspace regurarly.

     

    To avoid strange things happening with your eclipse from time to time its a good things to run the eclipse -clean commandline argument to fix really weird issues.

     

    Make your workspace work for you.

     

    I see many people use the default workspace layout, that works out in many cases just fine but your productivity can improve a lot if you change everything to your liking, or if you add different "views" that helps you in what you do but the default view doesnt include them.

  5. if gay love men

    and lesbian loves woman

     

    this means than All men are lesbian

    and all women are gay

     

    so if a lesbian man loves other man so he is a gay lesbian

    and if a woman loves other woman then she is a lesbian gay

     

    you we are or

    gay,lesbian,gay lesbian or lesbian gay

     

    SO WHAT IS NORMAL???

     

    normal is having a pink, spiky, robot dildo! :D

     

    btw twisted logic you have there :D

  6. About that, I thought it too :P Reseting points helps prevent overpowered people to keep hero for very long times. Imagine a player playing the server for like 2 months and has accumulated tons of points. It won't be able for a newcomer to even get close to him.

     

    This is where the ladder / hall of fame system comes in. Obviously people should always remember the brave guy that a month ago did a huge point record. So it could be interesting to keep the highest score of each player recorded and present it in a ladder.

     

    You know, this could determine, the best hero of all times ;)

     

    Somewhat agree tho i always love a challange when playing :P

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock