NAME
Net::Minecraft::Login - Basic implementation of the Minecraft Login
Protocol.
VERSION
version 0.001000
DESCRIPTION
This is a basic implementation of the Minecraft Login protocol as
described at <http://wiki.vg/Session#Login>
use Net::Minecraft::Login;
my $ua = Net::Minecraft::Login->new();
my $result = $ua->login(
user => 'Bob',
password => 'secret',
);
if( $result->isa('Net::Minecraft::LoginFailure') ){
die $result;
}
say "Login for user " . $result->user . " succeeded";
Note, it presently does no explict session stuff, only performs the
basic HTTP Request and returns the response as an object.
CONSTRUCTOR ARGUMENTS
This second describes arguments that may be optionally passed to
"->new()", but as of the time of this writing, none are explicitly
required, and are offered only to give leverage to strange usecases (
and tests )
my $instance = Net::Minecraft::Login->new(
user_agent => ... ,
http_headers => { ... },
http_engine => HTTP::Tiny->new(),
login_server => 'https://somewhere.else.org/'
version => 14, # IN THE FUTURE!
);
user_agent
The User Agent to self-describe over HTTP
type : String
default : "Net::Minecraft::Login/" . VERSION
http_headers
Standard Headers that will be injected in each request
type : Hash[ string => string ]
default : { 'Content-Type' => 'application/x-www-form-urlencoded' }
http_engine
Low-Level HTTP Transfer Agent.
type : Object[ =~ HTTP::Tiny ]
default : An HTTP::Tiny instance.
login_server
HTTP Address to authenticate with.
type : String
default : https://login.minecraft.net/
version
"Client" version.
type : String
default : 13
This field indicates the version of the "Launcher". Minecraft may at
some future time produce an updated launcher, and indicate that this
specified version is out of date.
Mojang Minecraft Launchers will be required to download a newer version,
and users of Net::Minecraft::Login will either
a) Be required to update to a newer Net::Minecraft::Login that supports
the newer version and changes that implies
b) Assuming no Login Protocol Changes, only have to specify "version =>"
either to the constructor, or as an argument to "login"
METHODS
login
signature: { user => String , password => String, version? => String }
return : Any( Net::Minecraft::LoginResult , Net::Minecraft::LoginFailure )
my $result = $nmcl->login(
user => 'notch',
password => 'jellybean',
);
if( $result->isa('Net::Minecraft::LoginFailure') ){
say "$result";
} else {
say "Logged in!";
}
See "::LoginFailure" and "::LoginResult"
ATTRIBUTES
user_agent
http_headers
http_engine
login_server
version
PRIVATE METHODS
_do_request
signature : ( String $base_uri, Hash[ String => String ] $parameters , Hash[ String => Any ] $config )
return : Hash[ String => String ]
AUTHOR
Kent Fredric <kentnl@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2013 by Kent Fredric <kentnl@cpan.org>.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.