-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfaq.html
678 lines (666 loc) · 46.7 KB
/
faq.html
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Frequently Asked Questions — Sponge 0.0.1 documentation</title>
<link rel="stylesheet" href="_static/basic.css" type="text/css" />
<link rel="stylesheet" href="_static/sponge.css" type="text/css" />
<link href='//fonts.googleapis.com/css?family=Source+Code+Pro|Roboto:400italic,700italic,700,400' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="_static/tomorrow.css" type="text/css" />
<link id="syntax-highlighting-ref" rel="stylesheet" href="_static/tomorrow_night.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '0.0.1',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/store.min.js"></script>
<script type="text/javascript" src="_static/lights.js"></script>
<link rel="top" title="Sponge 0.0.1 documentation" href="index.html" />
<link rel="next" title="Changelog" href="changelog.html" />
<link rel="prev" title="Provided Dependencies" href="devs/porting/dependencies.html" />
</head>
<body role="document">
<div class="container">
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<span style="float: right" class="lights" title="Toggles syntax highlighting between light and dark">
<i class="icon-lamp lights-icon"></i> Highlight Code Light/Dark
</span>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="changelog.html" title="Changelog"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="devs/porting/dependencies.html" title="Provided Dependencies"
accesskey="P">previous</a> |</li>
<li><a href="index.html">Sponge 0.0.1 documentation</a> »</li>
</ul>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<div id="searchbox" style="display: none" role="search">
<form class="search" action="search.html" method="get">
<input class="field" type="text" name="q" autocomplete="off" />
<button class="submit" type="submit"><i class="icon-search"></i></button>
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
<p class="searchtip" style="font-size: 90%"></p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script><h3><a href="index.html">Table Of Contents</a></h3>
<ul>
<li class="toctree-l1"><a class="reference internal" href="users/index.html">User’s Guide</a><ul>
<li class="toctree-l2"><a class="reference internal" href="users/quick-start.html">Quick Start</a><ul class="simple">
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="users/java.html">Java (JRE) Installation Guide</a><ul class="simple">
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="users/plugins.html">Installing Plugins</a><ul class="simple">
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="users/config.html">Configuration</a><ul>
<li class="toctree-l3"><a class="reference internal" href="users/hocon.html">Introduction to HOCON</a><ul class="simple">
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="users/sponge-conf.html">sponge.conf</a></li>
<li class="toctree-l3"><a class="reference internal" href="users/server-properties.html">server.properties</a><ul class="simple">
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="users/permissions.html">Managing Who Can Do What</a><ul class="simple">
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="users/commands.html">Commands</a><ul class="simple">
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="users/whitelist.html">Managing the Whitelist</a></li>
<li class="toctree-l2"><a class="reference internal" href="users/json-formatting.html">JSON Syntax</a><ul class="simple">
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="users/bans.html">Managing Bans</a></li>
<li class="toctree-l2"><a class="reference internal" href="users/logs.html">Log Files</a></li>
<li class="toctree-l2"><a class="reference internal" href="users/compat.html">Compatibility</a><ul>
<li class="toctree-l3"><a class="reference internal" href="users/bukkit.html">Migrating from Bukkit</a><ul class="simple">
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="users/forge.html">Using Forge Mods</a><ul class="simple">
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="users/canary.html">Migrating from Canary</a><ul class="simple">
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="users/troubleshooting.html">Troubleshooting</a><ul class="simple">
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="users/port-forwarding.html">Port Forwarding</a></li>
<li class="toctree-l2"><a class="reference internal" href="users/platforms.html">Other Platforms</a><ul class="simple">
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="workspace/index.html">Preparing for Development</a><ul>
<li class="toctree-l2"><a class="reference internal" href="workspace/getting-started.html">Getting Started</a><ul class="simple">
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="workspace/jdk.html">Installing the JDK</a><ul class="simple">
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="workspace/git.html">Installing Git</a><ul class="simple">
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="workspace/text.html">Installing a Text Editor</a><ul class="simple">
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="workspace/ide/index.html">Installing an IDE</a><ul>
<li class="toctree-l3"><a class="reference internal" href="workspace/ide/idea.html">Setting Up IntelliJ IDEA</a><ul class="simple">
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="workspace/ide/eclipse.html">Setting Up Eclipse</a><ul class="simple">
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="workspace/ide/netbeans.html">Setting Up NetBeans</a><ul class="simple">
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="workspace/artifact.html">Artifacts for Plugin Development</a><ul class="simple">
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="plugins/index.html">Developing Plugins</a><ul>
<li class="toctree-l2"><a class="reference internal" href="plugins/quick-start.html">Writing a Plugin</a><ul class="simple">
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="plugins/blocks.html">Working with Blocks</a><ul class="simple">
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="plugins/commands.html">Creating Commands</a><ul class="simple">
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="plugins/event-bus.html">Working with Events</a><ul class="simple">
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="plugins/entities/index.html">Working with Entities</a><ul>
<li class="toctree-l3"><a class="reference internal" href="plugins/entities/spawning.html">Spawning an Entity</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="plugins/logging.html">Logging and Debug Messages</a><ul class="simple">
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="plugins/manager.html">Working with the Plugin Manager</a><ul class="simple">
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="plugins/message.html">Using the Message API</a><ul class="simple">
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="plugins/permissions.html">Working with the Permissions API</a></li>
<li class="toctree-l2"><a class="reference internal" href="plugins/plugin-lifecycle.html">Plugin Lifecycle</a><ul class="simple">
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="plugins/services.html">Accessing Services</a><ul class="simple">
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="plugins/configuration.html">Configuration and Defaults</a><ul class="simple">
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="plugins/advanced/index.html">Advanced Topics</a><ul>
<li class="toctree-l3"><a class="reference internal" href="plugins/advanced/configuration-in-depth.html">Configuration In-depth</a></li>
<li class="toctree-l3"><a class="reference internal" href="plugins/advanced/dependency-injection.html">Dependency Injection</a><ul class="simple">
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="devs/index.html">Developing Sponge</a><ul>
<li class="toctree-l2"><a class="reference internal" href="devs/guidelines.html">Contribution Guidelines</a><ul class="simple">
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="devs/forge/index.html">Developing the Sponge Coremod</a><ul>
<li class="toctree-l3"><a class="reference internal" href="devs/forge/contributing.html">Working on the Sponge Coremod</a><ul class="simple">
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="devs/forge/project-layout.html">Project Layout</a></li>
<li class="toctree-l3"><a class="reference internal" href="devs/forge/debugging.html">Debugging Sponge Within the IDE</a></li>
<li class="toctree-l3"><a class="reference internal" href="devs/forge/mixins.html">Mixins</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="devs/api/index.html">Developing the Sponge API</a><ul>
<li class="toctree-l3"><a class="reference internal" href="devs/api/contributing.html">Working on the Sponge API</a><ul class="simple">
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="devs/git/index.html">How to Work with Git and Sponge</a><ul>
<li class="toctree-l3"><a class="reference internal" href="devs/git/gitfu-api.html">Git-Fu for SpongeAPI</a></li>
<li class="toctree-l3"><a class="reference internal" href="devs/git/gitfu-impl.html">Git-Fu for Sponge Implementation</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="devs/porting/index.html">Porting to Other Platforms</a><ul>
<li class="toctree-l3"><a class="reference internal" href="devs/porting/dependencies.html">Provided Dependencies</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<ul class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="">Frequently Asked Questions</a><ul class="simple">
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog</a><ul class="simple">
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="downloads.html">Downloads</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing</a></li>
<li class="toctree-l1"><a class="reference internal" href="license.html">Sponge License</a></li>
</ul>
<ul class="simple">
</ul>
</div>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="frequently-asked-questions">
<h1>Frequently Asked Questions<a class="headerlink" href="#frequently-asked-questions" title="Permalink to this headline">¶</a></h1>
<div class="contents local topic" id="table-of-contents">
<p class="topic-title first"><strong>Table of Contents</strong></p>
<ul class="simple">
<li><a class="reference internal" href="#what-is-sponge" id="id1">What is Sponge?</a><ul>
<li><a class="reference internal" href="#summary" id="id2">Summary</a></li>
<li><a class="reference internal" href="#for-the-user" id="id3">For the User</a></li>
<li><a class="reference internal" href="#for-bukkit-plugin-developers" id="id4">For Bukkit Plugin Developers</a></li>
<li><a class="reference internal" href="#for-forge-mod-developers" id="id5">For Forge Mod Developers</a></li>
<li><a class="reference internal" href="#management-of-the-project" id="id6">Management of the Project</a></li>
<li><a class="reference internal" href="#from-a-technical-perspective" id="id7">From a Technical Perspective</a></li>
<li><a class="reference internal" href="#how-does-it-all-fit-together" id="id8">How Does It All Fit Together?</a></li>
<li><a class="reference internal" href="#what-is-sponge-building" id="id9">What is Sponge Building?</a></li>
<li><a class="reference internal" href="#how-do-we-keep-plugins-mods-from-breaking-between-mc-versions" id="id10">How Do We Keep Plugins/Mods From Breaking Between MC Versions?</a></li>
<li><a class="reference internal" href="#how-much-is-open-source" id="id11">How Much is Open Source?</a></li>
<li><a class="reference internal" href="#how-did-bukkit-work" id="id12">How Did Bukkit Work?</a></li>
<li><a class="reference internal" href="#what-about-forge-mods-and-hmod-plugins" id="id13">What About Forge Mods and hMod Plugins?</a></li>
</ul>
</li>
<li><a class="reference internal" href="#general-questions" id="id14">General Questions</a><ul>
<li><a class="reference internal" href="#when-will-the-first-downloads-be-available" id="id15">When Will the First Downloads Be Available?</a></li>
<li><a class="reference internal" href="#will-there-be-an-official-place-to-download-plugins" id="id16">Will There Be an Official Place to Download Plugins?</a></li>
<li><a class="reference internal" href="#what-does-this-mean-for-the-players" id="id17">What Does This Mean for the Players?</a></li>
<li><a class="reference internal" href="#what-are-sponge-mods" id="id18">What are Sponge Mods?</a></li>
<li><a class="reference internal" href="#what-does-this-mean-for-the-server-owners" id="id19">What Does This Mean for the Server Owners?</a></li>
<li><a class="reference internal" href="#what-java-version-is-sponge-using" id="id20">What Java Version is Sponge Using?</a></li>
<li><a class="reference internal" href="#will-players-need-the-forge-client-to-connect" id="id21">Will Players Need the Forge Client to Connect?</a></li>
<li><a class="reference internal" href="#but-forge-doesnt-support-unmodified-vanilla-clients" id="id22">But Forge Doesn’t Support Unmodified Vanilla Clients?</a></li>
<li><a class="reference internal" href="#what-minecraft-version-is-sponge-be-first-available-for" id="id23">What Minecraft Version is Sponge be First Available for?</a></li>
<li><a class="reference internal" href="#but-forge-takes-too-long-to-update" id="id24">But Forge Takes too Long to Update?</a></li>
<li><a class="reference internal" href="#i-haven-t-kept-up-what-happened-to-bukkit" id="id25">I Haven’t Kept up, What Happened to Bukkit?</a></li>
<li><a class="reference internal" href="#who-is-involved-with-the-sponge-project" id="id26">Who is Involved With the Sponge Project?</a></li>
<li><a class="reference internal" href="#how-are-decisions-made" id="id27">How Are Decisions Made?</a></li>
<li><a class="reference internal" href="#have-you-consulted-the-community" id="id28">Have You Consulted the Community?</a></li>
</ul>
</li>
<li><a class="reference internal" href="#technical-questions" id="id29">Technical Questions</a><ul>
<li><a class="reference internal" href="#why-not-use-a-wrapper-styled-api" id="id30">Why Not Use a “Wrapper”-Styled API?</a></li>
<li><a class="reference internal" href="#why-not-build-a-standalone-server" id="id31">Why Not Build a Standalone Server?</a></li>
<li><a class="reference internal" href="#doesnt-that-mean-that-we-will-end-up-in-this-same-situation-again-if-we-use-proprietary-code" id="id32">Doesn’t That Mean That We Will End Up In This Same Situation Again If We Use Proprietary Code?</a></li>
<li><a class="reference internal" href="#why-not-wait-for-the-official-minecraft-api" id="id33">Why Not Wait for the Official Minecraft API?</a></li>
<li><a class="reference internal" href="#what-license-will-sponge-be-placed-under" id="id34">What License Will Sponge Be Placed Under?</a></li>
<li><a class="reference internal" href="#why-not-use-bukkits-api" id="id35">Why Not use Bukkit’s API?</a></li>
<li><a class="reference internal" href="#will-the-new-api-be-like-the-bukkit-api-in-how-it-is-used-events-etc" id="id36">Will the New API Be Like the Bukkit API in How It is Used? Events, etc.?</a></li>
<li><a class="reference internal" href="#why-spoutapi-flow-libs-versus-canary-or-other-apis" id="id37">Why SpoutAPI (+ Flow libs) Versus Canary or Other APIs?</a></li>
<li><a class="reference internal" href="#what-about-plugins-that-access-nms" id="id38">What About Plugins That Access ‘NMS’?</a></li>
<li><a class="reference internal" href="#will-the-new-server-be-multi-threaded" id="id39">Will the New Server Be Multi-threaded?</a></li>
<li><a class="reference internal" href="#how-will-the-new-server-perform-in-comparison-with-other-servers" id="id40">How Will the New Server Perform in Comparison With Other Servers?</a></li>
<li><a class="reference internal" href="#will-you-be-able-to-send-mods-from-the-server-to-the-client" id="id41">Will You Be Able to Send Mods From the Server to the Client?</a></li>
<li><a class="reference internal" href="#will-bukkit-plugins-be-supported-without-modification" id="id42">Will Bukkit Plugins Be Supported, Without Modification?</a></li>
<li><a class="reference internal" href="#will-i-be-able-to-keep-my-server-s-worlds-and-data" id="id43">Will I Be Able To Keep My Server’s Worlds and Data?</a></li>
<li><a class="reference internal" href="#what-about-support-for-scala-groovy-and-other-jvm-based-languages" id="id44">What About Support for Scala, Groovy, and Other JVM-based Languages?</a></li>
<li><a class="reference internal" href="#will-other-programming-languages-such-as-lua-be-supported" id="id45">Will Other Programming Languages (Such as Lua) Be Supported?</a></li>
<li><a class="reference internal" href="#will-glowstone-be-a-part-of-this" id="id46">Will Glowstone be a Part of This?</a></li>
</ul>
</li>
<li><a class="reference internal" href="#how-can-i-help" id="id47">How Can I Help?</a></li>
</ul>
</div>
<div class="section" id="what-is-sponge">
<h2><a class="toc-backref" href="#id1">What is Sponge?</a><a class="headerlink" href="#what-is-sponge" title="Permalink to this headline">¶</a></h2>
<p>The purpose of the Sponge project is to provide a community-supported modding framework for Minecraft.</p>
<div class="section" id="summary">
<h3><a class="toc-backref" href="#id2">Summary</a><a class="headerlink" href="#summary" title="Permalink to this headline">¶</a></h3>
<ul>
<li><p class="first">We want something easy to use.</p>
</li>
<li><p class="first">Community-developed modding API. We invite any developer to help out.</p>
</li>
<li><p class="first">Lots of people involved with strong Java backgrounds and/or experience.</p>
</li>
<li><p class="first">An extremely open project.</p>
</li>
<li><p class="first">Keeping performance as a high priority during development.</p>
</li>
<li><p class="first">Bukkit plugins <em>may</em> run on Sponge without change due to efforts by the community.</p>
</li>
<li><p class="first">Plan to eventually be used to make client mods.</p>
</li>
<li><p class="first">Not tied to any platform:</p>
<blockquote>
<div><ul class="simple">
<li>Can be used on a from-scratch server. (i.e. Glowstone)<ul>
<li>Planned and officially working with Glowstone team.</li>
</ul>
</li>
<li>Can be used on top of Forge.<ul>
<li>Planned and officially working with Forge team.</li>
<li>No need for client mods if only Sponge is used on the server.</li>
<li>Can work with Forge mods.</li>
</ul>
</li>
<li>Can be injected into Minecraft directly.<ul>
<li>Not planned yet. (This is a larger undertaking and we prefer something usable sooner.)</li>
<li>Several third party implementations are attempting this.</li>
</ul>
</li>
</ul>
</div></blockquote>
</li>
</ul>
</div>
<div class="section" id="for-the-user">
<h3><a class="toc-backref" href="#id3">For the User</a><a class="headerlink" href="#for-the-user" title="Permalink to this headline">¶</a></h3>
<p>Our ultimate goal is to create a modding API that is easy to use for owners of large servers, owners of small servers for friends and family, and everyone in between. In addition, we also plan to permit client modding.</p>
<ul>
<li><p class="first">Sponge plugins should work across several different Minecraft versions without needing an update from the developer, which means that you don’t have to worry about all your plugins breaking between each new major release of Minecraft. (1.6, 1.7, 1.8, etc.)</p>
</li>
<li><p class="first">If Sponge is used on the server, players who join will not need Sponge or Forge installed on their game. You can use Sponge to make management of your server easier, by allowing you to deploy Sponge Plugins that protect areas, log what players do, add minigames, and so on.</p>
<blockquote>
<div><ul class="simple">
<li>However, you will be able to use Sponge plugins on the client too, including ones that are meant only to be used on the client.</li>
</ul>
</div></blockquote>
</li>
<li><p class="first">Sponge will be separated into an <strong>API</strong> that developers will use to make plugins and an <strong>implementation</strong> that is able to load these plugins. The API won’t change much between MC versions, so developers will build against that, and the implementation loads the plugins and makes them work.</p>
<blockquote>
<div><ul class="simple">
<li>We want to start by writing an implementation for two platforms:<ul>
<li>Sponge will run on Minecraft Forge, which is an existing Minecraft modding framework (that lacks a cross-version API).</li>
<li>Sponge will also run on Glowstone, which is an independent Minecraft server that was written from scratch. Later on, we may also explore other options.</li>
</ul>
</li>
<li>The reason why we have chosen Forge and Glowstone as our initial base is because they are well established projects, reducing our time to release, while making use of work that has already been done by the community.</li>
<li>Sponge is not tied to any particular platform, be it Forge or Glowstone.</li>
<li>When/if Mojang releases their own modding API, it will be possible to build the Sponge API on top of Mojang’s modding API so that your Sponge plugins continue to work.</li>
</ul>
</div></blockquote>
</li>
<li><p class="first">Sponge will support official interoperability with Forge so you can use both Sponge plugins and Forge mods together. We are working directly with the Forge team.</p>
</li>
<li><p class="first">While Sponge will not be directly supporting Bukkit, community projects have been started that aim to provide complete support for existing Bukkit plugins on top of Sponge.</p>
</li>
</ul>
</div>
<div class="section" id="for-bukkit-plugin-developers">
<h3><a class="toc-backref" href="#id4">For Bukkit Plugin Developers</a><a class="headerlink" href="#for-bukkit-plugin-developers" title="Permalink to this headline">¶</a></h3>
<ul class="simple">
<li>Sponge should be as easy to develop in as with Bukkit.</li>
<li>You will also be able to access the server internals (“net.minecraft.server” or “NMS” under CraftBukkit), however, this will be discouraged unless you are also writing a Forge mod. If you need something that the Sponge API does not provide, we plan to be open about accepting (well-written) implementations of well-requested features so that you don’t have to rely on hacky code.</li>
<li>If/when the Mojang modding API comes out, we will build the Sponge API on top of Mojang’s API so your plugins/mods continue to work with minimal changes.</li>
</ul>
</div>
<div class="section" id="for-forge-mod-developers">
<h3><a class="toc-backref" href="#id5">For Forge Mod Developers</a><a class="headerlink" href="#for-forge-mod-developers" title="Permalink to this headline">¶</a></h3>
<ul class="simple">
<li>The purpose of Sponge is to make an API that doesn’t change much between MC versions. It will be possible to write mods that use both Forge and Sponge.</li>
</ul>
</div>
<div class="section" id="management-of-the-project">
<h3><a class="toc-backref" href="#id6">Management of the Project</a><a class="headerlink" href="#management-of-the-project" title="Permalink to this headline">¶</a></h3>
<ul class="simple">
<li>The project is currently led by three people: blood, sk89q and Zidane. We are making sure to be open with the team so that we do not end up “holding all the keys.” Sponge has a lot of help from the existing Minecraft community, but the project is led by these three people who make the final decisions. This way, we can have a large number of people contribute and yet still avoid having “too many cooks spoiling the broth.”</li>
<li>We are trying to be open as possible. Our GitHub repository has been available since the first day development began and we make weekly, lengthy announcements detailing the progress and future of the project. Our developers and leads interact with the community around the Internet and on the Sponge forums. You will find that we are very approachable; if you have an idea or issue, we are all ears.</li>
<li>We are using the MIT License, an extremely permissive open source license. This means that, should our server implementation encounter legal problems, it will be possible to reuse the Sponge API and start a new project without being further encumbered by legal issues.</li>
</ul>
</div>
<div class="section" id="from-a-technical-perspective">
<h3><a class="toc-backref" href="#id7">From a Technical Perspective</a><a class="headerlink" href="#from-a-technical-perspective" title="Permalink to this headline">¶</a></h3>
<ul class="simple">
<li>Many of our developers have worked with Minecraft for years and know the ins and outs of its mechanics.</li>
<li>Our developers are well versed with Java. Many of us frequently work with “bytecode injection” and have for years, or even write mod loaders on the side.</li>
<li>Performance is on our mind. The Glowstone implementation may run the best, but we plan to make the necessary changes to Minecraft to improve its performance for anything built on top of Minecraft itself (which includes the Forge implementation).</li>
</ul>
</div>
<div class="section" id="how-does-it-all-fit-together">
<h3><a class="toc-backref" href="#id8">How Does It All Fit Together?</a><a class="headerlink" href="#how-does-it-all-fit-together" title="Permalink to this headline">¶</a></h3>
<img alt="_images/faq1.png" src="_images/faq1.png" />
<p><strong>Note</strong>: As this is a simplification, the number of layers has no bearing on the performance of the actual implementation. When the game is actually run with the API, it collapses into two layers: plugins versus “modded Minecraft” / Glowstone.</p>
</div>
<div class="section" id="what-is-sponge-building">
<h3><a class="toc-backref" href="#id9">What is Sponge Building?</a><a class="headerlink" href="#what-is-sponge-building" title="Permalink to this headline">¶</a></h3>
<img alt="_images/faq2.png" src="_images/faq2.png" />
</div>
<div class="section" id="how-do-we-keep-plugins-mods-from-breaking-between-mc-versions">
<h3><a class="toc-backref" href="#id10">How Do We Keep Plugins/Mods From Breaking Between MC Versions?</a><a class="headerlink" href="#how-do-we-keep-plugins-mods-from-breaking-between-mc-versions" title="Permalink to this headline">¶</a></h3>
<img alt="_images/faq3.png" src="_images/faq3.png" />
</div>
<div class="section" id="how-much-is-open-source">
<h3><a class="toc-backref" href="#id11">How Much is Open Source?</a><a class="headerlink" href="#how-much-is-open-source" title="Permalink to this headline">¶</a></h3>
<img alt="_images/faq4.png" src="_images/faq4.png" />
<p><strong>Note</strong>: Glowstone is only a server and not the full game itself.</p>
</div>
<div class="section" id="how-did-bukkit-work">
<h3><a class="toc-backref" href="#id12">How Did Bukkit Work?</a><a class="headerlink" href="#how-did-bukkit-work" title="Permalink to this headline">¶</a></h3>
<img alt="_images/faq5.png" src="_images/faq5.png" />
<p><strong>Note</strong>: CraftBukkit came as one download, even though there are multiple underlying parts. That will be the same case with Sponge, which will make it easy to run.</p>
</div>
<div class="section" id="what-about-forge-mods-and-hmod-plugins">
<h3><a class="toc-backref" href="#id13">What About Forge Mods and hMod Plugins?</a><a class="headerlink" href="#what-about-forge-mods-and-hmod-plugins" title="Permalink to this headline">¶</a></h3>
<img alt="_images/faq6.png" src="_images/faq6.png" />
</div>
</div>
<div class="section" id="general-questions">
<h2><a class="toc-backref" href="#id14">General Questions</a><a class="headerlink" href="#general-questions" title="Permalink to this headline">¶</a></h2>
<div class="section" id="when-will-the-first-downloads-be-available">
<h3><a class="toc-backref" href="#id15">When Will the First Downloads Be Available?</a><a class="headerlink" href="#when-will-the-first-downloads-be-available" title="Permalink to this headline">¶</a></h3>
<p>The release date of the Sponge implementation for Forge is still to be announced.
However, the Sponge API (v1.0) was released on November 30th, 2014.</p>
</div>
<div class="section" id="will-there-be-an-official-place-to-download-plugins">
<h3><a class="toc-backref" href="#id16">Will There Be an Official Place to Download Plugins?</a><a class="headerlink" href="#will-there-be-an-official-place-to-download-plugins" title="Permalink to this headline">¶</a></h3>
<p>Yes there will be. The plugin repository, to be called <strong>Ore</strong>, is in the works.
The details are still being debated. You can take part in the discussion here
<a class="reference external" href="https://forums.spongepowered.org/t/plugin-hosting/1150">https://forums.spongepowered.org/t/plugin-hosting/1150</a>,
or even assist its development on GitHub.</p>
</div>
<div class="section" id="what-does-this-mean-for-the-players">
<h3><a class="toc-backref" href="#id17">What Does This Mean for the Players?</a><a class="headerlink" href="#what-does-this-mean-for-the-players" title="Permalink to this headline">¶</a></h3>
<p>Players should not notice anything different about the servers you know
and love. Sponge is just an API that allows developers to create plugins.</p>
</div>
<div class="section" id="what-are-sponge-mods">
<h3><a class="toc-backref" href="#id18">What are Sponge Mods?</a><a class="headerlink" href="#what-are-sponge-mods" title="Permalink to this headline">¶</a></h3>
<p>Sponge coremod is still under development, and will implement the Sponge
API on a 1.8 Minecraft-Forge server.
Future plans may include client-side Sponge mods that could perform a
variety of functions related to the client, and running server plugins in single player mode.</p>
</div>
<div class="section" id="what-does-this-mean-for-the-server-owners">
<h3><a class="toc-backref" href="#id19">What Does This Mean for the Server Owners?</a><a class="headerlink" href="#what-does-this-mean-for-the-server-owners" title="Permalink to this headline">¶</a></h3>
<p>Server owners will have to download Sponge and place it in the <strong>mods</strong> folder.
The server can then be started like any other Forge server.</p>
</div>
<div class="section" id="what-java-version-is-sponge-using">
<h3><a class="toc-backref" href="#id20">What Java Version is Sponge Using?</a><a class="headerlink" href="#what-java-version-is-sponge-using" title="Permalink to this headline">¶</a></h3>
<p>Sponge will be using Java 1.6, which is the minimum version supported by vanilla Minecraft and Forge.</p>
</div>
<div class="section" id="will-players-need-the-forge-client-to-connect">
<h3><a class="toc-backref" href="#id21">Will Players Need the Forge Client to Connect?</a><a class="headerlink" href="#will-players-need-the-forge-client-to-connect" title="Permalink to this headline">¶</a></h3>
<p>No. If Sponge is used on the server, players who join will not need Sponge or Forge to connect,
unless Forge mods are used on the server that must also be on the client.</p>
</div>
<div class="section" id="but-forge-doesnt-support-unmodified-vanilla-clients">
<h3><a class="toc-backref" href="#id22">But Forge Doesn’t Support Unmodified Vanilla Clients?</a><a class="headerlink" href="#but-forge-doesnt-support-unmodified-vanilla-clients" title="Permalink to this headline">¶</a></h3>
<p>It does now. Forge’s lead developer LexManos has delivered on plans to
add support for vanilla clients in the 1.8 update.</p>
</div>
<div class="section" id="what-minecraft-version-is-sponge-be-first-available-for">
<h3><a class="toc-backref" href="#id23">What Minecraft Version is Sponge be First Available for?</a><a class="headerlink" href="#what-minecraft-version-is-sponge-be-first-available-for" title="Permalink to this headline">¶</a></h3>
<p>Sponge will be first available for Minecraft 1.8, or whichever 1.8.x version exists at the time.</p>
</div>
<div class="section" id="but-forge-takes-too-long-to-update">
<h3><a class="toc-backref" href="#id24">But Forge Takes too Long to Update?</a><a class="headerlink" href="#but-forge-takes-too-long-to-update" title="Permalink to this headline">¶</a></h3>
<p>With a large portion of the Minecraft community working together, we are sure we can help speed
things up. Development builds for Minecraft Forge are already available for the 1.8 update.</p>
</div>
<div class="section" id="i-haven-t-kept-up-what-happened-to-bukkit">
<h3><a class="toc-backref" href="#id25">I Haven’t Kept up, What Happened to Bukkit?</a><a class="headerlink" href="#i-haven-t-kept-up-what-happened-to-bukkit" title="Permalink to this headline">¶</a></h3>
<p>The Bukkit project halted further development of their API and server modification.
Later, one of the contributors to Bukkit sent a DMCA takedown notice to stop further
distribution of CraftBukkit. He was within his legal rights. Downloads, as well as
source code for CraftBukkit and its derivatives (Spigot, Cauldron) are no longer available.</p>
</div>
<div class="section" id="who-is-involved-with-the-sponge-project">
<h3><a class="toc-backref" href="#id26">Who is Involved With the Sponge Project?</a><a class="headerlink" href="#who-is-involved-with-the-sponge-project" title="Permalink to this headline">¶</a></h3>
<ul class="simple">
<li>blood (of MCPC+/Cauldron) - project lead</li>
<li>sk89q (of WorldEdit/WorldGuard) - project lead</li>
<li>Zidane (of Spout/Obsidian) - project lead</li>
<li>LexManos (of Forge/FML/MCP)</li>
<li>Portions of the Spout team: Raphfrk, DDoS, Sleaker, Owexz, Wulfspider</li>
<li>Portions of the Flow team: kitskub</li>
<li>Portions of the ForgeEssentials team: AbrarSyed</li>
<li>Some previous contributors to Bukkit</li>
<li>Other Bukkit Plugin developers: KHobbits, Elgarl, zml</li>
<li>Portions of the FTB team: progwml6</li>
<li>Glowstone: SpaceManiac</li>
<li>Other people we have likely failed to mention</li>
</ul>
<p>However, we are interested in talking with anyone who is able to help.</p>
</div>
<div class="section" id="how-are-decisions-made">
<h3><a class="toc-backref" href="#id27">How Are Decisions Made?</a><a class="headerlink" href="#how-are-decisions-made" title="Permalink to this headline">¶</a></h3>
<p>The project owners, <strong>blood</strong>, <strong>sk89q</strong>, and <strong>Zidane</strong>, after consulting with the
community and other members when appropriate, will make the decisions.</p>
</div>
<div class="section" id="have-you-consulted-the-community">
<h3><a class="toc-backref" href="#id28">Have You Consulted the Community?</a><a class="headerlink" href="#have-you-consulted-the-community" title="Permalink to this headline">¶</a></h3>
<p>Yes! While things have been moving along quickly, we’re still very open to input.
Many of our decisions have been based on the initial discussion in the #nextstep
IRC channel (on EsperNet) as well as the results of a survey. Sponge now has
extensive IRC channels of its own, and helpful discussion is always welcome.</p>
</div>
</div>
<div class="section" id="technical-questions">
<h2><a class="toc-backref" href="#id29">Technical Questions</a><a class="headerlink" href="#technical-questions" title="Permalink to this headline">¶</a></h2>
<div class="section" id="why-not-use-a-wrapper-styled-api">
<h3><a class="toc-backref" href="#id30">Why Not Use a “Wrapper”-Styled API?</a><a class="headerlink" href="#why-not-use-a-wrapper-styled-api" title="Permalink to this headline">¶</a></h3>
<p>A wrapper that merely works on network packets and reuses command blocks
is extremely limited in function, so plugins would only be able to do a
fraction of what they are able to do now.</p>
</div>
<div class="section" id="why-not-build-a-standalone-server">
<h3><a class="toc-backref" href="#id31">Why Not Build a Standalone Server?</a><a class="headerlink" href="#why-not-build-a-standalone-server" title="Permalink to this headline">¶</a></h3>
<p>Reusing existing efforts in the community will allow us to have a
working version much quicker. Glowstone, unfortunately, is not free from
the EULA as it was not written in a “clean-room” fashion (in the
strictest sense of the term). Other implementations are less far along
or they do not support Java, which appears to be a major point of
contention for a lot of users and developers. None of us have the time
to write a new server from scratch, and most of us have already seen
Minecraft’s code in some form.</p>
</div>
<div class="section" id="doesnt-that-mean-that-we-will-end-up-in-this-same-situation-again-if-we-use-proprietary-code">
<h3><a class="toc-backref" href="#id32">Doesn’t That Mean That We Will End Up In This Same Situation Again If We Use Proprietary Code?</a><a class="headerlink" href="#doesnt-that-mean-that-we-will-end-up-in-this-same-situation-again-if-we-use-proprietary-code" title="Permalink to this headline">¶</a></h3>
<p>It is to our knowledge and our understanding that Mojang does not wish
to stop Minecraft modding, and the recent events have not been directly
caused by them. Rather, a contributor (a major one) objected to the use
of his code, licensed under GPL, in combination with proprietary code.
If we avoid GPL, we will not have this problem. While this does not free
us from Mojang’s control, it is to our belief that they support modding
and will continue to do so.</p>
</div>
<div class="section" id="why-not-wait-for-the-official-minecraft-api">
<h3><a class="toc-backref" href="#id33">Why Not Wait for the Official Minecraft API?</a><a class="headerlink" href="#why-not-wait-for-the-official-minecraft-api" title="Permalink to this headline">¶</a></h3>
<ol class="arabic simple">
<li>We are not sure when it will come out.</li>
<li>Many people are not in a position to wait.</li>
<li>We can get started sooner.</li>
<li>Those last three reasons may have said the same thing.</li>
<li>As this new project is community-run, we may be able to push updates quicker than Mojang is able to, and react to the needs of the community better.</li>
<li>The API may be implemented on other server implementations, and we encourage it.</li>
</ol>
</div>
<div class="section" id="what-license-will-sponge-be-placed-under">
<h3><a class="toc-backref" href="#id34">What License Will Sponge Be Placed Under?</a><a class="headerlink" href="#what-license-will-sponge-be-placed-under" title="Permalink to this headline">¶</a></h3>
<p>MIT, without a Contributor License Agreement. A Contributor License
Agreement is not necessary and it may be a turn off to contributors.
For more information, please read <a class="reference internal" href="license.html"><em>Sponge License</em></a>.</p>
</div>
<div class="section" id="why-not-use-bukkits-api">
<h3><a class="toc-backref" href="#id35">Why Not use Bukkit’s API?</a><a class="headerlink" href="#why-not-use-bukkits-api" title="Permalink to this headline">¶</a></h3>
<p>It contains GPL licensed code, which contributed to why we are in this
situation. Recently, at least in the United States, the federal courts
found that APIs could be copyrighted, although the case has not been
fully resolved.</p>
</div>
<div class="section" id="will-the-new-api-be-like-the-bukkit-api-in-how-it-is-used-events-etc">
<h3><a class="toc-backref" href="#id36">Will the New API Be Like the Bukkit API in How It is Used? Events, etc.?</a><a class="headerlink" href="#will-the-new-api-be-like-the-bukkit-api-in-how-it-is-used-events-etc" title="Permalink to this headline">¶</a></h3>
<p>Yes. It should be fairly similar, and still afford you more power because you will have access to Forge.</p>
</div>
<div class="section" id="why-spoutapi-flow-libs-versus-canary-or-other-apis">
<h3><a class="toc-backref" href="#id37">Why SpoutAPI (+ Flow libs) Versus Canary or Other APIs?</a><a class="headerlink" href="#why-spoutapi-flow-libs-versus-canary-or-other-apis" title="Permalink to this headline">¶</a></h3>
<p>We chose SpoutAPI purely based on the result of the survey (which is
mentioned previously). Note, however, we are not implementing SpoutAPI
as-is. It will serve as inspiration, which will reduce the amount of
time spent on API design. We will also use portions of flow’s libraries
from <a class="reference external" href="http://github.com/flow">http://github.com/flow</a>.</p>
</div>
<div class="section" id="what-about-plugins-that-access-nms">
<h3><a class="toc-backref" href="#id38">What About Plugins That Access ‘NMS’?</a><a class="headerlink" href="#what-about-plugins-that-access-nms" title="Permalink to this headline">¶</a></h3>
<p>You will instead be accessing interfaces through Forge, which has a much
greater number of names de-obfuscated. However, accessing “NMS” raises the
risk of your plugin breaking as is the case here, but that is your prerogative.</p>
</div>
<div class="section" id="will-the-new-server-be-multi-threaded">
<h3><a class="toc-backref" href="#id39">Will the New Server Be Multi-threaded?</a><a class="headerlink" href="#will-the-new-server-be-multi-threaded" title="Permalink to this headline">¶</a></h3>
<p>It will be multi-threaded in the same fashion that Minecraft is, but we are not
writing a server from scratch, so we are not able to make substantial changes.</p>
</div>
<div class="section" id="how-will-the-new-server-perform-in-comparison-with-other-servers">
<h3><a class="toc-backref" href="#id40">How Will the New Server Perform in Comparison With Other Servers?</a><a class="headerlink" href="#how-will-the-new-server-perform-in-comparison-with-other-servers" title="Permalink to this headline">¶</a></h3>
<p>We are currently investigating this, but we plan to reach or exceed
performance of other implementations, given time. The optimizations that were
featured in Cauldron are also being evaluated.</p>
</div>
<div class="section" id="will-you-be-able-to-send-mods-from-the-server-to-the-client">
<h3><a class="toc-backref" href="#id41">Will You Be Able to Send Mods From the Server to the Client?</a><a class="headerlink" href="#will-you-be-able-to-send-mods-from-the-server-to-the-client" title="Permalink to this headline">¶</a></h3>
<p>The general consensus is against this due to security concerns.
Minecraft’s API does not plan to send mods (with executable code) to the
client either.</p>
</div>
<div class="section" id="will-bukkit-plugins-be-supported-without-modification">
<h3><a class="toc-backref" href="#id42">Will Bukkit Plugins Be Supported, Without Modification?</a><a class="headerlink" href="#will-bukkit-plugins-be-supported-without-modification" title="Permalink to this headline">¶</a></h3>
<p>No, not natively, however members of the community have begun work on a
Sponge plugin named Pore that acts as a bridge between the two APIs.</p>
<p>For those unable to use it, we will be providing documentation and
support for people looking to transition from Bukkit to Sponge entirely.</p>
</div>
<div class="section" id="will-i-be-able-to-keep-my-server-s-worlds-and-data">
<h3><a class="toc-backref" href="#id43">Will I Be Able To Keep My Server’s Worlds and Data?</a><a class="headerlink" href="#will-i-be-able-to-keep-my-server-s-worlds-and-data" title="Permalink to this headline">¶</a></h3>
<p>Yes, at least for worlds. Plugin data may or may not carry over.
The plan is to create a conversion process which will convert or import
as much data as possible. Plugins will likely create their own
conversion process allowing you to keep homes, warps and other data.</p>
</div>
<div class="section" id="what-about-support-for-scala-groovy-and-other-jvm-based-languages">
<h3><a class="toc-backref" href="#id44">What About Support for Scala, Groovy, and Other JVM-based Languages?</a><a class="headerlink" href="#what-about-support-for-scala-groovy-and-other-jvm-based-languages" title="Permalink to this headline">¶</a></h3>
<p>We encourage other languages, but Java will be our main priority.</p>
</div>
<div class="section" id="will-other-programming-languages-such-as-lua-be-supported">
<h3><a class="toc-backref" href="#id45">Will Other Programming Languages (Such as Lua) Be Supported?</a><a class="headerlink" href="#will-other-programming-languages-such-as-lua-be-supported" title="Permalink to this headline">¶</a></h3>
<p>We will encourage other implementations, but it will not be a high priority.</p>
</div>
<div class="section" id="will-glowstone-be-a-part-of-this">
<h3><a class="toc-backref" href="#id46">Will Glowstone be a Part of This?</a><a class="headerlink" href="#will-glowstone-be-a-part-of-this" title="Permalink to this headline">¶</a></h3>
<p>We hope we can help SpaceManiac and the team implement the API. We also
invite others to collaborate with us if they wish to.</p>
</div>
</div>
<div class="section" id="how-can-i-help">
<h2><a class="toc-backref" href="#id47">How Can I Help?</a><a class="headerlink" href="#how-can-i-help" title="Permalink to this headline">¶</a></h2>
<p>We appreciate all offers of assistance. Please visit our volunteers portal:</p>
<ul class="simple">
<li><a class="reference internal" href="contributing.html"><em>Contributing</em></a></li>
</ul>
<p>We apologise to anyone who did not receive a reply to earlier rounds of
applications. The number of sumbissions was overwhelming. Thank you all!</p>
</div>
</div>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer" role="contentinfo">
© Copyright 2014-2015, Sponge Contributors.
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
</div>
</div>
</body>
</html>