smogon / pokemon-showdown

Pokémon battle simulator.
https://pokemonshowdown.com
MIT License
4.74k stars 2.77k forks source link

Error when trying to do node app.js #102

Closed DatXFire closed 11 years ago

DatXFire commented 11 years ago

I cd to the folder app.js is in and then try to do "node app.js" and it throws the following error:

module.js:340 throw err;

Error: Cannot find module 'sugar' at Function.Module._resolveFilename module.js:338:15 at Function.Module._load module.js:280:25 at Module.require module.js:362:17 at require module.js:378:17 at Object. <C:\Users\jarrett\Documents\Jarret's Docs\Applications\PS\Zarel-Pokemon-Showdown-1bb7a10\app.js:10:1> at Module._compile module.js:449:26 at Object.Module._extensions..js module.js:467:10 at Module.load module.js:356:32 at Function.Module._load module.js:312:12 at Module.runMain module.js:492:10

Here's my config file as well: // The server port - the port to run Pokemon Showdown under exports.port = 8000;

// The setuid user - if you're using a port below 1024, you probably want to run // PS as root and set this to an unprivileged user exports.setuid = '';

// protocol - WebSockets ("ws") or Socket.IO ("io"). // We recommend using WebSockets unless you have a really compelling reason not to. exports.protocol = 'ws';

// The server ID - a unique ID describing this Showdown server exports.serverid = 'Darkrai Hollow';

// The server token - to access the login database and ladder on pokemonshowdown.com // This token must be registered for accessing the ladder, but you will // still be able to login with an unregistered token. exports.servertoken = '382hgraw4jr2tioq';

// login server data - don't forget the http:// and the trailing slash // This is the URL of the user database and ladder mentioned earlier. // Don't change this setting - there aren't any other login servers right now exports.loginserver = 'http://play.pokemonshowdown.com/'; exports.loginserverkeyalgo = "RSA-SHA1"; exports.loginserverpublickey = "-----BEGIN PUBLIC KEY-----\n" + "MIIBIDANBgkqhkiG9w0BAQEFAAOCAQ0AMIIBCAKCAQEApd1so8v8acgTXNQ/uQ12\n" + "oAoq0Cf27iyg+hS8elJZqkTelqIwA0OWTq4NzMCdrUWkmi+pHoUKy4wLHbD2w9KI\n" + "+kjah5HncXmqb7FK9RVjD8z6C84qFMBvg/VXX16c5CP2h0BC/pSwJfkw0NtOdFZL\n" + "ZhCkLObCjAN367/JGkp7CGP/hnNEm57GX9OUThfSX3t/DhV0cHdRkECsYkrTzZOV\n" + "nsz3uifOjVHiW5PR0KNwQm0ed6Bmg24PK7RJ091aRkT6lvmD1MB5Zl1SIV2l+wF6\n" + "O/G3x63WhR1HrNEM/jr/LVz+QjWuvNv68iSHDV3U62JkG/Yc53An1n/urX4J72DS\n" + "twIBIw==\n" + "-----END PUBLIC KEY-----\n";

// Pokemon of the Day - put a pokemon's name here to make it Pokemon of the Day // The PotD will always be in the #2 slot (not #1 so it won't be a lead) // in every randomly-generated team. exports.potd = 'Darkrai';

// crash guard - write errors to log file instead of crashing // This is normally not recommended - if Node wants to crash, the // server needs to be restarted // Unfortunately, socket.io bug 409 requires some sort of crash guard // https://github.com/LearnBoost/socket.io/issues/609 exports.crashguard = true;

// local sysop - automatically promote users who connect from // 127.0.0.1 to the highest ranking group (Usually &, or sysop) exports.localsysop = false;

// report joins and leaves - shows messages like " joined" // Join and leave messages are small and consolidated, so there will never // be more than one line of messages. // This feature can lag larger servers - turn this off if your server is // getting more than 80 or so users. exports.reportjoins = true;

// report battles - shows messages like "OU battle started" // This feature can lag larger servers - turn this off if your server is // getting more than 160 or so users. exports.reportbattles = true;

// moderated chat - prevent unregistered, unvoiced users from speaking // This should only be enabled temporarily, when you're dealing with // huge influxes of spammy users. exports.modchat = false;

// permissions and groups: // Each entry in groupsranking' specifies the ranking of the groups. // Each entry ingroups' is a seperate group. Some of the members are "special" // while the rest is just a normal permission. // The special members are as follows: // - id: Specifies an id for the group. // - name: Specifies the human-readable name for the group. // - root: If this is true, the group can do anything. // - inherit: The group uses the group specified's permissions if it cannot // find the permission in the current group. Never make the graph // produced using this member have any cycles, or the server won't run. // - jurisdiction: The default jurisdiction for targeted permissions where one isn't // explictly specified. "Targeted permissions" are permissions // that might affect another user, such as ban' orpromote'. // 's' is a special group where it means the user itself only // and 'u' is another special group where it means all groups // lower in rank than the current group. // All the possible permissions are as follows: // - console: Developer console (>>). // - lockdown: /lockdown and /endlockdown commands. // - hotpatch: /hotpatch, /crashfixed and /savelearnsets commands. // - ignorelimits: Ignore limits such as chat message length. // - promote: Promoting and demoting. Will only work if the target user's current // group and target group are both in jurisdiction. // - ban: Banning and unbanning. // - mute: Muting and unmuting. // - receivemutedpms: Receive PMs from muted users. // - forcerename: /fr command. // - forcerenameto: /frt command. // - redirect: /redir command. // - ip: IP checking. // - alts: Alt checking. // - broadcast: Broadcast informational commands. // - announce: /announce command. // - modchat: Set modchat. // - potd: Set PotD. // - forcewin: /forcewin command. // - battlemessage: /a command. exports.groupsranking = [' ', '+', '%', '@', '&', '~']; exports.groups = { '~': { id: "admin", name: "Darkrai", root: true, rank: 5 }, '&': { id: "leader", name: "Cresselia", inherit: '@', jurisdiction: '@u', promote: 'u', forcewin: true, declare: true, modchatall: true, potd: true, namelock: true, forcerenameto: true, rank: 4 }, '@': { id: "mod", name: "Nightmare", inherit: '%', jurisdiction: 'u', ban: true, modchat: true, redirect: true, forcerename: true, ip: true, alts: '@u', rank: 3 }, '%': { id: "driver", name: "Dream", inherit: '+', jurisdiction: 'u', announce: true, warn: true, mute: true, forcerename: true, rank: 2 }, '+': { id: "voice", name: "Sleep", inherit: ' ', broadcast: true, rank: 1 }, ' ': { ip: 's', alts: 's', rank: 0 } };

Zarel commented 11 years ago

You forgot to do npm install.

DatXFire commented 11 years ago

But I do have npm installed. If I go to C:\Program Files\nodejs\node_modules\npm everything seems to be there. But it still throws me the same error. I have installed through npm install, and downloading the latest zip file and extracting the files to C:\Program Files\nodejs . Again trying to node app.js throws the same error.

Zarel commented 11 years ago

No, running npm install uses npm to install dependencies for Pokemon Showdown. You do it after installing npm.

DatXFire commented 11 years ago

Oh thanks for clearing that up. I got it to work. On another note, is there a way to edit which clauses are enabled manually for a tier, or in any other way on the server itself?

Zarel commented 11 years ago

Yes, by editing formats.js. Make sure you have the latest version of Pokemon Showdown, first.